問題タブ [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.
java - Java CUP でのオブジェクト型の変更
CUP と JFLex を組み合わせてスキャナーを作成するパーサーを作成しています。
このリンクをたどっていましたJava CUPによる解析ツリーの生成ですが、デフォルトではタイプがオブジェクトであるため、タイプをノードに変更する方法がわからないため、行き詰まりました。
CUP case ステートメントを次のようにしたい
ではない:
abstract-syntax-tree - このコードで val() 関数と rep() 関数が呼び出されるのはどうしてですか (定義はありません)。
CUPというパーサージェネレーターを使用しています。文法 (CUP 仕様) と、クラス定義用のサポート コード (Expr.java) が提供されました。
CUP 仕様では、文法プロダクションには、次のように関連付けられたセマンティック アクションがあります。
クラス定義は次のようなものです。
整数式のクラスがあります
そして、次のようなクラスがあります。
基本的に、私の質問は次のとおりです。 Expr クラスの rep() 関数の定義はありません (抽象的であるため)。では、この関数呼び出しは何をするのでしょうか?paraExpr.rep()
プロジェクトを作成し、パーサーをビルドして入力文字列を解析すると、AST が作成され、次のように出力されます。
ParaExpr{(IntExpr{(1)}+IntExpr{(2)})}
java - Java カップでの Shift/Reduce 競合 - 他にぶら下がっている問題
次のエラーが表示されます。
今、私は他にぶら下がっている問題を認識しており、文法を明確にすることを試みました:
優先順位演算子なしでこの問題を解決する方法はありますか、それとも文法に何か問題がありますか?
java - Java - カップ パーサーを使用すると、文法 LALR で空の遷移を行うことができますか?
こんにちはみんな私はカップパーサーの初心者です。私の問題は、文法のトランスの定義に空のトランスがあり、私の質問は正しいですか?
たとえば、私の文法では
A、B を端子なし、a、b、c を端子とする
代替文法を作成しようとしましたが、空のトランスなしで解析しようとしている言語用に拡張されています
パーサーを作成するためにカップでそれをプログラムするにはどうすればよいですか? すべての貢献と助けに感謝します...