您好我已经为我的一个使用xtext编辑器的要求编写了如下语法。
Feature:
dclass=[ecore::EClass] (".")? (feature=[ecore::EStructuralFeature])?;
基本上我是交叉引用我的emf模型,所以我可以在我的对象上调用方法,它支持下面的功能 - 如果我有方法的Employee类getSalary()和Salary作为类使用方法getBasic() 目前支持以下呼叫
Employee.salary
但我想要的是因为上面的代码返回Salary我想在那个
上调用更多的方法Employee.salary.amount
or Employee.getSalary().getAmount()
我怎样才能实现这一目标?有什么帮助吗?
答案 0 :(得分:1)
我刚刚更改了语法如下,然后通过范围提供者我实现了内容辅助。
Feature:
{Feature} dclass=[ecore::EClass];
DotExpression:
(Feature) ({DotExpression.ref=current} "."tail=[ecore::EStructuralFeature])*;
使用DotExpression获取类似java的行为