2章まで終了。
この本の面白いところは、まずはソースコードを入力して、トーカナイザーとパーサーとコードジェネレータを通すフレームワークを先に作る所です。
2章が終わった時点でできるのは、このようなPascalのコードを読み込んで、行番号つけて表示するだけ。
PROGRAM hello (output); {Write 'Hello, world.' ten times.} VAR i : integer; BEGIN {hello} FOR i := 1 TO 10 DO BEGIN writeln('Hello, world.'); END; END {hello}.
実行結果がこう。
1 PROGRAM hello (output); 2 3 {Write 'Hello, world.' ten times.} 4 5 VAR 6 i : integer; 7 8 BEGIN {hello} 9 FOR i := 1 TO 10 DO BEGIN 10 writeln('Hello, world.'); 11 END; 12 END {hello}. 12 source lines 0 syntax errors 0 instructions generated
何にもしてないけど、パースが終わった時点でパーサーのサマリーを出力し、これまた何もしないコード生成が終わるとコードジェネレータのサマリーを出しています。