left-recursion

    0

    1答えて

    ANTLR 4.6、2011/11/23のスナップショット。 私はそれぞれ左回帰的な2つのルールを持っています。私は、左回帰を公開するためのいくつかの選択肢を拡張しました。左回帰が明示的であるため、ANTLR4がこれを処理します。ただし、2つのルールは相互に左回帰的です。 どのようにして相互左帰属を解決し、そうすることでルールが完全な混乱ではないのですか?今、私は何が拡張されたかを示すよいコメント

    0

    2答えて

    この左回帰はどのように解決できますか?私は解決策を見つけるのに長い時間を使いましたが、私はそれに苦しんでいます。文:ボブはマックスの車を与える。私がここに示したかった主なポイントは、発生する左回帰です。 NP - > NPですが、どうすればこの問題を解決できますか? Python3でこのコードを実行するとクラッシュします。 import nltk.grammar grammar = nltk.

    3

    1答えて

    私はCのためのコンパイラを書こうとしています。 しばらく私が執着していたことがあります。もし私が正しく言えば、すべてのバイナリ操作は関連性のままになります。だから、もし "x + y + z"とすると、x + yが最初に現れ、次にプラスzが現れます。 ただし、左連想によって強制的に左回帰が無限に繰り返されるわけではありませんか? 私がチェックしたすべてのソリューションは、左アソシエーションまたは再

    3

    2答えて

    から最新のコンパイラ実装であるのTiger言語用のパーサを作成しようとしています。再帰型の1つに固執しています。 私は次の文法では、次のタイプ data LValue = Id Atom | RecordAccess LValue Atom

    0

    1答えて

    左回帰はパーサーを無限ループにします。それでは、正しい再帰ではなぜ同じことは起こりませんか?

    2

    2答えて

    [001(0,0,1)、(1+(1/0))['('、1、+、 'などの一部の文を一致させようとしています。 ( '1、/、0、 ')'、 ')']など。 私は自分自身が小さなDCGを次作りました。 g3 --> s3. s3 --> e3. e3 --> eAdd. e3 --> eMin. e3 --> eMul. e3 --> eDiv. e3 --> n3. eAdd --

    0

    1答えて

    私は単純な左回帰文法を記述するためにgrakoを使用しようとしていますが、私はそうすることができません。 右再帰は問題なく動作します: symbol = /[a-z]/ ; condition = condition "AND" symbol | symbol ; start = condition $ ; しかし、それは動作しません:私が見つけたすべての例によると symbol = /[

    0

    1答えて

    の間接的な相互左再帰的なセットを排除私はANTLR sintaxeを使用して言語LUAのための文法を書いているが、私はexp_prefixo、variavelとchamada_de_funcao間の相互左再帰エラーを取得しています。私は他のポストで与えられた解決策をたくさん読んでいましたが、大部分が直接再帰であるか、あるいは2つの相互に再帰的なルールしか持たないので、私の特定のケースでは機能しませ

    0

    1答えて

    文法は少し違っています。それは1つのルール(巨大なもの)を持つ文法です。 Xtextを使ってこの文法を表現する方法はわかりませんが、これは学問的な作業であり、要件を指定する言語です。 と私のイライラの試みを以下に示します:記事から得た元の文法は、ある Relax: root+=General+; //nao tinha o tipo boleano terminal BOOLEAN ret