問題タブ [javacc]

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 に答える
2588 参照

java - JavaCC文法のtry-catchブロック

JavaCC文法でエラー報告と回復を実装しようとしています

.jjt文法ファイルで次のコードについて言及しました

コマンドを実行すると、jjtree CMinus.jjt次のエラーが発生します。

ファイルCMinus_ragu.jjtからの読み取り。。。入力の解析エラー:org.javacc.jjtree.ParseException: "" {" "{" "a t行111、列30が発生しました。次のいずれかが予期されていました:" throws "...": "..."#".. 。

コードのエラーとは何ですか?エラー回復をどのように処理する必要がありますか?

0 投票する
3 に答える
672 参照

java - コードを分析して UML を作成する最良の方法は何ですか?

私は、コンパイルされていない .java または .txt ファイルを分析する「Java アプリケーションのソース コードの分析」という仕事をしようとしています。この

トピックを作成し、間違った方向に進んでいることを知りました。聞いた限りでは、ANTLRかJavaCCを使うのが一番いいと思っていたのですが、仕組みも使い方もわかりません(JavaCCに割り込めませんでした)。私が使用しているNetbeansで「クラシック」をプログラムできるものを見つけたいと思います。java.lang.reflect を使用することは可能でしょうか (私のトピックでは、コンパイルされたコードでのみ使用できると誰かが書いています)? 「補足」なしで、またはJavaライブラリのみを使用して、これらすべてを作成できる方法はありますか? 貴重なアドバイスをありがとう。私は非常に混乱しており、開始方法がわかりません。





1. ホスト言語アナライザー
の選択、
2. スキャナー (語彙アナライザー) のビルド、
3. パーサー (構文アナライザー) のビルド、
4. 得られた情報を XML 形式で保存、
5.分析されたプロジェクトの UML グラフィック表現。
主な目的はUMLを作成することで、XMLは追加です。

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

java - Javacc パッケージの問題

抽象的な構文ツリーを構築するために javacc を使用して意味不明なバージョンを実装しています。Parser.jj プログラムによって呼び出される Java で実装された多くのクラスがあります。ただし、Parser.jj は、同じフォルダー/パッケージ内にあるにもかかわらず、実装されているクラスを認識しません (例: Error: cannot find symbol: class VariableNode)。これらのファイルを Parser.jj に認識させる方法はありますか?

助けてくれてありがとう!

0 投票する
3 に答える
2558 参照

java - Java:クラスパスの設定

間もなくプロジェクトが予定されており、すべてが非常にうまくまとめられていますが、Javaクラスパスが真剣に邪魔になっています。できるだけ明確かつ徹底的に状況を説明するように努めます。

そのため、Javaccを使用してプログラミング言語を記述しています。javaccファイルはいくつかのjavaファイルにコンパイルされます。Parser.javaファイルには、生成された他のjavaファイルへの参照と呼び出しが含まれています。したがって、生成後、Parser.javaファイルをコンパイルします。問題は、他のJavaファイルや自分のファイルへの呼び出しを認識できないなど、多くのエラーが発生することです。教室の掲示板で問題について質問したところ、教授は「クラスパスにクラスファイルが必要です」と答えました。わかりました。すばらしいので、問題は、どうすればよいのかということです。基本的に、生成されたJavaファイルと他のヘルパーファイルを含む単一のディレクトリがあります。

それで、私たちは何を試しましたか?

.bashrc(Ubuntu)ファイルを変更して正しいクラスパスを含めようとしましたが、機能しません。すなわち

(私がファイルに正しい構文を持っていたようなもの)

コンパイル実行してみました

どちらも機能しません。

ファイルのディレクトリにあるxml(xmlだと思います).classpathファイルを編集しようとしました。それでも動作しません。

どういうわけか、私は自分が持っているディレクトリの1つでParser.javaをコンパイルできました(何かを機能させるための無駄な努力で同じファイルを含む複数のディレクトリを作成することになりました)が、実行しようとすると

また

メインが見つからないと表示され、(他のコンピューターでは)ClassNotFoundまたはClassNotDefined例外がスローされます(そのようなものですが、パーサーファイルにメインがありますが見つかりません)。

パッケージの減速とインポートステートメントをファイルに追加しようとしましたが、何も機能していないようです。

基本的に:Javaファイル(すべて1つのディレクトリにあり、jarファイルではない)をコンパイルしてマシンで実行できるように、クラスパスを正常に変更するにはどうすればよいですか?

ご協力ありがとうございました。大変感謝しております。

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

parsing - JavaCC で適用されている正規表現を確認する方法

私は次の正規表現を持っています

現在のトークンがIDかCONSTANTかを確認する方法を知りたい

JavaCCで(トークンはID)を表現するには?

どうもありがとう。

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

java - トークンの「グループ」の定義

私はJavaCCを使用して単純な言語のパーサーに取り組んでいます。

私のトークン宣言セクションには、次のようなものがあります

CONSTANT、その順序により、。よりも優先されINTEGERます。ただし、特に、が必要な文法の部分がありINTEGERます。INTEGERこのような場合、はとして解析されたため、パーサーは例外をスローしますCONSTANT

簡単な解決策は、トークンを削除し、CONSTANTそれを検索して置換することです (< INTEGER > | < FLOAT_NUMBER > | < BOOLEAN >)。しかし、これはかなり不格好に感じます。

それ自体はトークンではなく、略記であるCONSTANTような、他のトークンの単なるグループとして定義する方法はありますか?CONSTANT(< INTEGER > | < FLOAT_NUMBER > | < BOOLEAN >)

お時間をいただきありがとうございます。

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

if-statement - javaccifステートメント

javaccでifステートメントを記述しましたが、条件がfalseの場合に本体を無視する方法がわかりません。最初に2つのオブジェクトクラスTokenとブール変数を宣言し、次にどのreturnメソッドcondition()をチェックし、次に残りのブロックをスキップします条件がfalseの場合。どうやってするか?

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

java - Java で書かれた Java インタープリター

言語に他の機能を追加する目的で、Java インタープリターを Java で作成したいと考えています。

javacc を使用して、Java で記述された既存の Java インタープリターがすでに存在するかどうか疑問に思っていました。それはクールだろう。

javacc Web サイトで Java 1.5 文法と抽象構文ツリー (AST) を既にダウンロードしましたが、問題は、AST がビルドされたばかりで、埋められていないことです。実際には何もしません。

javacc で書かれたオープンソースの Java インタープリターを知っていますか?

ありがとうございました、

ロイック

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

parsing - JavaCC文法の競合

私はこのように大まかに定義された文法を持っています。

これは、次のような場合に正常に機能します。

しかし、私が試してみるとint();、これは私にとって合法であり、Function()によって解析される必要がありますが、代わりに宣言になります。この「競合」を修正するにはどうすればよいですか?いろいろ組み合わせてみました。

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

javacc - 短縮文字クラス (\d など) は JavaCC でサポートされていません

私は JavaCC の使い方を学ぼうとしていますが、JavaCC が正規表現をサポートしていることに気付きました。怠け者と呼んでくださいが、数字を定義するデフォルト/一般的な方法は少し長すぎると思いました:

次のような短縮文字クラスを使用してみました。

しかし、「コンパイラコンパイラ」はそれを好まないようです。短縮形の字句エラーが発生します。この問題に関するドキュメントを見つけることができなかったので、何か間違ったことをしているのか、単にサポートされていないのかわかりません。javacc が短縮文字クラスでうまく機能しないという私の仮定を誰かが確認または否定できる場合は、非常に感謝しています。