問題タブ [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.
grammar - JavaCCを使用してC文法を解析するためのソース
プロジェクトの割り当てとして、JavaからプレーンCの文法を解析して、AST出力を生成する必要があります。スタートアップとして、私は文法ファイルの中で見つけたファイルc.jjを使用しています。
http://java.net/projects/javacc/sources/svn/
しかし、構文と字句のアクションしかなく、Cソースを解析するための実際のセマンティクスがないことがわかりました。typedef、変数、構成関数、インクルードファイルを組み込んだ他のソースはありますか?
assembly - アセンブリ言語からマシンコードへの JavaCC パーサー - 命令分離の問題
HY.JavaCC (アセンブラー) を使用してアセンブリ コード (マイクロコントローラー 8051) からマシン コードに変換するパーサーを作成しようとしています。JavaCC の文法とその構造については読みましたが、ジレンマがあります。私はADD
指示を持っています:
そして、それらのそれぞれについて、私は Machine code (hex code)ex: ADD A,R0
translates to 28H を持っています。また、私はMOV
命令を持つことができます:
MOV A,Rn
またはMOV A,@Ri
しかし、私も持ってい MOV data_addr,Rn
ます MOV R6,#data
。
今、私の問題は、2 つの命令の間でこの違いをどのように作成するかです。トークンを次のように
定義するとします。多くの命令があるため、特定の動作を指定する関数であるトークンごとに関数を定義できませんでした。少し、そう思いませんか....だから私はかなり行き詰まっています。どちらの道に進むべきかわかりません。
助けてくれてありがとう!
Token{
<IN_MOV :"mov">
|<IN_ADD:"add"
}token.image==.equals("mov"), then go on one direction to the specific behaviour
java - JavaCC / JJTreeノードクラスにフィールドがありませんか?
JavaCCからJJTreeを使用して単純な言語パーサーを実装するプロジェクトを「継承」しました。コードは5年以上前のものだったので、実際の開発を行う前に、JavaCCを含むすべての依存関係を最新リリースに更新することにしました。
そのため、JJTree / JavaCCで生成されたファイルをすべて削除し、最新バージョン(5.0)を使用して再構築しました。ただし、結果のファイルには、以前に存在していたフィールドとメソッドが欠落しているように見え、コードはそれ以上コンパイルされません。
JavaCCで何かが変更され、文法ファイルを更新する必要があると想定したため、現在のJavaCCディストリビューションの例を試してみましたInterpretter
が、同じ結果になりました。コードのコンパイルを許可しないクラスフィールドがありません。
たとえば、次SPL.jjt
のInterpretter
例の定義を次に示します。
この例のフォルダーには、ASTId.java
元々次のコンテンツが含まれていたファイルが含まれています。
AST*.java
ファイルを再生成した後、内容が変更されました。
ここには多くの欠落があり、その結果SPLParser.java
、対応するクラスで定義されていないフィールドを使用しているため、生成されたファイルはコンパイルされません。
私は何が欠けていますか?使用しなければならないJJTreeまたはJavaCCオプションはありますか?おそらく、文法ファイルに加える変更ですか?または、元のファイルが編集されているかどうか本当にわからないので、生成されたファイルを直接変更して、不足しているビットを手動で追加する必要がありますか?
私はJavaCCの経験がないので、この問題を解決するためのヒントをいただければ幸いです。
java - Javacc の単体テスト
アプリケーションで Javacc パーサー ジェネレーターを使用しており、文法の単体テストを行いたいと考えています。
gUnit が ANTLR 用であるように、javacc 用の単体テスト フレームワークがあるかどうかを知りたいです。そうでない場合、この文法をテストする最良の方法は何ですか?
java - パーサーを理解しようとしています
JavaCCを使用して、さまざまな式を処理できる単純なコマンドライン計算機を構築しようとしています。文法の書き方についてはたくさんのチュートリアルがありますが、これまでに見たもののどれも、その後に何が起こるかを説明していません。
私が今理解しているのは、文字列がパーサーに渡された後、それはトークンに分割され、解析ツリーに変換されるということです。次は何が起こる?各ノードのコンテンツに対して一連のif-else文字列比較を実行して解析ツリーをトラバースし、適切な機能を実行しますか?
character-encoding - JavaCCでキリル文字をサポートするにはどうすればよいですか?
* .jjtファイルのキリル文字トークンを作成できますか?
たとえば、トークンはjjtで与えられます:
しかし、jjファイルのトークンはひどいように見えます:
次のオプションを使用します。
彼女のクラスの助けを借りてUnicodeを実行する場合:
プログラム開始後:
その結果、Unicode文字列が一致していないことがわかります。例えば:
なぜこれが起こるのか考えがありますか?
PS:このバグはWindowsOSでのみ発生します。
eclipse - Eclipse コンパイル エラー
JTB および JavaCC で生成されたファイルを Eclipse にインポートしましたが、 1行でエラーが発生しました。最初の行 (コメント) のほとんどのクラス ファイルには、「型 java.lang.Object を解決できません。間接的に参照されています。必要な .class ファイル "これを修正するにはどうすればよいですか?
java - トークン定義の JavaCC アクション
JavaCC のレクサーにフックして、関数を呼び出して文字が有効かどうかを確認できるかどうか疑問に思っていました。
私が尋ねている理由は、次のようなものを実装しようとしているためです。
id() は次のとおりです。
これはまったく可能ですか?
eclipse - JavaCCを使用するEclipse言語IDE-プラグイン-はありますか?
JavaCCを使用してEclipseの言語プラグインを作成していますが、JavaCCを使用してAST表現とレクサー/パーサーファイルを作成するEclipse用の安定した言語IDEがあるかどうかを知りたいと思いました。ありがとう。
objective-c - 静的解析のための Objective-C コードの解析
私は静的解析とコンパイル時チェックが大好きで、ほとんど欠点がありますが、私の日常の仕事のほとんどは Objective-C で行われています。この緊張を解消するために、Objective-C プロジェクトで実行できる独自の分析ツールを作成できるようになりたいと考えています。
しかし、インターネットを調べてみると、人々が完全な Objective-C の文法をまとめるのに苦労しているようです。あるサイト は、基本的にあきらめることを勧めています。
ANTLR の Web サイトで文法を見つけましたが、それを起動すると、何も解析できませんでした。たとえば、次の行に応答しました。
とsrc/main/resources/somecode.m line 1:0 no viable alternative at input 'void'
:(
文法を詳しく調べたところ、次の落胆する免責事項が見つかりました。
しかし、インターフェイスと実装の両方を解析できるものが必要です。
完全な Objective-C 2.0 文法はどこかにありますか? 私は Scala で動作するものを好みます (したがって、ANTLR のような Java と互換性のあるものはすべて完璧です) が、現時点では、別のパーサー ツールキット用に設計されたものを採用したいと考えています。