问题标签 [shift-reduce-conflict]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
parsing - 转移/减少野牛中的冲突
我是新手Bison
,我遇到了移位/减少冲突的问题......我正在尝试从文件加载到array data[]
:
这是我的野牛代码的一部分:
我收到此错误:
知道我哪里出错了吗?
python - 我的语法歧义在哪里?
我有以下模棱两可的语法,其中大写字母规则适用于简单的词汇标记:
我收到 8 个 shift/reduce 错误(使用 Python 2.7 和 PLY 时)。
歧义是我如何定义“一个或多个”的结果,例如。block : expression | expression block
?
parsing - 如何解决我的 PLY 语法中的这种减少班次冲突?
我正在为编程语言编写语法,但我首先遇到了移位/减少问题。问题可以在状态中找到:
在进一步解释之前,我想澄清一下:
这是因为程序无法确定我是在调用函数还是将 ID 用作值(例如常量或变量)而导致移位/减少?
继续,有可能解决这个问题吗?我的语言目前不使用行分隔符(例如 C 中的“;”或 Python 中的“\n”)。解析器是 LALR(1)。
在函数调用或带有行分隔符的变量之间进行破译的最有效(向语法中添加最少规则)的方法是什么?
编辑:这是该状态的前瞻。
parsing - LALR(1) 语法如何区分变量和函数调用?
给定以下输入:
和
LALR(1) 语法有什么方法可以避免移位/减少冲突?转移/减少冲突决定减少y
或继续减少(
。
(这是假设变量名可以是任何字母数字字符集,而函数调用是括号后的任何字母数字字符集。)
parsing - 为什么我的三元运算符会导致 shift-reduce 冲突?
以下是我的语法:
在这种状态下,我收到一个 shift-reduce 错误:
我相信冲突在于
可以解释为true ? 1 : (false ? 3 : 2)
或(true ? 1 : false) ? 3 : 2
。
我已将 和 的优先级设置+
为-
左关联和比?
(我设置为右关联)更高的级别。
我究竟做错了什么?
parsing - 用于字符串连接的 LALR 语法
我一直在尝试解析连接的字符串,以便表达式也可以连接起来形成字符串。那是,
上面应该正确解析。问题是这+
会导致减少班次的冲突。我一直在使用以下语法;
我在尝试找到+
不会导致移位减少冲突的语法方面没有任何成功。我希望有一种方法可以制作这种语法 LALR,我非常感谢在尝试找到它时提供的一些帮助。
cygwin - 移位/减少与 if ... else 语句的冲突
我正在尝试制作一个关于类似 java 的语言的解析器,但是使用 else 语句时,会出现移位/减少冲突。我尝试了野牛bison_file.y --report=state
,关于冲突的结果是:
状态 62 31 语句: if_statement 。65 if_else_statement: if_statement 。ELSE statement ELSE shift, and go to state 84 ELSE [reduce using rule 31 (statement)] $default reduce using rule 31 (statement)
我想不出避免冲突的方法。有什么好主意吗?在这里,我提交完整的代码:
parsing - 我正在尝试为 mini java 构建一个解析器,我在表达式语法部分中遇到了 shift/reduce 冲突。我无法解决这个冲突
这是 y.ouput 文件的一部分
状态 65
15 表达式:表达式。“&&“ 表达
16 | 表达 。“<”表达式
17 | 表达 。“+”表达式
18 | 表达 。“-“ 表达
19 | 表达 。“*“ 表达
20 | 表达 。“[“ 表达 ”]”
21 | 表达 。“。” “长度”
22 | 表达 。“。” 标识符“(”表达式“,”表达式“)”
25 | “!” 表达 。
这就是设置运算符优先级的方式
grammar - 明确语法上的 yacc shift/reduce 冲突
我的一段语法代码让我发疯。
我必须编写一个允许编写具有多个输入的函数的语法
例如
问题在于它是这样的赋值语句
ID = 表达式。
在下面的引用中,您可以看到 yacc 产生的输出。
也许有人可以帮助我消除这种语法的歧义
parsing - 如何解决 SHIFT/REDUCE 冲突 - 在解析器生成器中
我需要帮助来解决这个问题并解释将来如何处理这种 SHIFT/REDUCE CONFLICTS。
我的杯子文件中的几个州之间存在一些冲突。
语法看起来像这样:
我在“(”[ActPars]“)”状态之间存在冲突。
我不想粘贴整个 700 行的杯子文件。我会给你相关的状态和错误输出。
这是第 1 行的代码。)
这是针对第 2 行的。)
错误输出如下所示:
错误:*遇到的冲突比预期的多——解析器生成中止