我的语法看起来像
A:
...
B:
...
我希望能够为B类的每个元素提供一些序列号ID。因此,每当语法创建一个B对象时,它就会得到一个(唯一的)新ID作为字段。
我尝试过这样的事情:
B:
myID=Tracer.getID()
...
其中:
class Tracer {
static int ID=0;
static int getID() { return ID++;}
但是我无法从语法中调用外部java类。
如果可以在不触及src-gen文件的情况下解决它会更好。
感谢。
答案 0 :(得分:0)
您是否意识到在文本模型中,没有对象标识这样的东西?即你从根本上不能说不同AST中的任何两个对象是相同的。您只能使用diff算法建立等价解释。
除此之外,如果你只需要一个临时身份,那么使用Object.hashCode()呢?