File: Macro.hx

package info (click to toggle)
haxe 1%3A4.2.5-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 42,984 kB
  • sloc: ml: 132,401; ansic: 2,403; makefile: 436; java: 365; cs: 336; cpp: 318; python: 315; sh: 75; objc: 64; php: 45; xml: 30; javascript: 11
file content (21 lines) | stat: -rw-r--r-- 503 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import haxe.macro.Expr;
import haxe.macro.Context;

class Macro {
	macro static public function call(efun:ExprOf<Int->Int>, eval:Expr):Expr {
		var vfun = Context.eval(efun);
		var vval = Context.eval(eval);
		var r = vfun(vval);
		return macro $v{r};
	}

	macro static public function call2(efun:Int->Int, eval:Int):Expr {
		var r = efun(eval);
		return macro $v{r};
	}

	macro static public function call3(efun:Int->Int, eval:Expr):Expr {
		var r = efun(Context.eval(eval));
		return macro $v{r};
	}
}