問題タブ [shift-reduce-conflict]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1372 参照

parsing - 三項式(a?b:c)と「多分」式(a?)の間のLR(1)文法のあいまいさを解決する方法は?

私は文法を作成しました。その簡略版を以下に再現します。

この言語は明確であり、LR解析可能である必要があると思います。(私が間違っている場合は私に知らせてください!)

ただし、この文法のLR(1)パーサーを生成しようとすると、シフト/リデュースの競合が発生します。パーサーがexp3先読み?で表示すると、シフトするかリデュースするかがわからないためです。

この言語をLR(1)解析可能(競合なし)にするための合理的な方法はありますか?

それとも、GLR(またはおそらくLR(2)?)は、このような言語の唯一の現実的なオプションですか?
(または、そもそも言語が明確であると信じるのは間違っていますか?)


参考までに、私が生成したあいまいなステートマシンは次のとおりです(♦はEOFです)。

0 投票する
1 に答える
151 参照

parsing - 小さな言語パーサーの Bison Shift/Reduce conflicts

私の目的は、小さな言語のパーサーを作成することです。現在、1 つのシフト/リデュース エラーが発生しています。

私のCFGはどこかがあいまいですが、どこにあるのかわかりません

0 投票する
0 に答える
432 参照

parsing - この Shift/Reduce エラーについて Irony は何を教えてくれますか?

ここで説明されている文法を使用して、PowerShell 言語のパーサーを作成しています: http://www.microsoft.com/en-us/download/details.aspx?id=9706

私は Irony を使用しましたが、Irony Grammar Explorer はシフト/リデュースおよびリデュース/リデュース エラーを報告しています。何を言っているのかわからないので、これは私を困惑させます。

自分自身を見たい場合、コードはこちら: https://github.com/Pash-Project/Pash/tree/method-invocation/Source/Pash.System.Management

編集:これが混乱する入力は次のとおりだと思います:

これは追加ですか、それともキャストですか?

0 投票する
1 に答える
94 参照

bison - この Bison コードのシフト/リデュースの競合はどこにありますか?

バイソンコードにシット/リデュースの競合があります:

私はそれを書くことができます:

しかし、ノード構造を大幅に変更する必要があります。したがって、私はそれを解決する新しい方法を探しています。手伝って頂けますか ?

良い一日を過ごしてください !

0 投票する
2 に答える
350 参照

parsing - このシフト/リデュースの競合は Bison のどこから来ているのでしょうか?

Jison (javascript パーサー) で非常に単純な言語を定義することによって、解析のコツをつかもうとしています。バイソンと同じ/非常によく似た構文を受け入れます。

これが私の文法です:

シフト/削減の競合が 1 つ発生しています。ジソンの出力は次のとおりです。

0 投票する
2 に答える
874 参照

parsing - Happy の命題論理パーサーでの Shift/Reduce 競合

私は、この命題論理文法のBNF 定義に基づいて、Happy で簡単な命題論理パーサーを作成しています。これが私のコードです。

さて、ここで2つの問題があります

  1. 何らかの理由で、4 つのシフト/リデュースの競合が発生します。優先順位によって解決されると思っていたので、競合がどこにあるかはわかりません (BNF 文法に正しく従ったと思います)...
  2. (これはどちらかというと Haskell の問題です) 私のレクサー関数では、何らかの理由で、'¬' をどうするかを記述している行で解析エラーが発生します。その行を削除すると機能します。(この問題は解決済みです)

どんな助けでも素晴らしいでしょう。

0 投票する
1 に答える
189 参照

parsing - カップパーサーでのシフト/削減の競合 (配列と行列を使用した文法)

フィールドとして配列と行列を持つクラスをサポートするはずの小さな言語用のカップパーサーを書いています。たとえば、クラス インスタンスがある場合:

フィールドには次の方法でアクセスします。

shift/reduce のコンフリクトが頻繁に発生するため、この最後の部分の作品を書くのに苦労しています。これは私の作品です:

警告 : *シンボル LSQUARE の下のデジネータ ::= デジネータ LSQUARE Expr RSQUARE ( ) とデジネータ ::= デジネータ LSQUARE Expr RSQUARE ( ) LSQUARE Expr RSQUARE の間の状態 #189 で見つかった Shift/Reduce の競合 シフトを支持して解決されました。

誰でもこれを解決するのを手伝ってもらえますか?

0 投票する
2 に答える
70 参照

compiler-construction - GnuWin32 Bison の Shift/Reduce 警告を解決しますか?

私は次のルールを持っており、バイソンでそれらを実装すると、5つのシフト/削減警告が表示されます。

規則の一部は次のとおりです。

この状態でParser.output警告が表示されます。

**state 25**

誰かがこれを解決する方法を教えてくれますか、私は多くの記事を読みましたが、何が問題なのか理解できませんでした。すべての人に感謝します... :)

0 投票する
1 に答える
329 参照

bison - Bison: shift/reduce エラーを修正しました。

そのため、文法で恐ろしいシフト/削減エラーが発生していました。最小限のテスト ケースを次に示します。

しかし、実験を通して、私はどうにかして問題を解決することができました:

そもそもシフト/リデュースエラーが発生した理由と、これが機能した理由を誰かが説明できますか? これも適切な解決策ですか?そうでない場合、何ですか?