为 java 等方法调用编写 Xtext 语法
Writing Xtext Grammar for method calls like java
您好,我已经为我的一个使用 xtext 编辑器的要求编写了如下语法。
Feature:
dclass=[ecore::EClass] (".")? (feature=[ecore::EStructuralFeature])?;
基本上我正在交叉引用我的 emf 模型,这样我就可以在我的对象上调用方法,它支持如下所示的功能 - 如果我有员工 class,方法为 getSalary() 并且薪水为 class 使用方法 getBasic()
目前支持以下调用
Employee.salary
但是我想要的是因为上面的代码 returns Salary 我想在上面调用更多的方法
Employee.salary.amount
or Employee.getSalary().getAmount()
我怎样才能做到这一点?有帮助吗?
我只是将语法更改如下,然后通过范围提供程序我实现了内容辅助。
Feature:
{Feature} dclass=[ecore::EClass];
DotExpression:
(Feature) ({DotExpression.ref=current} "."tail=[ecore::EStructuralFeature])*;
使用 DotExpression 获得 java 喜欢的行为
您好,我已经为我的一个使用 xtext 编辑器的要求编写了如下语法。
Feature:
dclass=[ecore::EClass] (".")? (feature=[ecore::EStructuralFeature])?;
基本上我正在交叉引用我的 emf 模型,这样我就可以在我的对象上调用方法,它支持如下所示的功能 - 如果我有员工 class,方法为 getSalary() 并且薪水为 class 使用方法 getBasic() 目前支持以下调用
Employee.salary
但是我想要的是因为上面的代码 returns Salary 我想在上面调用更多的方法
Employee.salary.amount
or Employee.getSalary().getAmount()
我怎样才能做到这一点?有帮助吗?
我只是将语法更改如下,然后通过范围提供程序我实现了内容辅助。
Feature:
{Feature} dclass=[ecore::EClass];
DotExpression:
(Feature) ({DotExpression.ref=current} "."tail=[ecore::EStructuralFeature])*;
使用 DotExpression 获得 java 喜欢的行为