shift-reduce-conflict

    3热度

    4回答

    %token <token> PLUS MINUS INT %left PLUS MINUS 工作的: exp : exp PLUS exp; exp : exp MINUS exp; exp : INT; 这具有2 SHIFT /减少冲突: exp : exp binaryop exp; exp : INT; binaryop: PLUS | MINUS ; 为什么?

    2热度

    2回答

    我正在设计一个非常简单的语法,我使用一元减操作数。但是,我得到了一个转变/减少冲突。在Bison手册和我看到的其他地方,它说我应该定义一个新的标记并给它比二进制减号操作数更高的优先级,然后在规则中使用“%prec TOKEN”。 我已经这样做了,但我仍然收到警告。为什么? 我使用野牛(GNU Bison)2.4.1。语法如下所示: %{ #include <string> extern "C"

    0热度

    1回答

    我试图设置我的解析器,通过识别没有逗号来查找某个参数的结尾,所以我基本上它设置为找到这样 参数的参数:end_parameter逗号 (该数据类型仅仅是一个列表,所以没有什么表示它结束 - 只是它有ISN时停止” t逗号分隔项目) 而end_parameter定义如下,并做它应该的。解析器通过识别右括号作为结束符与其他数据类型一起工作,但是当我设置由于缺少逗号而结束的类型时,我得到了移位/减少错误

    0热度

    1回答

    我正在使用OOP语言的大多数功能开展野牛解析器,现在野牛抱怨说有一些移位/减少冲突。我得到了: conflicts: 21 shift/reduce 问题是,它不告诉我他们在哪里。有谁知道如何找到那里的冲突? 在此先感谢。

    6热度

    1回答

    我正在使用Jison(Bison)创建简单的标记语言。我显然对此很陌生,但轻微的变化非常有效。我只是不明白S/R冲突的来源。 两个词法分析器操作(具有不同的开始条件)返回'文本'似乎并不重要,我喜欢这样,因为它似乎允许语法具有较少的规则,并且因为错误消息给用户是一致的。我已经试过使'文本'规则不受上下文影响,我也试着给每个令牌一个不同的名字,但是当它们在一起时,它似乎对S/R冲突没有任何影响。 解

    4热度

    2回答

    的语法如下: 1. program -> declaration-list 2. declaration-list -> declaration-list declaration | declaration 3. declaration -> var-declaration | fun-declaration 4. var-declaration -> type-specifier ID ;

    17热度

    3回答

    如何删除给定语法的bison的shift-reduce冲突? selection-stmt -> if (expression) statement | if (expression) statement else statement 提供修改过的语法的解决方案将受到高度赞赏。

    3热度

    2回答

    当Yacc/Bison发生移位/减少冲突时,是否可以强制冲突根据需要进行精确解算?换句话说:是否有可能明确强迫它优先考虑转变或减少? 对于我已阅读的内容,如果您对默认分辨率感到满意,您可以告诉生成器为not complain about it。我真的不喜欢这个,因为它混淆了你的理性选择。 另一种选择是重写语法来解决问题。我不知道这是否永远是可能的,而且这往往会让人难以理解。 最后,我读过优先规则可

    0热度

    1回答

    我在yacc编译期间遇到了冲突问题。 错误以下消息:下面 24: shift/reduce conflict (shift 66, reduce 99) on '/' state 24 arithmetic_leaf : absolute_path . (99) absolute_path : absolute_path . '/' relative_path (102) 代码: ari

    0热度

    1回答

    冲突。当我试图编译使用柠檬,我遇到冲突这个简单的解析器,但我不能看到哪个规则是错误的。如果我删除二进制表达式或callexpression,则冲突消失。 %left Add. program ::= expression. expression ::= binaryexpression. expression ::= callexpression. binaryexpression