どのように私はこのルールに括弧を追加するには?
-
18-09-2019 - |
質問
私は次のように左再帰的なルールを持っています
EXPRESSION : EXPRESSION BINARYOP EXPRESSION | UNARYOP EXPRESSION | NUMBER;
私はそれに括弧を追加する必要がありますが、私は左括弧を作る方法がわからないんだけど、まだ、まだ、オプション対応する右括弧に依存します。誰かがどのように私を見ることができますか? (または私は字句に完全にあまりにも多くを行うにしようとしています、と私はパースにこのの一部または全部を残してください)。
解決
あなたは再帰的なルールを追加することができます:
EXPRESSION : EXPRESSION BINARYOP EXPRESSION
| UNARYOP EXPRESSION
| NUMBER
| OPENPARENS EXPRESSION CLOSEPARENS
;
他のヒント
はい、あなたはレクサーにあまりを行うにしようとしています。ここでは、左再帰ルールを回避する方法は次のとおりです。
http://www.antlr.org/wiki/display/ANTLR3 /式+評価する(パーサールールexpr
がルールatom
までしたたり落ちるし、その後atom
から再帰的に呼び出される方法を見て、再び)
HTH
所属していません StackOverflow