直接左递归会导致错误

时间:2013-07-13 15:56:34

标签: antlr4 left-recursion

我知道ANTLR4支持直接左递归。我的一条规则(由观众编辑为可测试性)最初类似于以下

grammar grammar1;
block 
: block 'end'
| 'end'
;

这很简单,工作正常。后来我的工作涉及将参数传递给一些规则,因此我跟随了以下内容(简化了观众的可测试性):

grammar grammar2;
block[int a] 
: block[$a] 'end'
| 'end'
;

上述语法可能不是很有用,但它确实表达了我所面临的问题。如果可以使用antlr4命令运行grammar1;为什么不能语法2?

这是ANTLR4中的错误还是我做错了什么?也许我以错误的方式传递参数?我经历'找不到语法规范或树结构错误:'...

很抱歉因为我承认我曾经在这些问题上提出过一个问题,但是我承认这个问题很难解决。此外,我正在处理的项目需要解决此问题。

对不起,谢谢你。

0 个答案:

没有答案