问题标签 [bison]
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.
antlr - 与 Flex/Bison 相比,使用 ANTLR 有什么缺点?
几年前,我在本科学习期间曾在 Flex, Bison 工作过。然而,我现在已经不记得太多了。最近,我听说了 ANTLR。
- 你会建议我学习 ANTLR 还是更好地复习 Flex/Bison?
- ANTLR 的功能是否比 Flex/Bison 多/少?
regex - 了解正则表达式是否适合构建语言?
我正在阅读O'Reilly 的Flex & Bison,想知道事先学习正则表达式是否有助于开发编程语言?
yacc - 我是否被迫使用 %glr-parser?
我一直在避免移位/减少错误。现在终于我想我遇到了我的对手。
问题是 int[] 被定义为
而 a[0] 被定义为
Var 和 Type 都被定义为 VAR ,它是任何有效的变量[a-zA-Z][a-zA-Z0-9_]
。除了添加一个虚拟令牌(例如**Decl** Type OptSquareBrackets
代替)之外,还有没有办法写这个没有冲突?从这条规则中,我得到 1 个 shift/reduce 和 1 个 reduce/reduce 警告。
yacc - 为什么我在“)”而不是“(”上有轮班减少/冲突?
我有类似的语法
和
和 (var)
我的规则是这样的
问题是它似乎无法判断 ) 是否属于%(CommaLoop)
或% (val)
但它抱怨 ) 而不是 (。到底是什么?它不应该抱怨(
吗?我应该如何修复错误?我认为制作%(
令牌是一个很好的解决方案,但我想$(
在执行此操作之前确定为什么不是错误。
yacc - 告诉 Bison/Yacc 改变而不是减少来解决冲突
我有一种情况,我理解有一个带有移位/减少冲突的规则。我希望规则永远不会减少,直到可能的最后一刻(行尾)。所以我想说总是换班。我该怎么做呢?
yacc - 如何在 yacc 中将 yylval 与字符串一起使用
我想传递一个令牌的实际字符串。如果我有一个名为 ID 的令牌,那么我希望我的 yacc 文件真正知道调用了什么 ID。我必须使用 yylval 将字符串从 flex 文件传递给 yacc 文件。我怎么做?
parsing - yylval 和工会
yacc 文件中 union 的目的是什么?它是否与 flex 文件中的 yylval 直接相关?如果你不使用yylval,那么你不需要使用union?
parsing - lex/yacc 和解析器/扫描器
lex 和 yacc 应该一起使用。
哪个是扫描仪,哪个是解析器?
哪个创建扫描仪,哪个创建解析器?
c - 如何创建结构数组的数组
我正在尝试使用结构数组的数组创建符号表。
现在我只有一个结构数组,它是这样创建的:
它有效,但我想做这样的事情:
我该怎么做?我想做的事情有意义吗?
macos - 在 Mac OS X 10.6 上编译和执行莎士比亚编程语言翻译器 spl2c 会导致警告/错误
我想尝试使用莎士比亚编程语言,所以我从这里下载了它并使用cd spl-1.2.1
Make
.
编译spl2c
执行时有几个警告:
然后,当它尝试编译所有示例时,一切都变得混乱:
有人能指出我解决这个问题的正确方向吗?我最初的项目将学习 spl,而不是倾向于调试编译器(我实际上最终想编写自己的编译器,但我现在更愿意坚持我的初始项目)。
我在跑步OS X 10.6.2
,,,,gcc version 4.2.1 (Apple Inc. build 5646) (dot 1)
和flex 2.5.35
。bison (GNU Bison) 2.3
编辑:对于不需要 goto 的简单程序(例如 hello.spl),您可以通过删除除第一个 ACT I/SCENE I 之外的所有 ACT/SCENE 行来解决此问题。