如果您想要引用 Java 类型,请使用org.eclipse.xtext.xbase.Xtype
as super-grammar。然后你可以写一个规则
VariableDeclaration:
type=JvmTypeReference name=ValidID ';';
表达您的代码示例。
如果您还想表达分配,我建议使用org.eclipse.xtext.xbase.Xbase
as super-grammar(它继承自 Xtype)并在您想从 Java 中引用元素的任何地方使用 XExpression 规则,例如
VariableAssignment:
variable=[VariableDeclaration|ValidId] '=' expression=XExpression;
为了使事情更容易,您还可以将 XExpression 用于变量声明(XVariableDeclaration 是一种特殊的 XExpression)和赋值(XAssignment 是另一种特殊的 XExpression)。这将允许编写类似的东西
{
var SomeType varName
varName = SomeType.SOME_VALUE
}
一次调用 XBlockExpression(用大括号括起来的复合表达式):
MyFunkyRule:
...
expressionBlock=XBlockExpression
...