xText 2 - 处理令牌

时间:2012-02-01 21:22:40

标签: java xtext

是否可以在将令牌分配给EAttribute之前修改令牌 为多个EAttributes分配相同的令牌?

类似以下内容(伪代码):

MyRuleWithModifiedToken:
    'entity' name=${ID + 'Entity'} '{' ... '}'

MyRuleUsingSameToken:
    name=ID sameName=${<ID}

我读过关于使用PostProcessor written in xTend的内容,但不允许不修改生成的模型的数据。

提前致谢

1 个答案:

答案 0 :(得分:1)

您可以使用IValueConverter修改令牌 - 这适用于终端或数据类型规则,因此您可能需要为要进行特殊转换的特殊EAttribute引入一个。

EntityName: ID 'Entity';
MyRuleWithModifiedToken: 'entity' name=EntityName ....;
然后,ValueConverter会在执行tovalue转换时删除Entity postfix,并在执行toString转换时添加它。