我对Xtext相当陌生,所以我可能问错了问题,或者使用了不正确的术语。请在你的答复中记住这一点。
我正尝试从零开始在Xtext中实现,作为一个学习练习。JBehave是一个非常“冗长”的语法,类似于我需要能够维护的语法,因此我需要了解如何在不同的上下文中处理各种类型的“单词”。
我已经能够让这个测试用例通过作为一个起点。
@Test
def void loadModel() {
// Multi-line
var story = parseHelper.parse('''
The quick brown fox
Jump
我正在做一个想要重用OCL类型的语法(Xtext项目)。通常在Xtext中使用import语句引用现有类型,例如
import "http://www.eclipse.org/emf/2002/Ecore" as ecore
已经有了一个示例Xtext项目(CompleteOCL),它在语法中集成了OCL类型。不幸的是,该项目在其导入语句中提到了本地插件,例如
import "platform:/resource/org.eclipse.ocl.examples.xtext.base/model/BaseCST.ecore" as base
因此,在Manife
我正在开发一个DSL,它重用在另一个DSL中定义的类型。基本上,我有两个文件扩展名--比方说.A和.B,一些实体在.A中声明,我需要在.B中访问它们,我使用importURI只访问来自.A的引用。
代码完成工作非常好,它为我提供了在.A中声明的实体,但问题是,我看到错误消息说引用无法解决。
我做了与本文中建议的相同的事情,下面是我的工作流片段:
// Java API to access grammar elements (required by several other fragments)
fragment = grammarAccess.Gra
我有一个关于XText/Maven的问题。我有一个XText/Maven/Java项目。
在这个项目中有Xtext模型和Java源文件。一些模型文件引用了一些Java文件。例如:
型号:
package a.b.c
import java.util.List
import x.y.z.MyClass // <-- This is one of the Javafile in the same Project
dto MyModel
{
MyClass myClass
}
Java:
package x.y.z;
public class MyClass
{
Strin
我在DSL中配置作用域时遇到了一些问题
在我的mwe2中我设置了
// scoping and exporting API
fragment = scoping.ImportURIScopingFragment {}
fragment = exporting.SimpleNamesFragment {}
使用此配置,内容辅助将提供所有可能的引用(包含在同一文件中的引用和包含在项目内不同文件中的引用)。这意味着在没有任何导入的情况下,我仍然可以在内容帮助中看到对定义在不同文件中的正确类型的元素的引用。当我选择其中一个引用时,编译器会将其描述为错误“无法解析对..的引用”。尽管被引用的元素被
我们希望重新实现一个旧项目,该项目通过xtext和xpand生成代码。Xpand应该被Xtend(2)取代,旧的fornax插件工作流执行应该被移除,取而代之的是xtext和xtend maven插件。在旧项目中,我们使用了两个maven项目。第一个是xtext-project,它保存了"ownLanguage“的语言定义,如果可能的话,应该只作为编译依赖项重用。第二个文件包含所描述语言的模型、用于xpand的旧工作流和xpt文件。旧的工作流使用此main.xpt作为条目:
«IMPORT ownLanguage»
«DEFINE main FOR Model-»
«E
在我目前的项目中,我已经用Xtext编写了语法,具有很好的功能。例如,我的语法代码片段
Device:
deviceName = ID ':'
('region' ':' ( deviceRegions += DeviceRegions)+ )* ;
DeviceRegions:
regionLabel = [RegionLabel] ';'
// It stores a List of regionLabel functionalities
;
RegionLabel: na