racc

必要な戦術を自分の言葉で纏めておく。私はどうもこういう発想はできないみたい。訓練なのかなぁ。

1)文法のイメージを湧かせる。ここでは入ってくる文字列について具体的にどうなるか考えない。
例:
A = B # コメント
とすれば今までの思考はすこし抽象レベルが下だった、と気づいた。
2)ルールを書く。2から考え出す。
stmt : STRING '=' STRING '#' STRING {result=val[1]+val[2]}
か?
3)パーサを書く。ここで実際に入る文字列を深く考える。
スペースは許可するのか。 A=B A = B A= Bとか。
スペースも無い空行の場合って、パースせずもどっていいんだろうか。。
じゃないや、
stmt : STRING '=' STRING '#' STRING {result=val[1]+val[2]}
| /*空行の場合*/ {}
だ。
4)完成。といけばいいけどデバッグはどうするべか・・緑本また読んでみるべ。