問題タブ [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.
javacc - javacc チュートリアルへのリンクを持っている人はいますか?
この種の文書をオンラインで見つけるのは非常に困難です。
JAVAWORLD で見つけましたが、これは jjTree と訪問者のものをカバーしていません。
たまたまチュートリアルへのリンクを持っている人はいますか?
parsing - antlr javaccのように、人々はパーサーで何をしますか?
好奇心から、人々はパーサーで何ができるのか、それらがどのように適用されるのか、そして人々は通常それを使って何を作成するのだろうか?
プログラミング言語業界で広く使われていることは知っていますが、これはほんの一部だと思いますよね?
java - JavaCCでParseExceptionをフォーマットする
JavaCCによってスローされたParseExceptionを人間が読める形式でフォーマットするにはどうすればよいのでしょうか。実際、例外のトークン参照には、、、などのフィールドが含まれていますが、解析されたソースへの参照は含まれていませんbeginLine
。beginColumn
endColumn
endLine
ありがとう!:)
java - JavaCC: 動的に生成された jj ファイルから Java クラスを生成し、実行時にコンパイルしたい
コンパイル時に javaCC を使用して独自の言語パーサーを作成するプロジェクトをリファクタリングしています。さまざまなバリエーションの言語が同時に存在する可能性があるため、実行時に jj ファイルから Java ソース コードを動的に生成し、Java ファイルをクラス ファイルにコンパイルしてロードすることにしました。
より効率的に行うために、Javaファイルをメモリ内に生成して、ストリームに生成したいと思います。JavaCC の API Javadoc はあまりアクセスしにくい :)。
どのように進行するのが最善ですか?
java - JavaCC の問題 - 生成されたコードですべての解析エラーが検出されない
JavaCCを始めたばかりです。しかし、私はそれに対して奇妙な行動をとっています。記号 (+、-、/) で連結され、括弧を含めることができるトークン (文字と数字) の形式で入力を検証したいと考えています。それが理解できたことを願っています:)
メイン メソッドには文字列があり、開き括弧が 1 つと閉じ括弧が 2 つあるため、エラーが発生するはずですが、解析例外が発生しません --> なぜですか?
なぜ例外が発生しないのか、誰にも手がかりがありますか?
私は最初の試行で左再帰と選択の競合に苦しんでいましたが、なんとかそれらを乗り越えることができました. 多分私は問題を導入しましたか?
ああ、おそらく私の解決策はあまり良くありません-この事実を無視してください...または、より良いアドバイスをしてください;-)
ファイル: CodeParser.jj
編集 - 2009 年 11 月 16 日
今、ANTLRを試してみました。
問題のドメインにより適合するようにいくつかの用語を変更しました。次のコードを思いつきました(このサイトの回答を使用)。これは現在機能しているようです:
ところで... ANTLRWORKS は、デバッグ/視覚化のための優れたツールです! とても助かりました。
追加情報
上記のコードは次のようなものに一致します:
java - JavaCC の ADVANTAGE と ANTLR の違い
短所を教えてくれる人が多すぎますが、メリットがあるとすれば何ですか?
java - Javacc で前処理/ストリーム内のいくつかの文字をプッシュしますか?
javaccを使用して、入力ストリームの前にいくつかの新しい文字をプッシュできますか?
たとえば、パーサーが次の構文を解析するとします。
パーサーを呼び出す前にスキャナーが前処理${Volume}
する必要があることを javacc に伝えるにはどうすればよいですか?(Title,(Chapter,Paragraph+)+)
MOREステートメントを使用して達成できますか?
ありがとう
javacc - 一致したトークンを JavaCC で出力する
javacc で一致したトークンを出力する必要がありますが、「保存」する方法がわかりません。私のトークン定義は次のとおりです。
私の parser.input() 関数は次のとおりです。
しかし、私が本当に出力したいのは、いくつかの入力、たとえば 5 が与えられた場合、次のとおりです。
任意のヒント?ありがとう
java - Javacc パーサー オプション LOOKAHEAD、Java
私は最近、javacc を使用して文法アナライザーをいじり始めました。フィールドの 1 つはオプション 1 です...次のようなコードがあります。
LOOKAHEAD オプションとは正確にはどういう意味ですか? ありがとう
javacc - Javacc の「Rational」トークン
javacc で有理数を取り、その値を計算する「有理」トークンを作成するにはどうすればよいですか。たとえば、「2/5」の値 =0.4。このための正規表現の書き方は知っていますが、javacc コードに Java メソッドを組み込む方法/場所を知りませんし、適切に教えられたこともありません。私は次のようにアドバイスされました:
分母が 0 の有理数は未定義であることに注意してください。エラーを生成する代わりに、上記のように無限大を出力します。アドバイス: Java String クラスの indexOf メソッドと substring メソッドを使用して、有理数の分子部分と分母部分を抽出できます。分母の値を格納するために、2 番目の変数 (val2 など) を定義することをお勧めします。また、除算の結果を double にキャストします。つまり、(double) val / val2 です。
私は javacc を初めて使用しますが、Java の基本的な知識は持っています。この件に関するアドバイスは大歓迎です。どうもありがとう。