1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
import haxe.macro.Expr;
import haxe.macro.Context;
class Macro {
static function init() {
function defineType(pack, kind) {
Context.defineType({
pos: (macro 0).pos,
pack: pack,
name: 'Test',
kind: kind,
fields: []
});
}
function defineClass(pack) {
defineType(pack, TDClass());
}
defineClass(["Module"]);
defineClass(["pack", "Module"]);
defineClass([""]);
defineClass(["\n"]);
defineClass(["pack\n"]);
defineClass(["pack~"]);
defineClass(["Foo", "Bar"]);
defineClass(["0_class"]);
defineType(["0_enum"], TDEnum);
defineType(["0_structure"], TDStructure);
defineType(["0_abstract"], TDAbstract(TPath({pack: [], name: "Int"})));
}
}
|