是否有用于 Delphi 的解析器代码或解析器组件或接受 BNF(巴科斯范式)表示法作为输入并生成 Delphi(或 pascal)代码来进行解析的程序?
这样做的原因是我将尝试完美解析不同版本的 the GEDCOM standard 后的数据集。 (用于谱系),并且需要在达到 token 时处理从一个状态到另一个状态的文件。我更喜欢一个自动化程序来完成设置基本 pascal 代码的繁重工作,为我进行状态到状态处理。
否则,我将不得不自己手动构建状态结构。
我确实看到了以下问题(TinyPG 看起来不错,但我需要 Delphi 代码): Parser-generator that outputs C# given a BNF grammar?
如果没有这样的野兽,是否有任何其他工具可以使这项任务变得更容易?
最佳答案
我向您推荐GOLD解析系统。 GOLD 语法基于 Backus-Naur 形式和正则表达式。
资源
引擎
特别列出了德尔福发动机 here .
这个one Rob van den Brink 的 Object Pascal 可能会引起兴趣。
引用:
Rob van den Brink updated his engine for the Object Pascal Programming Language. His implementation uses a program template to create a full-functioning program. This approach embeds the parse tables directly in the source code. As a result, you do not need to load a Compiled Grammar Table file. The download contains a program template as well as several examples.
使用 GOLD 的示例项目
GOLD功能强大,用作dcu2pas的解析引擎,一个 Delphi 编译单元(dcu 文件)反编译器,托管 here (bitbucket.org)。请注意,它是写在 d 中的。 .
关于delphi - 生成将解析具有给定 BNF 格式的文件的 Delphi 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9405722/