LoginSignup
1
1

More than 5 years have passed since last update.

Rustで自分用の字句パーサー書いた☆(^~^)

Last updated at Posted at 2018-09-24

Git hub の readme に書いた。

もう配布してある。

目的のやつだがサンプルには難解すぎる

簡単にしたやつ

だったら Qiita で技術 書くことないよな。

コマンドラインといっても、もっとざっくり言えば 一行のテキストのことで

1 + 2

は、数字、スペース、記号、スペース、数字 に分解できる。
これを 字句パーサーという。レキシカルパーサー。

だいたい 字句は、スペース か、 字句の種類の境目 で切る。

neko[123]

であれば、neko[123] の4つのトークンに切れる。Token。つまんだもの、ぐらいの意味だ。

「わたしはかおをあらった」 のように日本語はスペースで区切らない言語もある。そんな言語でプログラムするのは 計算機的に大変だ。

とりあえず ポイント としては、ルールの方に現実を合わせることだ。
日本語を解析するパーサーを作るより ルールに合わせて日本語を変える方が楽。

例えば

  • 先頭(例えば左端)から順番に読む。
  • なるべく長めに一致するのを取る。 BluBlue があれば Blue の方を優先する。
  • 「123」の決め打ちと、「数字」の指定があれば、123 を見かけたら「123」の方を優先する。

というようにルールを決めたら、ルールに合わせて テキストを書く。

そのうち なんか 字句解析や構文解析の話を書く。

//かきかけ

1
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1