XText:使用自定义终端定义
|
我对XText完全陌生。
当您使用XText定义语法时,您可以指定第二个语法,并使用它所声明的定义,如下所示:
grammar org.eclipse.xtext.example.Domainmodel with org.eclipse.xtext.common.Terminals
在Xtext中,每个语法都有唯一的
名称,类似于公共Java类
需要反映出
Java类路径中的文件。在我们的
如果语法文件位于
/org/eclipse/xtext/example/Domainmodel.xtext
因此语法名称是
org.eclipse.xtext.example.Domainmodel。
该声明的第二部分(
与
org.eclipse.xtext.common.Terminals)
指出,该语法重用了
覆盖指定的规则
语法。的
org.eclipse.xtext.common.Terminals是
Xtext附带的库语法
并预先定义最常见的
终止规则
我正在开发XText插件,我想在一个单独的文件中定义自己的终端符号。可能吗?我怎样才能做到这一点?
我试图创建一个新的Xtext文件,并将其附加到org.eclipse.xtext.common.Terminals之后,并仅添加我的文件,但两种解决方案都无法编译。
谢谢。
编辑
如果我在同一项目中使用两个xtext文件,一个用于语法,一个用于语法的终端,则在启动mwe2文件时会出现以下异常:
java.lang.IllegalStateException:
问题解析
\'classpath:/org/xvr/language/sh/ShaderDsl.xtext \':[XtextLinkingDiagnostic:
null:1无法解析对
语法
\'org.xvr.language.sh.ShTerminal \',,
XtextLinkingDiagnostic:null:9
无法解析对
AbstractRule \'ID \'。,
TransformationDiagnostic:null:14
无法创建数据类型为INVARIANT
(错误代码:NoSuchTypeAvailable),
TransformationDiagnostic:null:17
无法创建数据类型PRECISION
(错误代码:NoSuchTypeAvailable),
TransformationDiagnostic:null:19
无法创建数据类型HIGH_PRECISION
(错误代码:NoSuchTypeAvailable),
TransformationDiagnostic:null:20
无法创建数据类型
MEDIUM_PRECISION(错误代码:
NoSuchTypeAvailable),
TransformationDiagnostic:null:21
无法创建数据类型LOW_PRECISION
(错误代码:NoSuchTypeAvailable)]
这两个xtext文件是:
语法
grammar org.xvr.language.sh.ShaderDsl with org.xvr.language.sh.ShTerminal //org.eclipse.xtext.common.Terminals
generate shaderDsl \"http://www.xvr.org/language/sh/ShaderDsl\"
....
和语法的终端
grammar org.xvr.language.sh.ShTerminals with org.eclipse.xtext.common.Terminals
generate shTerminals \"http://www.xvr.org/language/sh/ShTerminals\"
terminal Test : \'test\';
没有找到相关结果
已邀请:
1 个回复
嘘伪