私はANTLR(3.2)を使用して、かなり単純な文法を解析しています。残念ながら、私は少し問題に遭遇しました。次のルールを取ります。
exp
: NUM
| '(' expression OPERATOR expression ')' -> expression+
| '(' (MINUS | '!') expression ')' -> expression
;
OPERATORには、MINUSで定義されているものと同じマイナス記号('-')が含まれています。現在、ANTLRはこれら2つのルールを処理できないようです。どちらかを削除すると、すべて正常に動作します。
誰かアイデア?