为像java这样的方法调用编写Xtext语法

时间:2018-04-24 10:23:42

标签: xtext

您好我已经为我的一个使用xtext编辑器的要求编写了如下语法。

Feature:
    dclass=[ecore::EClass] (".")? (feature=[ecore::EStructuralFeature])?;

基本上我是交叉引用我的emf模型,所以我可以在我的对象上调用方法,它支持下面的功能 - 如果我有方法的Employee类getSalary()和Salary作为类使用方法getBasic() 目前支持以下呼叫

Employee.salary

但我想要的是因为上面的代码返回Salary我想在那个

上调用更多的方法
Employee.salary.amount

or Employee.getSalary().getAmount()

我怎样才能实现这一目标?有什么帮助吗?

1 个答案:

答案 0 :(得分:1)

我刚刚更改了语法如下,然后通过范围提供者我实现了内容辅助。

Feature:
    {Feature} dclass=[ecore::EClass];

DotExpression:
    (Feature) ({DotExpression.ref=current} "."tail=[ecore::EStructuralFeature])*;

使用DotExpression获取类似java的行为