1
a IN [3 .. 5[
のような式を解析しようとしています。角カッコの方向によって、その間隔が包含的か排他的かが決まります。これはAntlrツリーの書き換えルール
NODE-TYPE
|
+------------+-----------+
| | |
variable lower-bound upper-bound
等ASTに書き換えることたいです。
私は、次の構文解析ルールを持っている:
interval_expr : expr1=variable IN
(LBRACKET|RBRACKET)
expr2=expression DOTDOT expr3=expression
(LBRACKET|RBRACKET)
-> ^(BETWEEN $expr1 $expr2 $expr3)
これは動作しますが、それが正しいツリーノードの種類を作成しないことを除いて。どのようにして一致するものに基づいて作成するノードタイプを選択できますか?