我需要通过编程将符合XText语法的文本转换为符合XText从同一语法生成的Ecore元模型的AST。
我知道XText也会生成实现这种解析器的Java类,但我也不知道它们在哪里以及如何使用它。
以下是代码:
@Inject
ParseHelper<Domainmodel> parser
def void parseDomainmodel() {
// When in a vanilla Java application (i.e. not within Eclipse),
// you need to run a global setup:
val injector = new MyDslStandaloneSetup().createInjectorAndDoEMFRegistration
injector.injectMembers(this) // sets the field 'parser'
// this is how you can use it:
val model = parser.parse(
"entity MyEntity {
parent: MyEntity
}")
val entity = model.elements.head as Entity
assertSame(entity, entity.features.head.type)
}
另见http://www.eclipse.org/Xtext/documentation.html#TutorialUnitTests.
这个问题的完整答案可以在EclipseWiki的Xtext页面上找到。
new org.eclipse.emf.mwe.utils.StandaloneSetup().setPlatformUri("../");
Injector injector = new MyDslStandaloneSetup().createInjectorAndDoEMFRegistration();
XtextResourceSet resourceSet = injector.getInstance(XtextResourceSet.class);
resourceSet.addLoadOption(XtextResource.OPTION_RESOLVE_ALL, Boolean.TRUE);
Resource resource = resourceSet.createResource(URI.createURI("dummy:/example.mydsl"));
InputStream in = new ByteArrayInputStream("type foo type bar".getBytes());
resource.load(in, resourceSet.getLoadOptions());
Model model = (Model) resource.getContents().get(0);
将文件扩展名(mydsl
)更改为您自己的语言扩展名。
我正在尝试使用Thymeleaf模板呈现XML/JSON。我不想使用模板名称渲染视图,只想解析模板,如下所示。问题是我得到的只是模板名,而不是它的内容。 设置: 模板(src/main/resources/templates/早餐菜单.xml): 用法: 使用Thymeleaf3.0。0.BETA01。
简短:给定(groupId,artifactId,version,repository URL),我可以用编程方式让Maven解析工件URL吗? Long:给定(groupId、artifactId、version、repository URL),可以下载一个Maven工件。工件的URL通常如下所示: 方案://{repository}/{groupId}/{artifactId}/{versio
如何将XSD 1.1模式自动转换为XSD 1.0模式,方法是去掉所有1.1功能,只保留与XSD 1.0兼容的子集? 我意识到这将限制您可以利用多少XSD 1.1功能,但是我想象的用例是一个模式,您可以发布XSD 1.1版本和更兼容的XSD 1.0版本,两者都描述相同的数据结构但是1.1版本有一些额外的
问题内容: 我可以下载并安装一封来自PyPI Python模块严格意义上的脚本中,不使用外壳 在所有 ? 我使用非标准的Python环境,即Autodesk Maya的Python解释器。它不带有“ easy_install”,也没有“ shell”,只有主要Maya可执行文件调用的python脚本解释器。将ez_setup.py的内容复制并粘贴到脚本编辑器窗口中并正确运行,将easy_insta
问题内容: 是否可以通过命令在任何行停止执行python脚本? 喜欢 问题答案: sys.exit()可以完全满足您的要求。
我正在以编程方式运行Mwe2工作流,为了成功运行此工作流,我需要将Terminals.xtext的referencedResource添加到GenerateYourdsl.Mwe2文件中。提到的GenerateYourdsl.mwe2文件是在我创建新项目时由Xtext生成的--我没有修改它。是否有可能从这个工作流中获取对象,用Java访问它,并将这个属性添加到工作流组件属性的语言属性中? 以下是工