delphi - 生成将解析具有给定 BNF 格式的文件的 Delphi 代码

标签 delphi parsing code-generation bnf gedcom

是否有用于 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)。请注意,它是写在 中的。 .

关于delphi - 生成将解析具有给定 BNF 格式的文件的 Delphi 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9405722/

相关文章:

java - 如何修改 IntelliJ getter 和 setter 代码生成?

java - 使用递归语法的自顶向下解析

c# - 如何将 MS Word 文档中的文本解析为字符串

c# - 如何在 C# 中逐步解析表达式(最好是访问者模式)

java - 自动生成用户界面

delphi - 在ADOQuery中更改当前记录之前会触发哪个事件,以及如何不更改当前记录?

delphi - 如何使用 INNO 安装程序检测现有的 IIS 安装?

delphi - 全屏启动时应用程序停留在任务栏后面

XML 注释和 Delphi XMl 数据绑定(bind)

c# - EF 代码生成 : How to get a System enum to work as an EdmEnumType?