這個問題似乎很明顯,但我只是從Xtext
開始。 因此在創建xtext項目並運行mydsl.xtext
文件之後。
它啓動了一個新的eclipse迭代。我在一個新項目中創建一個新的.mydsl文件。但我不知道下一步該怎麼做!我如何運行.mydsl
文件? 我如何使用我的DSL
?
所有Xtext教程在創建DSL
後停止,並且不顯示如何使用它。 我正在關注the 15 minutes Xtext tutorial
我的代碼是由eclipse給出的hello字代碼,在這一點上沒什麼特別的。如何運行Xtext .mydsl文件?
-1
A
回答
0
Xtext項目的結果是由您自己設計的領域特定語言,可以在IDE(Eclipse或Intellij,據我所知)內進行解析,驗證,鏈接和用於代碼生成和無頭。
根據您希望在DSL中擁有的功能,您必須在XText項目中更改和創建不同的類。
通常第一個步驟包括:
- 創建你的語法(
.xtext
文件),指定你的DSL應該如何解析和語法上看起來。 - 運行的語言生成的語法(右鍵點擊
.xtext
文件 - >運行爲 - >產生的Xtext文物) - 運行另一個Eclipse實例(如運行 - > Eclipse的應用程序)在行動中看到你的語法。爲此,創建一個新項目,並將DSL文件的文件放在項目中。對話框會要求您將DSL項目的性質添加到項目中。同意並嘗試編輯該文件。這個文件應該像xtext語法中指定的那樣工作。
+0
我可能錯誤地表達了自己,所以很抱歉。我在問下一步。 我已經創建了項目和我的DSL文件結尾的文件,它的行爲如預期。但嗨,我運行最後一個文件。那個使用我的DSL的人。我以爲期望可以給我一種執行我的項目maven或gradle的方法。 –
0
如果你想要一個Java主讀模式並執行發電機當你保存你可以看看這個片斷
package org.eclipse.xtext.example.domainmodel;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.ResourceSet;
import org.eclipse.xtext.generator.GeneratorContext;
import org.eclipse.xtext.generator.GeneratorDelegate;
import org.eclipse.xtext.generator.IGeneratorContext;
import org.eclipse.xtext.generator.JavaIoFileSystemAccess;
import org.eclipse.xtext.util.CancelIndicator;
import org.eclipse.xtext.validation.CheckMode;
import org.eclipse.xtext.validation.IResourceValidator;
import org.eclipse.xtext.validation.Issue;
import com.google.common.collect.Lists;
import com.google.inject.Injector;
/**
* @author dietrich - Initial contribution and API
*/
public class Main {
public static void main(String[] args) {
// TODO traverse directory
List<String> files = Lists.newArrayList("model/a.dmodel", "model/b.dmodel");
Injector injector = new DomainmodelStandaloneSetup().createInjectorAndDoEMFRegistration();
ResourceSet rs = injector.getInstance(ResourceSet.class);
ArrayList<Resource> resources = Lists.newArrayList();
for (String file : files) {
Resource r = rs.getResource(URI.createFileURI(file), true);
resources.add(r);
}
IResourceValidator validator = injector.getInstance(IResourceValidator.class);
for (Resource r : resources) {
List<Issue> issues = validator.validate(r, CheckMode.ALL, CancelIndicator.NullImpl);
for (Issue i : issues) {
System.out.println(i);
}
}
GeneratorDelegate generator = injector.getInstance(GeneratorDelegate.class);
JavaIoFileSystemAccess fsa = injector.getInstance(JavaIoFileSystemAccess.class);
fsa.setOutputPath("src-gen-code/");
GeneratorContext context = new GeneratorContext();
context.setCancelIndicator(CancelIndicator.NullImpl);
for (Resource r : resources) {
generator.generate(r, fsa, context);
}
}
}
0
。 yourdsl文件在你暫時打開的編輯器上,它會自動構建它。一旦它成功建立並且沒有錯誤,你的工作區中就會有一個名爲src-gen的目錄。在那裏,您將擁有您的dsl根據您的yourdsl Generator.xtext生成的文件。
相關問題
- 1. 的Xtext,匯入我自己看MyDSL文件
- 2. Xtext,在MyDsl項目中導入另一個項目
- 3. 直接運行Xtext產品
- 4. 如何使用Xtext和Xtend生成AST?
- 5. 的Xtext運行時編譯
- 6. 訪問Xtext的運行時EMF模型
- 7. xtext中的跨文件引用
- 8. Xtext:運行需求驗證等功能
- 9. 如何運行JShell文件?
- 10. 如何運行Node.js文件?
- 11. 如何運行JSP文件?
- 12. 如何運行ruby文件?
- 13. 如何運行.awk文件?
- 14. 如何運行.lua文件?
- 15. 如何運行XSLT文件?
- 16. 如何運行.sqlite文件?
- 17. 如何運行Clojure文件?
- 18. 如何運行.xcworkspace文件
- 19. 如何運行.exe文件?
- 20. 如何運行index.jade文件?
- 21. 如何運行Java文件?
- 22. Xtext(DSL文件)到Ecore
- 23. Xtext - 多文件語言
- 24. Shift鍵減少的Xtext
- 25. 的Xtext,從選擇
- 26. Ctrl-F11運行當前文件。我如何運行「主」文件?
- 27. Xtext 2.9範圍提供者
- 28. XText註冊全局變量
- 29. 如何對Xtext進行單元測試
- 30. XTEXT驗證顯示錯行的分析錯誤
當新的eclipse實例打開時,創建一個新項目並在裏面創建一個帶有DSL文件擴展名的新文件。如果你一切正確,這個文件將用你的DSL的Xtext編輯器打開,編輯應該像你的語法中指定的一樣工作。 – lwi