「基本的な文法構文」を読んで、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 の著者によって引用された本はおそらく私を助けるでしょうが、主題を深く掘り下げる前に、誰かが私自身の小さな例を始めるのを手伝ってくれるといいでしょう. アイデアを調査しているだけで、概念の証明にすぎません。