Macro.hx 700 B

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