Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java XText和JVM类型_Java_Eclipse_Xtext - Fatal编程技术网

Java XText和JVM类型

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:

我试图用最新版本的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:
  '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
的语言基础结构。