11.2.2 표현식 리이파이케이션(Expression reification)

11.2.2 표현식 리이파이케이션(Expression reification)

표현식 리이파이케이션은 주변 표현식의 AST 위치를 바탕으로 haxe.macro.Expr를 만듭니다. 리이파이케이션된 표현식은 현재 매크로 호출 지점에서 haxe.macro.Position을 사용합니다.

이 검사는 "expression-reification" 컴파일러 플래그에 의해 활성화됩니다. 기본적으로 해제되어 있습니다. 리이파이케이션된 코드에서는 로컬 변수 접근이 제한되므로, 플래그를 활성화하는 것이 좋습니다.

표현식 리이파이케이션의 구문은 macro 키워드로 시작합니다.

import haxe.macro.Expr;

class Main {
  static function main() {
    trace(thisIsReified(1, 2)); // 3
  }

  macro static function thisIsReified(x:Int, y:Int):Expr {
    return macro $x + $y;
  }
}

$x$yInt 값으로 리이파이케이션됩니다. 이것은 (macro $x).pos가 매크로 호출 지점의 위치를 가진다는 것을 의미합니다.

출처: Expression reification

더 알아보기