1

この質問はlexとyaccに限定されませんが、プロジェクトの一部としてカスタムスクリプトコンパイラを追加するにはどうすればよいですか?たとえば、プロジェクトには次のファイルがあります。

grammar.y
grammar.l
test.script

バイナリの「script_compiler」は、lex、yacc、およびg++によってコンパイルされたgrammar.yおよびgrammar.lを使用して生成されます。次に、生成されたscript_compilerを使用してtest.scriptをコンパイルし、CompiledScript.javaを生成します。このファイルは、プロジェクト内の残りのJavaファイルと一緒にコンパイルする必要があります。この設定はXCodeまたはmakeで可能ですが、Eclipseだけでも可能ですか?そうでない場合は、Mavenプラグインと一緒にいかがですか?

(スクリプトコンパイラを別のプロジェクトとしてセットアップすることもできますが、同じプロジェクトに配置して、文法ファイルへの変更をすぐに適用できると便利です)

よろしくお願いします!

4

2 に答える 2

0

プロジェクトのプロパティダイアログからカスタムの「ビルダー」を追加できます。これは、antスクリプト(オプションのターゲットを含む)またはその他のスクリプトまたは実行可能ファイルにすることができます。

antやその他のスクリプト言語用のMavenプラグインもあります

于 2012-08-12T13:57:33.263 に答える
0

Mavenで外部プログラムを実行したいだけの場合は、次のようにします。http: //mojo.codehaus.org/exec-maven-plugin/-IDEまたはコマンドラインからMavenターゲットを実行できます。どちらの方法でも正しいことをしてください。

通常のコンパイルと統合するには、プラグインを「generate-sources」フェーズにバインドし、Javaファイルが生成される場所をexecプラグインの「sourceRoot」オプションに追加します。そうすれば、コンパイラはそれらを取得します。

理想的には、コードを「target /generated-sources/MY_SCRIPT_NAME」フォルダーに生成します。これは、Mavenの世界で生成されたソースの標準的な場所であり、たとえばIntelliJIDEAはその場所内のソースファイルを取得します。ファイルが直接「target/generated-sources」にある場合、これは機能しないことに注意してください。

もう1つのオプションは、独自のMavenプラグインを作成することです。これも実際には非常に簡単です。たとえば、https ://github.com/peterbecker/maven-code-generatorを参照してください

于 2013-01-16T00:20:01.027 に答える