这个问题似乎很明显,但我只是从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的运行时EMF模型
- 4. Xtext:运行需求验证等功能
- 5. Xtext(DSL文件)到Ecore
- 6. 如何运行.awk文件?
- 7. 如何运行XSLT文件?
- 8. 如何运行index.jade文件?
- 9. 如何运行.sqlite文件?
- 10. 如何运行ruby文件?
- 11. 如何运行.lua文件?
- 12. 如何运行JShell文件?
- 13. Shift键减少的Xtext
- 14. 的Xtext,从选择
- 15. XText注册全局变量
- 16. XTEXT验证显示错行的分析错误
- 17. xtext parameterized xtext runner
- 18. XTEXT:交叉引用未找到引用
- 19. 部署Xtext时,如何通过插件与Eclipse集成?
- 20. 如何让setup.exe文件自行运行?
- 21. 使用Maven构建XText 2.0和XPand 1.1
- 22. xtext的Itextsharp文档
- 23. 如何通过eclipse中的zip文件安装xText helios
- 24. Xtext,在LaunchMydslShortcut中获取Iselection输入
- 25. 如何让Ruby文件作为可执行文件运行?
- 26. Xtext超链接如何?
- 27. XText中的简单导入指令
- 28. 为Xtext项目创建Ant Build文件
- 29. 两个文件中的Xtext语法
- 30. 如何在xonsh中运行Python文件?
当新的eclipse实例打开时,创建一个新项目并在里面创建一个带有DSL文件扩展名的新文件。如果你一切正确,这个文件将用你的DSL的Xtext编辑器打开,编辑应该像你的语法中指定的一样工作。 – lwi