我正在尝试使用Antlr4
为状态转换语言编写语法该系统具有一次声明的变量(例如,状态),并且可以在别处引用。
我的问题是: Antlr4是否支持XText 中的交叉引用?
如果Antlr4没有提供此功能,我想一个" easy"这样做的方法是使用一个内存Map来解析令牌并将信息存储在这个Map中?
答案 0 :(得分:0)
简短的回答是否定的,XText中的交叉引用可以实现一定程度的复杂性,这种复杂性很难在基于EMF的系统之外复制。
但是,在最简单的形式中,交叉引用只需要一个静态符号表。根据您的需要,symbol versioning基于状态遍历可能就足够了。版本控制通常在树步行期间执行。静态符号的初始化可以在基于语法的动作中执行,但最好在解析器而不是词法分析器中完成。