首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何摆脱reduce/reduce,reduce/shift错误?

如何摆脱reduce/reduce,reduce/shift错误?
EN

Stack Overflow用户
提问于 2015-07-05 05:38:23
回答 1查看 118关注 0票数 0

我的语法不断遇到reduce/reduce和reduce/shift问题,但我不确定为什么或如何修复它。

这是我所拥有的

代码语言:javascript
复制
block ::=   
    block_statement
|   block_statement block
;
block_statement ::=
    type variable_declarators SEMICOLON
|   statement
;
statement ::=   sub_statement
|   IF LPAREN boolexp RPAREN statement FI
|   IF LPAREN boolexp RPAREN statement ELSE statement FI
|   WHILE LPAREN boolexp RPAREN statement ELIHW
|   FOR LPAREN assignment SEMICOLON boolexp SEMICOLON
        statement_expression RPAREN statement ROF
;
sub_statement ::=
    statement_expression SEMICOLON
|   RETURN Exp SEMICOLON
|   block
;
statement_expression ::=
    assignment
|   IDENTIFIER LPAREN argument_list RPAREN
|   IDENTIFIER PLUSPLUS
|   IDENTIFIER MINUSMINUS
;
EN

回答 1

Stack Overflow用户

发布于 2015-07-06 07:56:55

在该语法中,blockblock_statementstatementsub_statementblock,您可以在不解决任何问题的情况下绕过那个特定的桑树丛。

所以你自然会有冲突,因为你的语法是模棱两可的。

也许您的意思是让sub_statement包含某种分隔的块?(BEGIN block NIGEB?)否则,我建议从sub_statement替代列表中删除block

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31225309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档