Я пытаюсь использовать макросы, чтобы преобразовать некоторые объявления переменных из этого:В Haxe, как вы читаете переменное имя внутри макроса?
function test():Void {
var someComp:Component = __SOME_MACRO__();
// Or...
@getCompById var someComp:Component;
// Or even simpler...
getCompById(someComp, Component); //do some fancy macro magic...
// Also, if it's not possible/easy with a variable ...
getCompById("someComp", Component); //with a string of the variable name.
}
... к этому:
function test() {
var someComp:Component = cast container.getCompById("someComp");
}
Я склоняюсь больше к третьей опции (короткий синтаксис, одинаковые результаты).
Но я понятия не имею, как написать макрос (должен ли он принимать параметр String как выражение?) И как правильно вернуть это выражение макроса.
Это (прерывистая) код, который я получил до сих пор:
macro static function getCompById(someVar:Expr, typeVar:Expr) {
return macro {
var someVar:typeVar = cast container.getCompById("someVar");
};
}
Есть идеи?
Хм возможно я использую другую версию Haxe, если У меня нет 'haxe.macro.Tools'? Кажется, что не существует в пакете (в 3.1.3) – bigp