Xtext:为对象创建唯一的ID

时间:2016-08-28 14:02:49

标签: object grammar xtext unique-id

我的语法看起来像

A: 
...
B:
...

我希望能够为B类的每个元素提供一些序列号ID。因此,每当语法创建一个B对象时,它就会得到一个(唯一的)新ID作为字段。

我尝试过这样的事情:

B:
myID=Tracer.getID()
...

其中:

class Tracer {
static int ID=0;
static int getID() { return ID++;}

但是我无法从语法中调用外部java类。

如果可以在不触及src-gen文件的情况下解决它会更好。

感谢。

1 个答案:

答案 0 :(得分:0)

您是否意识到在文本模型中,没有对象标识这样的东西?即你从根本上不能说不同AST中的任何两个对象是相同的。您只能使用diff算法建立等价解释。

除此之外,如果你只需要一个临时身份,那么使用Object.hashCode()呢?