问题标签 [compiler-compiler]

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.

0 投票
1 回答
53 浏览

java - 奇怪的错误 Javacc 终端

这是错误:

我没有在哪里说过我想使用 u0440 等作为我的代码语法。我用过实际的词

所有帮助表示赞赏。

0 投票
1 回答
88 浏览

actionscript-3 - ActionScript 的编译器编译器?

我有一些用自定义脚本语言编写的文件,我希望能够在 ActionScript 中读取和执行这些文件。AS 是否有类似于 lex/yacc 或 ANTLR 的编译器生成器?

0 投票
0 回答
48 浏览

algorithm - 是否有用于生成递归下降解析器的编译器编译器的算法?

我已经编写了一个 LR(1) 编译器编译器,对我来说,表生成非常简单。然而今天我发现自己想知道是否有一个通用的算法来生成一个像样的递归解析器。我知道有诸如 javacc 之类的工具可以做到这一点,但我对这一代的一般步骤更感兴趣。提前致谢。

0 投票
2 回答
234 浏览

c# - C# 中是否有任何高级编译器-编译器词法分析器/解析器?

我想知道是否有任何用 C# 或 Not 编写的编译器编译器库?

我知道 Antlr 和 JavaCC,但这些库是用 Java 编写的

是否有像 antlr 这样的库,但在 C# 中(或在 C# 中移植)和开源与否?

有人可以介绍一下吗?

0 投票
3 回答
241 浏览

c - 编程语言语法的 Bison Shift/Reduce Conflict

我正在编写一个编程语言解析器,但我陷入了这种 Shift/Reduce Conflict。

这是通过使用 -v 运行野牛获得的 parser.output 文件中的冲突状态

当我尝试实施呼叫规则时发生冲突,它似乎与正常的 ident 规则冲突。

这是语法的某些部分,(为简单起见删除了操作,但不需要它们。我也不确定定义规则的顺序是否重要,如果我错了,请纠正我)

(大写字母是记号)

ident 规则很简单

Args,通过调用使用。

调用函数

表达式的 expr

问题:为什么语法有移位/减少冲突,你如何解决它?我见过类似的风格解析器没有冲突,这真的很奇怪。

如果您需要查看完整的复制语法,请查看 hastebin https://hasteb.in/zozifopi.shell

如果您需要有关其他任何内容的更多详细信息,请在评论中告诉我,我将相应地编辑问题。

0 投票
0 回答
128 浏览

c# - 如何最小化具有多个接受节点的 DFA?

我已经实现了一个简单的 Scanner-Generator,它在所有情况下都能正常运行。

这不是代码问题,而是关于如何优化 DFA 的问题。使用 Hopcroft 算法最小化一个接受节点和接受相同规则的接受节点效果很好,但是该算法没有最小化具有几个不同接受节点的 DFA。例如,如果您创建一个接受两个“if”、“[az][a-z0-9]*”的 DFA,然后运行 ​​Hopcroft 算法,则唯一的 Accept Node 会消失。当然,每个节点从一开始就被分成不同的组。

我想知道如何最小化这种类型的 DFA。即使没有办法解决这些最小化问题,我也希望你回答。

我的代码:https ://github.com/rollrat/compiler-compiler

0 投票
1 回答
103 浏览

java - 具有理解能力的 JavaCC 语法问题

我开始学习 Javacc 并试图解决这个问题,但我似乎无法完全理解我是否做对了。

所以我正在做的是为自定义语言制作解析器并使用 Javacc 生成 Java 解析器源代码。

我认为我这样做是正确的,但对这是否正确有很多疑问。

这是我目前拥有的 .jj 文件。