【发布时间】:2015-08-15 03:28:51
【问题描述】:
在我的语法中,我有变量和对象(对象只是一个名称 (ID))。现在我希望一个变量可以是对另一个声明的变量或对象的引用。
所以我想解析以下输入:
var = 3;
var2 = var;
objVar = MyObject;
我是这样实现的:
Declaration:
name = ID "=" Content ";"
;
Content:
INT
| reference = [Declaration]
| object = ID
但解析器无法区分简单 ID 和对声明的引用(因为名称也是 ID)。
有没有办法解决我的问题?
我尝试了语法谓词,但我也可以从我的规则中删除引用或对象,因为解析器只看到一个 ID 而不是一个引用。在 ANTLR 中,我会使用语义谓词,但据我所知,它们在 Xtext 中不存在。
有没有办法让解析器识别ID是否是引用,然后让它选择ID来匹配引用或对象?
问候 Krzmbrzl
【问题讨论】: