Forráskód Böngészése

support native assign

frabbit 11 éve
szülő
commit
7fab9469d0
2 módosított fájl, 9 hozzáadás és 2 törlés
  1. 3 1
      genpy.ml
  2. 6 1
      std/python/Syntax.hx

+ 3 - 1
genpy.ml

@@ -1215,7 +1215,9 @@ module Printer = struct
 			| "__python_del__",[e1] ->
 				Printf.sprintf "del %s" (print_expr pctx e1)
 			| "__python_binop__",[e0;{eexpr = TConst(TString id)};e2] ->
-				Printf.sprintf "%s %s %s" (print_expr pctx e0) id (print_expr pctx e2)
+				Printf.sprintf "(%s %s %s)" (print_expr pctx e0) id (print_expr pctx e2)
+			| "__python_assign__",[e0;e1] ->
+				Printf.sprintf "%s = %s" (print_expr pctx e0) (print_expr pctx e1)
 			| "__python_array_set__",[e1;e2;e3] ->
 				Printf.sprintf "%s[%s] = %s" (print_expr pctx e1) (print_expr pctx e2) (print_expr pctx e3)
 			| "__assert__",el ->

+ 6 - 1
std/python/Syntax.hx

@@ -47,7 +47,12 @@ class Syntax {
 
     @:noUsing macro public static function binop <T>(a:Expr, op:String, b:Expr):haxe.macro.Expr
     {
-        return macro (untyped __python_binop__)($a, $v{op}, $b);
+        return macro ((untyped __python_binop__)($a, $v{op}, $b));
+    }
+
+    @:noUsing macro public static function assign <T>(a:Expr, b:Expr):haxe.macro.Expr
+    {
+        return macro (untyped __python_assign__)($a, $b);
     }