Java XText和JVM类型
我试图用最新版本的xtext(2.12)得到一个非常简单的例子。根据文件: 我的.xtext文件如下所示:Java XText和JVM类型,java,eclipse,xtext,Java,Eclipse,Xtext,我试图用最新版本的xtext(2.12)得到一个非常简单的例子。根据文件: 我的.xtext文件如下所示: grammar org.mylang.MyLang with org.eclipse.xtext.common.Terminals import "http://www.eclipse.org/xtext/common/JavaVMTypes" as jvmTypes generate evidently "http://www.mylang.org/MyLang" DataType:
grammar org.mylang.MyLang with org.eclipse.xtext.common.Terminals
import "http://www.eclipse.org/xtext/common/JavaVMTypes" as jvmTypes
generate evidently "http://www.mylang.org/MyLang"
DataType:
'datatype' name=ID
'mapped-to' javaType=[jvmTypes::JvmType|QualifiedName];
QualifiedName: ID ('.' ID)* ;
然而,在我生成工件并启动eclipse编辑器之后,尽管语法高亮显示可以工作,但每当我尝试引用JVM类型时都会出现错误。例如:
datatype xxxx mapped-to java.util.Date
我在
java.util.Date
下得到一行错误。我缺少什么?尝试使用org.eclipse.xtext.xbase.Xtype而不是org.eclipse.xtext.common.Terminals。还要观察src gen
文件夹中生成的基础结构中的更改。它可以工作!但是为什么呢?怎么做?似乎引入xType为名称空间添加了很多东西(例如,QualifiedName在xType中)。有没有一种方法可以在不导入所有这些内容的情况下实现这一点?另外,我在哪里可以确切地看到xType定义了什么?您可以使用xType查看AbstractXXXModules中生成的绑定,并将它们复制并粘贴到您的运行时/ui模块中,而不必导入xtype@jsinglet,您可以在org.eclipse.xtext.xbase.Xtype
上用F3打开Xtype
语法声明。一些预定义的语言结构可能对您有用,例如JvmTypeReference
@jsinglet,检查DefaultCommonTypesRuntimeModule
和defaultcommontypesuimule
,了解基于Xtype
的语言基础结构。