shift-reduce-conflict

    1热度

    2回答

    这里冲突的例子是C编译器的一部分: Exp : INTNUMBER { $$ = $1; } | lvalue { $$ = $1; } | REALNUMBER { $$ = $1; } | CHARVALUE { $$ = $1; } | TRUE { $$ = $1; }

    0热度

    1回答

    我正在尝试为JFlex和Cup编写javascript-ish语言的解析器,但是我遇到了致命移位/减少问题以及减少/减少问题的一些问题。 我已经彻底搜索并发现了大量的例子,但我无法将这些推断到我的语法。我迄今为止的理解是,这些问题是因为解析器无法确定它应该采用哪种方式,因为它无法区分。 我的语法如下: 以INPUT开头; INPUT::= PROGRAM; PROGRAM::= FUNCTIO

    0热度

    1回答

    我想为minipython的一个版本(使用后缀/前缀增量和减量运算符)编写sablecc的规范文件,有些产品自然需要使用标识符,但是我在解析期间得到这些冲突: shift/reduce conflict in state [stack: TPrint TIdentifier *] on TPlusPlus in { [ PMultiplication = TIdentifier * ]

    0热度

    1回答

    我打算用野牛解析一些脚本语言移减少冲突,在这种语言,我可以写类似下面的代码: a = input() b = a + 1 function myfunc a = input() b = a + 1 end function 我发现,该块 a = input() b = a + 1 其中进出函数定义的同时出现可以通过相同的规则stmts被减小,所以我写如下代码 %

    2热度

    1回答

    我是新来的野牛,我试图做一个文法解析表达式。 我现在面临着一种转变/减少困惑,我无法解决。 语法如下: %left "[" "(" %left "+" %% expression_list : expression_list "," expression | expression | /*empty*/ ; expression :

    0热度

    2回答

    这里是简化yaac文件: %token CONTEXT_ // the corresponding string is "context" %token CONTEXTREF_ //"contextref" %token IS_ //"is" %token ID_L //"id_l" %token ID_L1 //"id_l1" %token LIB_ %start desi

    1热度

    1回答

    我已经写了这个YACC程序来验证字符串w.r.t语法{ckanbm: n ≠ m ∧ k,m,n > 0}。 NL代表换行符。令牌通过已经在那里的lex传递。但是,这个错误是给出的。我认为,产生式规则都OK,但我收到此消息: [[email protected] wali1]$ yacc -d assign1.y yacc: 2 shift/reduce conflicts, 1 reduce/

    0热度

    2回答

    我使用PLY解析this语法。我为链接规范中使用的EBNF实现了一个metagrammar,但PLY报告了多个shift/reduce冲突。 语法: Rule 0 S' -> grammar Rule 1 grammar -> prod_list Rule 2 grammar -> empty Rule 3 prod_list -> prod Rule 4 prod_list -

    -2热度

    1回答

    我写在野牛解析器对于具有以下构造,以及其他语言: 自调度:identifierarguments] 调度:expression。 identifierarguments] 字符串切片:expression [expression,expression] - 与Python类似。 arguments是逗号分隔的表达式列表,它也可以是空的。以上所有内容都是表达自己的。 我的问题是,我不知道如何解析[m

    0热度

    1回答

    我想制作一个编译器,现在我正在尝试制作解析器。 我得到这个状态的警告: 国家89 62 expr: '(' expr . ')' 66 | expr . '+' expr 67 | expr . '-' expr 68 | expr . '*' expr 69 | expr . '/' expr 70 | expr . '%' expr