如何在Delphi中解析复杂的文件格式?(不是CSV,XML等)

Dai*_*tsu 5 delphi format parsing file tokenize

自从我不得不解析任何比CSV或XML更难的文件以来,已经有几年了,所以我没有实践.我被赋予了在Delphi应用程序中解析名为NeXus的文件格式的任务.

问题是我只是不知道从哪里开始,我是否使用了标记器,正则表达式等?也许甚至教程可能就是我现在所需要的.

Mas*_*ler 7

看看GOLD Parser.它是一个元解析系统,允许您为语言/文件格式定义正式语法.它创建一个解析规则文件,您可以将其与输入文件一起提供给标记生成器,并在内存中创建语法树.

网站上有一个Delphi的tokenizer实现.它使得解析变得更加容易,因为lexing和tokenizing已经为你完成了,你需要担心的是在正式语法中定义标记然后在解析后解释它们.

  • 是的,我同意,EBNF的支持会使其变得更简单.:( (2认同)
  • +1,这似乎是积极的发展(并说,分配!).我使用的唯一版本是版本1(或2 ??)并且不喜欢它,我更喜欢我的手写解析器; 但我绝对需要另外尝试一下. (2认同)