如何解决如何使用递归使ANTLR消耗所有可用元素?
这是我的语法:
[enter code here][1]
这是它完全解析的输入:
grammar test;
text: foo EOF;
foo:
'X'
|
'('
foo
')'
|
foo
'!'
|
foo
tail
;
tail: (' ' foo)+;
但是,正如我之前解释的here一样,输出树包含太多的X (X! (X)! (X X X)!!!) X
元素。可以解决这个问题吗?
解决方法
感谢@ kaby76,找到了解决方案:
foo:
'X' tail?
|
'(' foo ')' tail?
|
foo '!' tail?
;
tail:
(
' ' 'X'
|
' ' '(' foo ')'
|
' ' foo '!'
)+
;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。