问题标签 [reduce-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.
compiler-construction - 减少/减少与无类型变量和函数调用的冲突
我想为动态类型语言创建一个解析器。
在我的野牛文件中,我有一个规则,runtimetyped
它是变量名或函数调用。
我还想在编译时做一些基本的类型检查。fe我不想允许这样的事情
在源代码中,我想创建一个编译时错误。
但是像
应该会产生运行时错误。
我的方法是在语法中有不同的表达方式:
并且其中任何一个expressions
都是由terms
,等建立的factors
。
afactor
也可以总是runtimetyped
导致reduce/reduce
错误的 a。
我用它运行它bison -v parser.y
。
谁能给我一个关于如何解决这个冲突和/或究竟是什么产生冲突的提示。
提前致谢。
java - 当我在 Reducer 中读取它们时,在 Mapper 中发送的文本/字符串值是错误的
我在 Mapper 中发送了一些数据,当我尝试在 Reducer 中读取它们时,它们发生了一些变化。在简历中,我使用 set 函数填充数据,然后使用 get 函数在 reducer 中读取它们。我不明白为什么如果我执行 println 数据会有所不同。
我发送的数据在一个名为“ValorFechaHora”的类中,有 3 个变量 Medicion、Fecha 和 Hora:
在这里你可以看到我的映射器:
这是我的减速器:
好吧,我不明白为什么当我在做 bucle 时,reducer中的变量 val.getFecha().toString()与映射器中的变量 outKey.getFecha().toString 不同
泰亚
parsing - Irony Shift 减少问题
我一直在试图弄清楚如何解决我遇到的一些转变减少冲突。我环顾四周,发现了修复它的不同主题,但似乎无论我做什么,我似乎都找不到解决这些问题的方法。
我正在尝试为流行的脚本引擎 Angel Script 编写语法类,我从解析器类中获得了 BNF 语法。您可以在此处找到语言参考 http://www.angelcode.com/angelscript/sdk/docs/manual/doc_script.html
在我的课堂上,我为每条规则添加了一条关于我试图复制的 BNF 语法的评论。目前我实际上并没有使用我定义的关键字。一旦我可以让它在没有冲突的情况下工作,我会回去尝试清理它。这是我的课 http://pastebin.com/FydCTqmU
您应该能够只创建一个 Dll 并使用语法资源管理器运行它,您将看到所有错误。似乎大多数错误都来自同一个问题,所以我想也许一旦我能解决这个问题,它几乎可以解决所有问题。
编辑:这是主要问题。那是主要的脚本状态,我知道它被分解成许多不同的规则,但我这样做了,所以我可以尝试解决我仍然没有运气的问题。
编辑:我尝试压缩我的代码以希望通过reduce-reduce错误,但它似乎保持完全相同,只是看起来更加混乱。如果有人能帮我把它弄好,我会很乐意通过贝宝寄给他们几百美元。我正要放弃它已经一个多星期了。我的电子邮件是 Anth0ny229@live.com。
状态 S0(不足)输入上的减少-减少冲突: const identifier void int8 int16 int32 int64 int uint8 uint16 uint32 uint64 uint float double bool ? auto :: 移位项目:
减少项目:
过渡:
shift-reduce-conflict - 具有讽刺意味的归约问题
我已经尝试解决这个问题将近 2 周了。起初是 shift-reduce 错误,现在是 reduce-reduce 问题。我已经尝试了很多方法,现在我已经到了需要帮助的地步。我已经编写了多种语言,并且几乎在 10 年前就开始了,这是我第一次真正发帖寻求帮助。
我正在尝试为流行的脚本引擎 Angel Script 编写语法类,我从解析器类中获得了 BNF 语法。您可以在此处找到语言参考http://www.angelcode.com/angelscript/sdk/docs/manual/doc_script.html
在我的课堂上,我为每条规则添加了一条关于我试图复制的 BNF 语法的评论。目前我实际上并没有使用我定义的关键字。一旦我可以让它在没有冲突的情况下工作,我会回去尝试清理它。这是我的课http://pastebin.com/FydCTqmU
您应该能够只创建一个 Dll 并使用语法资源管理器运行它,您将看到所有错误。似乎大多数错误都来自同一个问题,所以我想也许一旦我能解决这个问题,它几乎可以解决所有问题。我编写了一个应用程序来帮助我将语法拆分为更不具体的部分,但我认为这导致我遇到了更多的 reduce-reduce 问题。
我尝试压缩我的代码以希望通过reduce-reduce错误,但它似乎保持完全相同,只是看起来更加混乱。如果有人能帮我把它弄好,我会很乐意通过贝宝寄给他们几百美元。我正要放弃它已经超过 2 周的时间了。我的电子邮件是 Anth0ny229@live.com。
我已经从 shift-reduce 到 reduce-reduce 错误。似乎无论我做什么,我都会遇到问题。我只是无法绕过它,我真的需要帮助。正如我所提到的,我会更乐意向某人支付帮助,只需给我发电子邮件即可。我计划制作一个像 babelua 这样的 Visual Studio 扩展,这样人们就可以使用 Visual Studio 编写 Angel Script 脚本,并希望添加调试支持。它将是免费的,因为我认为这将是一个很好的补充。因此,如果有人能以任何方式提供帮助,只要它最终工作,我会更乐意确保他们得到回报。谢谢你。
状态 S0(不足)输入上的减少-减少冲突: const identifier void int8 int16 int32 int64 int uint8 uint16 uint32 uint64 uint float double bool ? auto :: 移位项目:
减少项目:
过渡:
grammar - 减少/减少冲突
我正在编写一个应该识别以下单词的语法(YACC - “LALR”),例如:
我写了以下语法:
所以,我的问题是规则(6)和(10)之间的减少/减少冲突。有没有人知道如何解决这个问题?
以前,我问过以下问题,认为这是对我真正问题的简化......但事实并非如此。
作为记录,我之前的问题是关于识别这些单词的语法:
所以,我写了以下语法:
但是,从逻辑上讲,我对规则有减少/减少冲突:
和
这个问题的正确语法是:
parsing - 解决减少/减少冲突
我们有一个 CFG 语法,我们构造了 LR(1) Parsing Table。我们看到解析表上的一个单元格有一个减少 - 减少冲突。是否可以通过在每一步使用更多的前瞻输入符号来解决这个冲突?我问这个是因为我认为通过增加前瞻符号,我们可以(并不总是)只解决移位 - 减少冲突。我的意思是减少 - 减少冲突中的额外前瞻对我们没有帮助。我对吗 ?
javascript - Javascript函数声明野牛语法减少/减少错误
我正在实现一个 javascript 解释器,我在函数声明和函数表达式的语法中遇到了野牛减少/减少冲突的问题。我对野牛的经验并不丰富,我可以使用一些帮助来了解该怎么做。我粘贴了一个说明问题的野牛输入文件的子集:
compiler-construction - 野牛减少/减少语法冲突
我正在用 bison 构建语法,但我有 ar/r 冲突(我知道它在哪里),但我不知道如何解决它。我将不胜感激任何可能的帮助。
我的代码中包含冲突的部分是:
我制作了一个输出文件,在其中我可以看到所有的冲突。
包含冲突的文件部分是:
我真的已经尝试了一切,但我无法消除冲突......欢迎任何想法或建议!
非常感谢!!
bison - 减少/减少冲突的野牛问题
所以我是 Bison 的新手,我正在尝试制作一个简单的计算器。当我执行 bison -d 命令时,它说有 7 个减少/减少冲突,我不确定为什么会这样,我知道这是因为我的语法中有一些错误的逻辑,我只是找不到它。所以这是 .y 文件的代码:
这也是我为此目的制作的 lex 文件:
任何建议将不胜感激。
bison - 野牛 - 无法解决减少减少冲突
我尝试了一些在这里找到的解决方案,但没有奏效(可能是我错误地应用了它们)。这是我的一些语法:
而COLON
, PROGRAM
, SEMICOLON
,END
是用%token
(并且实际上只是单词)定义的。我收到以下警告:
我尝试从其他线程应用解决方案,但无法编译,我了解导致它的原因,但我不知道如何解决这个问题。
显然,优先级在这里无济于事,我需要更改语法,但是如何在不分解所有规则的情况下正确更改它(我的规则比这里显示的要多得多-http: //pastebin.com /f308C4jN )?
**PS:我没有使用 YACC
编辑:这是有冲突的状态:
以下是规则 6 和 4: