0

次のような左再帰ルールがあります。

EXPRESSION      :    EXPRESSION BINARYOP EXPRESSION | UNARYOP EXPRESSION | NUMBER;

括弧を追加する必要がありますが、左括弧を対応する右括弧に依存させる方法がわかりませんが、まだオプションです。誰かが私に方法を教えてもらえますか? (または、字句解析で完全にやりすぎているのでしょうか。これらの一部またはすべてを解析に任せるべきでしょうか?)

4

2 に答える 2

1

はい、レクサーでやりすぎています。左再帰規則を回避する方法は次のとおりです。

http://www.antlr.org/wiki/display/ANTLR3/Expression+evaluator (パーサー ルールがどのようにルールexprに細分化され、atom再帰的に呼び出されるかを確認してくださいatom)

HTH

于 2009-12-10T10:02:04.877 に答える
1

再帰ルールを追加できます。

EXPRESSION      : EXPRESSION BINARYOP EXPRESSION
                | UNARYOP EXPRESSION
                | NUMBER
                | OPENPARENS EXPRESSION CLOSEPARENS
                ;
于 2009-12-10T03:52:57.870 に答える