我知道ANTLR4支持直接左递归。我的一条规则(由观众编辑为可测试性)最初类似于以下
grammar grammar1;
block
: block 'end'
| 'end'
;
这很简单,工作正常。后来我的工作涉及将参数传递给一些规则,因此我跟随了以下内容(简化了观众的可测试性):
grammar grammar2;
block[int a]
: block[$a] 'end'
| 'end'
;
上述语法可能不是很有用,但它确实表达了我所面临的问题。如果可以使用antlr4命令运行grammar1;为什么不能语法2?
这是ANTLR4中的错误还是我做错了什么?也许我以错误的方式传递参数?我经历'找不到语法规范或树结构错误:'...
很抱歉因为我承认我曾经在这些问题上提出过一个问题,但是我承认这个问题很难解决。此外,我正在处理的项目需要解决此问题。
对不起,谢谢你。