0

私はXtextを理解し、それが私のニーズに合っているかどうかを調べようとしています。実行中にアプリケーションでコンパイルおよび評価できるDSLを作成できるツールを探しています。

Xtextは、これに多くの機能(文法エディター、IDE統合、パーサージェネレーターなど)を提供するため、非常に優れたツールのように見えます。私が理解したように、XtextはパーサーとIDE拡張機能を生成できますが、コンパイラーが必要な場合は、自分で作成するか、Javaマッピングを作成してJavaソースファイルを生成してコンパイルする必要があります。

Xtextのパーサーとジェネレーターをアプリケーションに埋め込んで、実行時にDSLで記述されたスクリプトをプリコンパイルせずにコンパイルできるかどうかはわかりません。目標は、リリース後の変更を可能にするスクリプトをアプリケーションに同梱することです。

4

1 に答える 1

2

はい、これは完全に可能であり、実際には非常に簡単です。すべてのコアコンポーネント、つまり非IDE機能は、Eclipseから独立しています。これを行う方法を示すサンプルJavaコードがドキュメントにあります。それは基本的に問題か

// creating the injector
Injector injector = new MyLanguageStandaloneSetup().createInjectorAndDoEMFRegistration()

// obtain a resource set
XtextResourceSet resourceSet = injector.get(XtextResourceSet.class);

// load file
Resource resource = resourceSet.getResource(URI.create("path/to/file.mylanguage"), true);

// obtain root AST element
MyModel model = (MyModel) resource.getContents().get(0);
于 2012-11-20T18:13:44.707 に答える