【问题标题】:Xtext: Create a unique ID for objectsXtext:为对象创建唯一 ID
【发布时间】:2016-08-28 14:02:48
【问题描述】:

我的语法看起来像

A: 
...
B:
...

我希望能够为 B 类型的每个元素提供一些序列号。所以每次语法创建一个 B 对象时,它都会获得一个(唯一的)新 ID 作为字段。

我试图做类似的事情:

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

地点:

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

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

如果不接触 src-gen 文件就可以解决就更好了。

谢谢。

【问题讨论】:

  • 您是否考虑过改用外部元模型?在 2.9+ 中不再支持扩展点 IXtext2EcorePostProcessor。 (bugs.eclipse.org/bugs/show_bug.cgi?id=483209)
  • 我正在尝试像在您的博客 christiandietrich.wordpress.com/2011/07/22/… 中那样做,但我找不到 org.eclipse.xtext.generator.Generator。是 org.eclipse.emf.codegen.ecore.Generator 还是 org.eclipse.emf.codegen.ecore.generator.Generator?或者接口 org.eclipse.xtext.generator.IGenerator?
  • 在 xtext 2.9+ 中它就像错误中描述的那样

标签: object grammar xtext unique-id


【解决方案1】:

您是否知道在文本模型中不存在对象标识之类的东西? IE。您从根本上不能说不同 AST 中的任何两个对象都是相同的。您只能使用差异算法建立对等的解释。

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

【讨论】:

    猜你喜欢
    • 2019-06-14
    • 2016-02-03
    • 1970-01-01
    • 2022-11-28
    • 1970-01-01
    • 2016-12-12
    • 1970-01-01
    • 1970-01-01
    • 2011-08-22
    相关资源
    最近更新 更多