我有特定DSL的语法。这是一个片段(用Xtext编写):
Vars: 'var' (vars += Var)
Var: ID (',' ID) * ':' Type ';'
这是一个示例输入:
var
a,b,c : int;
d,e: bool;
我对Xtend自动代码生成选项非常感兴趣,并希望每个变量都有一个对象,存储它的 id 和它& #39; s 类型。使用Xtex语法synatx我所能做的就是:
Var: ids+=ID (',' ids+=ID)* ':' type =[Type] ';'
这意味着我可能在一个对象中有多个ID。如何存储每个',''' c'在一个对象中?
答案 0 :(得分:1)
无法将每个变量与其类型一起存储。您必须实现一些遍历模型的逻辑才能找到类型。您可以使用Var
本身的派生属性执行此操作。