質問

私は次のように左再帰的なルールを持っています

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top