我刚刚开始掌握 ParseKit,阅读了“基本语法语法”,但这只是一个非常基本的介绍。现在我想着手定义我自己的语法,我很快就超出了我的理解范围。我从这里去哪里?
例如,我想以非常自定义的格式解析一个日志文件。将其分解为页眉、正文和页脚,这将是我的页眉第一行的 BNF:
<header-line-1> ::= <log-format> <log-id> "," <category> <EOL>
<log-format> ::= "Type A Logfile" | "Logfile II" | "Some Other Format"
<log-id> ::= "#" <long-int>
<category> ::= <some unknown string>
我如何定义它,以便 ParseKit 理解?我已经走到这一步了;
@start = header-line-1;
header-line-1 = log-format log-id "," category EOL;
log-format = 'Type A Logfile';
log-id = '#' ; // and then how to specify a long-int?!?
category = char+;
char = 'A' | 'a' | 'B' | 'b' | 'C'; //..etc... Surely not?!?
我怀疑必须至少有一种方法来定义一系列字符?
当然, parsekit 的作者引用的书可能会对我有所帮助,但如果有人可以帮助我在深入研究该主题之前帮助我开始使用我自己的小例子,那就太好了。我只是在调查一个想法,只是概念证明。