生成将使用给定BNF格式解析文件的Delphi代码

lke*_*ler 8 delphi parsing code-generation bnf gedcom

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

这样做的原因是我将尝试在GEDCOM标准的各种版本(用于家谱)之后完美地解析数据集,并且需要在达到令牌时处理从一个州到另一个州的文件.我更喜欢一个自动程序来完成设置基本pascal代码的粗略工作,为我做状态处理.

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

我确实看到了以下问题(并且TinyPG看起来很好,但我需要Delphi代码): 解析器生成器,在给定BNF语法的情况下输出C#?

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

men*_*raz 6

我建议你使用GOLD解析系统.GOLD语法基于Backus-Naur形式和正则表达式.

资源

引擎

这里特别列出了Delphi的引擎.

一个对Object Pascal的由罗布凌科可能会感兴趣.

引用:

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

使用GOLD的示例项目

GOLD很强大,它被用作dcu2pas的解析引擎,这是一个Delphi Compiled Unit(dcu文件)反编译器,它在这里托管(bitbucket.org).请注意,它是用写的.

  • @Cosmin,我已经为GOLD修改了一个更新的Delphi实现,并且可以在调整到V5时发布它. (3认同)