8

是否有用于 Delphi 的解析器代码或解析器组件或将接受 BNF(Backus-Naur 形式)表示法作为输入并生成 Delphi(或 pascal)代码来进行解析的程序?

这样做的原因是我将尝试按照各种版本的 GEDCOM 标准(用于家谱)完美解析数据集,并且需要在到达令牌时从一个状态到另一个状态处理文件。我更喜欢自动化程序来完成设置基本帕斯卡代码的繁重工作,以便为我进行状态到状态处理。

否则,我将不得不自己手动构建状态结构。

我确实看到了以下问题(TinyPG看起来不错,但我需要 Delphi 代码): Parser-generator that output C# given a BNF grammar?

如果没有这样的野兽,是否有任何其他可用的工具可以使这项任务变得更容易?

4

1 回答 1

6

我向您推荐GOLD解析系统。GOLD 语法基于 Backus-Naur 形式和正则表达式。

资源

引擎

此处特别列出了 Delphi 的引擎。

Rob van den BrinkObject Pascal 设计的这个可能很有趣。

引用:

Rob van den Brink 更新了他的 Object Pascal 编程语言引擎。他的实现使用程序模板来创建功能齐全的程序。这种方法将解析表直接嵌入到源代码中。因此,您不需要加载编译语法表文件。下载包含一个程序模板以及几个示例。

使用 GOLD 的示例项目

GOLD 功能强大,它用作dcu2pas的解析引擎,这是一个托管在此处(bitbucket.org)的 Delphi 编译单元(dcu 文件)反编译器。请注意,它是用编写的。

于 2012-02-23T05:28:43.047 回答