|
@@ -22,41 +22,22 @@
|
|
|
|
|
|
package python;
|
|
package python;
|
|
|
|
|
|
-#if macro
|
|
|
|
-import haxe.macro.Expr;
|
|
|
|
-import haxe.macro.Context;
|
|
|
|
-import haxe.macro.ExprTools;
|
|
|
|
-#end
|
|
|
|
import haxe.extern.Rest;
|
|
import haxe.extern.Rest;
|
|
|
|
|
|
@:noPackageRestrict
|
|
@:noPackageRestrict
|
|
@:noClosure
|
|
@:noClosure
|
|
extern class Syntax {
|
|
extern class Syntax {
|
|
- #if macro
|
|
|
|
- static var self = macro python.Syntax;
|
|
|
|
- #end
|
|
|
|
|
|
|
|
- @:noUsing macro public static function importModule(module:String):haxe.macro.Expr {
|
|
|
|
- return macro($self.code($v{"import " + module}) : Void);
|
|
|
|
- }
|
|
|
|
|
|
+ @:noUsing macro public static function importModule(module:String):haxe.macro.Expr;
|
|
|
|
|
|
- @:noUsing macro public static function importAs(module:String, className:String):haxe.macro.Expr {
|
|
|
|
- var n = className.split(".").join("_");
|
|
|
|
- var e = "import " + module + " as " + n;
|
|
|
|
|
|
+ @:noUsing macro public static function importAs(module:String, className:String):haxe.macro.Expr;
|
|
|
|
|
|
- return macro($self.code($v{e}) : Void);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- #if !macro
|
|
|
|
@:overload(function(className:String, args:Rest<Dynamic>):Dynamic {})
|
|
@:overload(function(className:String, args:Rest<Dynamic>):Dynamic {})
|
|
static function construct<T>(cls:Class<T>, args:Rest<Dynamic>):T;
|
|
static function construct<T>(cls:Class<T>, args:Rest<Dynamic>):T;
|
|
- #end
|
|
|
|
|
|
|
|
@:noUsing
|
|
@:noUsing
|
|
@:deprecated("python.Syntax.newInstance() is deprecated. Use python.Syntax.construct() instead.")
|
|
@:deprecated("python.Syntax.newInstance() is deprecated. Use python.Syntax.construct() instead.")
|
|
- macro public static function newInstance(c:Expr, params:Array<Expr>):haxe.macro.Expr {
|
|
|
|
- return macro $self._newInstance($c, $a{params});
|
|
|
|
- }
|
|
|
|
|
|
+ macro public static function newInstance(c:haxe.macro.Expr, params:Array<haxe.macro.Expr>):haxe.macro.Expr;
|
|
|
|
|
|
extern static function _newInstance(c:Dynamic, args:Array<Dynamic>):Dynamic;
|
|
extern static function _newInstance(c:Dynamic, args:Array<Dynamic>):Dynamic;
|
|
|
|
|
|
@@ -72,31 +53,20 @@ extern class Syntax {
|
|
@:noUsing
|
|
@:noUsing
|
|
extern static function assign(a:Dynamic, b:Dynamic):Void;
|
|
extern static function assign(a:Dynamic, b:Dynamic):Void;
|
|
|
|
|
|
- #if !macro
|
|
|
|
static function code(code:String, args:Rest<Dynamic>):Dynamic;
|
|
static function code(code:String, args:Rest<Dynamic>):Dynamic;
|
|
- #end
|
|
|
|
|
|
|
|
@:noUsing
|
|
@:noUsing
|
|
@:deprecated("python.Syntax.pythonCode() is deprecated. Use python.Syntax.code() instead.")
|
|
@:deprecated("python.Syntax.pythonCode() is deprecated. Use python.Syntax.code() instead.")
|
|
- macro public static function pythonCode(b:ExprOf<String>, rest:Array<Expr>):Expr {
|
|
|
|
- if (rest == null)
|
|
|
|
- rest = [];
|
|
|
|
- return macro @:pos(Context.currentPos()) untyped $self._pythonCode($b, $a{rest});
|
|
|
|
- };
|
|
|
|
|
|
+ macro public static function pythonCode(b:ExprOf<String>, rest:Array<haxe.macro.Expr>):haxe.macro.Expr;
|
|
|
|
|
|
- #if !macro
|
|
|
|
@:noUsing
|
|
@:noUsing
|
|
static function _pythonCode<T>(b:String, args:Array<Dynamic>):T;
|
|
static function _pythonCode<T>(b:String, args:Array<Dynamic>):T;
|
|
- #end
|
|
|
|
|
|
+
|
|
@:noUsing
|
|
@:noUsing
|
|
- macro public static function arrayAccess(x:Expr, rest:Array<Expr>):ExprOf<Dynamic> {
|
|
|
|
- return macro $self._arrayAccess($x, $a{rest});
|
|
|
|
- }
|
|
|
|
|
|
+ macro public static function arrayAccess(x:haxe.macro.Expr, rest:Array<haxe.macro.Expr>):haxe.macro.Expr.ExprOf<Dynamic>;
|
|
|
|
|
|
@:noUsing
|
|
@:noUsing
|
|
- macro public static function arrayAccessWithTrailingColon(x:Expr, rest:Array<Expr>):ExprOf<Dynamic> {
|
|
|
|
- return macro $self._arrayAccess($x, $a{rest}, true);
|
|
|
|
- }
|
|
|
|
|
|
+ macro public static function arrayAccessWithTrailingColon(x:haxe.macro.Expr, rest:Array<haxe.macro.Expr>):haxe.macro.Expr.ExprOf<Dynamic>;
|
|
|
|
|
|
extern static function _arrayAccess(a:Dynamic, args:Array<Dynamic>, ?trailingColon:Bool = false):Dynamic;
|
|
extern static function _arrayAccess(a:Dynamic, args:Array<Dynamic>, ?trailingColon:Bool = false):Dynamic;
|
|
|
|
|
|
@@ -106,38 +76,12 @@ extern class Syntax {
|
|
extern static function _foreach(id:Dynamic, it:Dynamic, block:Dynamic):Dynamic;
|
|
extern static function _foreach(id:Dynamic, it:Dynamic, block:Dynamic):Dynamic;
|
|
|
|
|
|
@:noUsing
|
|
@:noUsing
|
|
- macro public static function foreach<T>(v:Expr, it:Expr, b:Expr):haxe.macro.Expr {
|
|
|
|
- var id = switch (v.expr) {
|
|
|
|
- case EConst(CIdent(x)): x;
|
|
|
|
- case _: Context.error("unexpected " + ExprTools.toString(v) + ": const ident expected", v.pos);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- var iter = try {
|
|
|
|
- var it = macro($it.__iter__() : python.NativeIterator.NativeIteratorRaw<T>);
|
|
|
|
- Context.typeof(it);
|
|
|
|
- it;
|
|
|
|
- } catch (e:Dynamic) {
|
|
|
|
- macro($it : python.NativeIterable.NativeIterableRaw<T>);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- return macro {
|
|
|
|
- var $id = null;
|
|
|
|
- $self._foreach($v, $it, cast $b);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- @:noUsing macro public static function importFromAs(from:String, module:String, className:String):haxe.macro.Expr {
|
|
|
|
- var n = className.split(".").join("_");
|
|
|
|
-
|
|
|
|
- var e = "from " + from + " import " + module + " as " + n;
|
|
|
|
-
|
|
|
|
- return macro($self.code($v{e}) : Void);
|
|
|
|
- }
|
|
|
|
|
|
+ macro public static function foreach<T>(v:haxe.macro.Expr, it:haxe.macro.Expr, b:haxe.macro.Expr):haxe.macro.Expr;
|
|
|
|
+
|
|
|
|
+ @:noUsing macro public static function importFromAs(from:String, module:String, className:String):haxe.macro.Expr;
|
|
|
|
|
|
@:noUsing
|
|
@:noUsing
|
|
- macro public static function callField(o:Expr, field:ExprOf<String>, params:Array<Expr>):haxe.macro.Expr {
|
|
|
|
- return macro @:pos(o.pos) $self.call($self.field($o, $field), $a{params});
|
|
|
|
- }
|
|
|
|
|
|
+ macro public static function callField(o:haxe.macro.Expr, field:haxe.macro.Expr.ExprOf<String>, params:Array<haxe.macro.Expr>):haxe.macro.Expr;
|
|
|
|
|
|
extern static function call(e:Dynamic, args:Array<Dynamic>):Dynamic;
|
|
extern static function call(e:Dynamic, args:Array<Dynamic>):Dynamic;
|
|
|
|
|
|
@@ -145,19 +89,14 @@ extern class Syntax {
|
|
extern static function field(o:Dynamic, field:String):Dynamic;
|
|
extern static function field(o:Dynamic, field:String):Dynamic;
|
|
|
|
|
|
@:noUsing
|
|
@:noUsing
|
|
- macro public static function tuple(args:Array<Expr>):Dynamic {
|
|
|
|
- var args = macro $a{args};
|
|
|
|
- return macro $self._tuple($args);
|
|
|
|
- }
|
|
|
|
|
|
+ macro public static function tuple(args:Array<haxe.macro.Expr>):haxe.macro.Expr;
|
|
|
|
|
|
extern static function _tuple(args:Array<Dynamic>):Dynamic;
|
|
extern static function _tuple(args:Array<Dynamic>):Dynamic;
|
|
|
|
|
|
@:noUsing
|
|
@:noUsing
|
|
extern static function varArgs(args:Array<Dynamic>):Dynamic;
|
|
extern static function varArgs(args:Array<Dynamic>):Dynamic;
|
|
|
|
|
|
- macro public static function callNamedUntyped(e:Expr, args:Expr):Expr {
|
|
|
|
- return macro @:pos(e.pos) $self._callNamedUntyped($e, $args);
|
|
|
|
- }
|
|
|
|
|
|
+ macro public static function callNamedUntyped(e:haxe.macro.Expr, args:haxe.macro.Expr):haxe.macro.Expr;
|
|
|
|
|
|
extern static function _callNamedUntyped(e:Dynamic, args:Dynamic):Dynamic;
|
|
extern static function _callNamedUntyped(e:Dynamic, args:Dynamic):Dynamic;
|
|
|
|
|