問題タブ [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.
java - javacc はコメントをスキップしますが、有用なコメントを保持する必要があります
次のようなデータファイルを解析するには、javaCC を使用する必要があります。
//これはスキップするコメントです
//これもスキップするコメントです
//学生テーブル
始める:
header:( 1 //name 2 //age ) { "John" 21 } { "Jack" "22" }
#終わり
//以下は教師のテーブルで、この行もスキップするコメントです
//教師用テーブル
始める:
header:( 1 //name 2 //age 3 //class ) { "Eric" 31 "English" } { "Jasph" "32" "History" }
#終わり
ここでは、「学生」テーブルと「教師」テーブルからデータを取得する必要があります。上記のようにフォーマットされた他のテーブルもあります。「学生」テーブルからエクスポートされたデータは次のとおりです。
つまり、:"//This is also comment to skip"
のようなコメントをスキップする必要がありますが、トークンは次のように保持する必要があります: "//student Table"
、"//Teacher Table"
、"//name"
など"//age"
。そのような SKIP 式を記述する方法は? ありがとう。
java - JavaCC文法でtry-catchブロックに言及する方法
http://javacc.java.net/doc/errorrecovery.htmlに示されているように、JavaCC文法でエラーレポートとリカバリを実装しようとしています。
コードに言及した後;
ファイルはJavaCCで解析できず、「try」という単語とその行にエラーが表示されました。
これを行う正しい方法は何ですか?
前もって感謝します
java - ワークスペース全体でインターフェイスの参照をプログラムで見つける
次の問題を簡単に/より少ない労力で解決できるツール/アプローチを知りたいですか? 必要なのは、ANT スクリプトを介して呼び出すことです。
Eclipse ワークスペースには、projectA と projectO (15 の数) など、いくつかのプロジェクトがあります。それらのほとんどは Java プロジェクトです。ここでのポイントは、Eclipse IDE を使用せずに、プログラムでデータを収集する必要があることです。
Java プロジェクトである projectA には、InterFaceA などのインターフェイスがあり、他のさまざまなプロジェクトで実装されています。
ポイントは、InterfaceA を実装した 15 のプロジェクトすべてからすべてのクラスをリストする必要があるということです。
Javadoc の拡張、Eclipse AST、javaCC、ANTLR など、いくつかのツールに出くわしましたが、既製のソリューションは見つかりませんでした。
以下のアプローチについて考えましたが、実装が難しいことがわかりました。
- 宣言されたすべての変数、フィールド、メソッド レベル、つまり Java ファイル / クラス全体を調べて、それらの型を調べ、その中から InterfaceA を実装するクラスを見つけます。
- インターフェイスAのワークスペース全体でEclipseのような参照を見つけますが、コードを使用しますか? ソースを取得していただければ幸いです。
直接的な解決策をリクエストできますか? Eclipse AST を使用して、これを直感的な方法で行うことはできますか?
PS: 既存のコードはきちんと維持されていません。したがって、interfaceA がインスタンス変数で宣言されていない可能性がありますが、使用される直前にローカル変数として使用されている可能性があります。さらに、多くの内部クラスなどがあります。
前もって感謝します。
java - JJTreeのSimpleNodeの子
私はあなたがそのようなことをするときそれをチュートリアルで読みました:
SimpleNodeから継承するProgrammクラスを作成する必要があります(jjtreeでコンパイルすると)が、私の場合は、classなどは作成されません。自分で作成する必要がありますか、それとも何かが足りませんか?
ありがとう
regex - javacc トークンの正規表現 and_symbol_in
単語を含むトークンを説明する必要があります。単語には、英語の文字やその他の特殊記号を含めることができますが、定義済みの英語の文字 (「O」など) で始めることはできません。
AND_SYMBOL_IN 操作か何かが必要なようですが、javacc のドキュメントにはありません。次のような動作が必要です。
特別なトークン (以下のようなもの) を作成することもできますが、もっと良い決定があると思いますよね?
javacc - javaccはローカルで大文字小文字を無視しますか?
JavaCC 定義の一部を大文字と小文字を区別しないようにしたいのですが、グローバルではありません。
上記では、すべてのトークン (STRA および STRB) の大文字と小文字が区別されないようです。STRB ケースのみを無視する方法は?
また、「b = <...>」のみなど、次のプロダクションで大文字と小文字を区別しないようにすることはできますか?
マニュアルを読んでも理解できないことは認めます。私を助けてください。明確に説明していない場合はお知らせください。ありがとうございました。
java - grailsアプリケーションでのJavaコンパイラエラー
JavaCCパーサーが統合されたgrailsアプリケーションがあります。このパーサーでは、grailsドメインオブジェクトを作成します。GrailsドメインクラスとしてProduct、Release、Documentなどのオブジェクトがあります。
生成されたJavaクラス(JavaCCから)で、Products、Releases、およびDocumentsを作成します。非常に頻繁に(常にではありませんが)、Grailsから次のようなビルドエラーが発生します。
Compile error during compilation with javac.
D:\workspaces\productArchive\com.rcs.products\src\java\com\configinfo\Parser.java:173: error: cannot find symbol
document.setFilename(filename);
^
symbol: method setFilename(String)
location: variable document of type Document
私のDocumentクラスは次のようになります。
JavaCC文法ファイルでJDK_VERSIONを1.6に設定しました。Grails2.0.1を使用しています。
誰かがこれらのコンパイラエラーを説明できますか?
java - JavaCCで印刷
コマンド プロンプトでテキストを出力する単純な javacc パーサーを作成しました。
しかし問題は、az 以外の文字を出力できないことです。すべてのユニコード文字を印刷するにはどうすればよいですか。
antlr - JAVACCのANTLR構文述語
ANTLRでは、構文述語を使用して、次のように特定の問題を解決できます。これは単純な例です。
私が知りたいのは、JAVACで同じことを達成する方法です。ありがとう。
javacc - Javaccでの複数のエラーの回復
エラーを検出した後でも、javaccに入力ファイルをさらに解析する方法はありますか?パニックモードの回復、フレーズレベルの回復など、いくつかの方法があることを知りました。しかし、javaccjjtファイルに実装する方法がわかりません。例として、私の入力ファイルが
したがって、1行目でセミコロンが欠落しているというエラーを検出した後、解析を続行して3行目でもエラーを見つけます。