問題タブ [ll]
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.
parsing - 文法LLを作る
私はそれを変換するのにすでに 2 つの時間を無駄にしましたが、私はいつも共通のプレフィックス ID を取得しています。
誰かが私にそれを説明できますか?私は非常に大きな文法のためにそれをやろうとしているので、基本を明確にする必要があります.
A、B、C、D のみが非端末です。
grammar - 次の FIRST および FOLLOW セットが正しいかどうかを誰かが確認できますか?
文法の FIRST および FOLLOW セットを作成する演習を行っています。私がしたことは正しいと思いますが、答えは私のものとは少し異なります。したがって、これを確認するには誰かの助けが必要です。ありがとうございました。文法は次のとおりです。
EPSILON は本当の「イプシロン」であり、これが X の最初のセットである私の答えです。
しかし、与えられた答えは次のとおりです。
誰かが正しい答えを確認できますか?ありがとう:)
parsing - この LL(1) パーサーを LL(k) パーサーに適合させる方法は?
Dragon-book の付録では、LL(1) フロント エンドが例として示されています。とても参考になると思います。ただし、以下の文脈自由文法では、代わりに少なくとも LL(2) パーサーが必要であることがわかりました。
k 先読みトークンをサポートするように LL(1) パーサーのレクサーをどのように適応させることができますか? エレガントな方法はありますか?
トークン用のバッファーをいくつか追加できることはわかっています。プログラミングの詳細について説明したいと思います。
これはパーサーです:
そして、Lexer.scan()
ストリームから次のトークンを返します。
antlr - ANTLRでパーサーを構築しようとしている左再帰を解決しようとしています
私は現在、Antlr と Eclipse を使用して Oberon 言語のパーサーを構築しようとしています。
これは私がこれまでに得たものです:
私の問題は、文法をチェックすると、次のエラーが表示され、これを修正する適切な方法が見つからないことです。
また、declarationsequence と simpleexpression にも問題があります。
私がそれを使用するoptions { … backtrack = true; … }
と、少なくともコンパイルされますが、テストファイルを実行すると明らかに正しく動作しなくなりますが、自分で左再帰を解決する方法が見つかりません (または、盲目すぎるかもしれません)あまりにも長い間これを見てきたため、現時点では)。エラーが発生した行を変更して機能させる方法はありますか?
編集
3つの間違いのうちの1つを修正できました。statement
今すぐ動作します。問題はそれでassignment
、procedurecall
両方ともdesignator
.
antlr - ANTLR4 フォース LL(1)
ANTLR4 に LL(1) 文法のみを受け入れるように強制するにはどうすればよいですか?
学問的な演習として、LL(1) 文法を作成する必要があります。ただし、ANTLR4 は LL(1) ではないことを警告せずに LL(*) 文法を受け入れるだけです。通常、LL(*) が望ましいことは理解していますが、LL(1) 性は演習の要件です。
オプションまたは引数として、または決定的なantlr4ガイドでそれを見つけることができませんでした...
前もって感謝します!
parsing - 生成されない LL(*) パーサーはありますか
実行時にパーサーの文法規則を変更する必要があり、規則が変更されるたびにパーサーを再生成することを避けたいと考えています。
コード生成を使用しないパーサーはありますか?
よろしく、