問題タブ [cup]
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 - プライ VS Jフレックス+カップ
私は Pascal のような言語用のコンパイラを構築しようとしており、Ply(python) または Jflex+Cup(Java) の組み合わせを決定しようとしています。どちらが優れているかを評価するための適切な資料が見つかりません。
パフォーマンス、使いやすさ、それぞれのコミュニティの規模について知りたいです。
私が収集できることから、一般的にコンパイラーとパーサーを構築するための Java オプションがより多く使用されているようですが、特にこれらのものについては、Ply がはるかに広く使用されているようです。
どちらの方がよいですか?
java - CUPを使用して文法のあいまいさを取り除く方法は?
私はこの文法を持っています
(ここでテストできます http://jsmachines.sourceforge.net/machines/lalr1.html )
文法はあいまいで、S/R の競合が発生しますが、実際の問題は、パーサーが機能ID COMMA ID WRITE
している間、入力で発生します。ID COMMA ID READ
CUP の文法を変更せずにこれを防ぐ方法はありますか?
bison - Java カップ: Shift/Reduce コンフリクト
JFlex と Cup を使用してパーサーを作成しようとしていますが、次のような再帰的なプロパティ アクセスを使用した関数呼び出しのような再帰的なポイント表記法を扱う際に問題があります。
関連するパーサー定義は次のとおりです。
次のシフト/削減の競合が発生しました:
これらの競合に対処する方法や、Java cup、yacc、または bison を使用した実際の例がどこにあるかを誰かが説明してくれませんか?