请求协助排查Lemon解析器语法中的歧义冲突问题
Lemon解析器语法歧义问题定位求助
- 问题:遇到Lemon解析器语法歧义问题,单独运行FileText以上的语法规则时无冲突,推测问题出在FileText相关规则中,语法树结构符合预期。以下是相关信息,请求帮忙定位问题根源:
输入示例
lemon AND (#Chapter1.Title : "BNF grammar" AND #Chapter10.Title : ("BNF notion" OR "EBNF notion"))
解析冲突错误信息
QUOT shift 17 QUOT reduce 14 ** Parsing conflict ** STR shift-reduce 20 subval ::= STR STR reduce 14 ** Parsing conflict ** LPAR shift 7 LPAR reduce 14 ** Parsing conflict ** WS shift-reduce 10 space ::= WS WS reduce 14 ** Parsing conflict ** op shift 9 space shift 12 text shift-reduce 15 filetext::= filetext text subvalue shift-reduce 15 filetext::= filetext text /*because subval==text {default} reduce 14 location ::= location COLON filetext
完整语法规则
%left::=AND. %left::=OR. book::= expr. expr::= expr term. expr::= expr op term. expr::= term. term::= value. term::= QUOT STR QUOT. value::= atom. value::= LPAR expr RPAR. atom::= STR. atom::= file. op::= space AND space. op::= space OR space. space::= WS. space::= space WS. file::= location COLON filetext. location::= SHARP STR PERIOD STR. filetext::= filetext text. filetext::= filetext op text. filetext::= text. text::= subvalue. text::= QUOT STR QUOT. subvalue::= subatom. subvalue::= LPAR filetext RPAR. subatom::= STR.
语法推导树形图
配有语法推导树形图,清晰展示了输入示例对应的预期语法结构。
内容的提问来源于stack exchange,提问作者Pete Darrow
相关产品推荐
相关产品推荐

