繁体   English   中英

如何修改语法以消除ANTLR4中的左递归错误?

[英]How to modify grammar to remove left recursive error in ANTLR4?

我正在尝试解析一种语言。 遵循ANTLR4解析器规则是直接从语言规范中复制的:

physical_value 
 : raw_value DIV factor MUL factor PLUS offset 
 ;

raw_value
 : (physical_value MINUS offset) DIV factor  
 ;

但是antlr报告一个错误:以下几套规则是相互左递归的,我不知道该如何修改语法,希望有人能帮助我。 谢谢。

您无法从发布的规则中消除左递归,因为它匹配的唯一字符串是无限序列。

  • physical_value 始终raw_value
  • raw_value 始终physical_value开头

...然后重复

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM