5

当我使用 C# 工作时,我发现gppggplex解析器/词法分析器生成器非常适合我的需求。我想知道 D 编程语言是否有类似的东西(即,一个实用程序,给定 BNF 或 EBNF 中的语法,输出 D 代码,将该语言 lexes/parses 为抽象语法树)。

我找到的最接近的是Goldie,但我很难理解它,以至于我无法启动和运行任何东西。

4

2 回答 2

2

我发现 Goldie 对于上下文不敏感的语法非常棒,你确定吗?此外,http://www.wikiservice.at/d/wiki.cgi? GrammarParsers 列出了一些,不知道哪些仍在开发中。如果 ANTLR-D 仍然有效,它可能是最佳选择之一。

于 2011-07-07T07:38:23.590 回答
1

Goldie 可能是您最好的选择,但也有可以发出 D 的 ragel。这并不完全符合您的要求(可组合状态机),尽管它在许多情况下可能就足够了,而且非常好。

主干版本可以使用未记录的 -E 开关编译为 D2 代码,我不确定这有多成熟。

http://www.complang.org/ragel/

于 2011-07-16T09:44:56.503 回答