Git hub の readme に書いた。
もう配布してある。
だったら Qiita で技術 書くことないよな。
コマンドラインといっても、もっとざっくり言えば 一行のテキストのことで
1 + 2
は、数字、スペース、記号、スペース、数字 に分解できる。
これを 字句パーサーという。レキシカルパーサー。
だいたい 字句は、スペース か、 字句の種類の境目 で切る。
neko[123]
であれば、neko
、 [
、 123
、 ]
の4つのトークンに切れる。Token。つまんだもの、ぐらいの意味だ。
「わたしはかおをあらった」 のように日本語はスペースで区切らない言語もある。そんな言語でプログラムするのは 計算機的に大変だ。
とりあえず ポイント としては、ルールの方に現実を合わせることだ。
日本語を解析するパーサーを作るより ルールに合わせて日本語を変える方が楽。
例えば
- 先頭(例えば左端)から順番に読む。
- なるべく長めに一致するのを取る。
Blu
とBlue
があればBlue
の方を優先する。 - 「123」の決め打ちと、「数字」の指定があれば、123 を見かけたら「123」の方を優先する。
というようにルールを決めたら、ルールに合わせて テキストを書く。
そのうち なんか 字句解析や構文解析の話を書く。
//かきかけ