コンパイラの基本構成

文字列をある法則に基づいて区切る処理を行いたい。
その法則とは、

  • 文字列はカンマによって区切られる
  • 「”(ダブルクォーテーション)」によって区切られている文字列にあるカンマは、文字列を区切る対象として除外する。

はじめ、Rubyでこのような文字列を扱いたいのだが、二つ目の法則がやっかいだ。
CSVファイルを扱うようなクラスはあるが、ダブルクォーテーションがある文字列を扱えない。そんななか、ふとコンパイラの字句解析の処理が使えないかと思いついた。

ぐぐってみると、コンパイラは下記から構成されていることが分かった。

  1. 字句解析
  2. 構文解析
  3. 意味解析
  4. コード最適化
  5. コード生成

詳細はこれから勉強していくことにする。
ちょっと参考になるようなサイト。
http://www.atmarkit.co.jp/fjava/rensai4/compiler01/compiler01_02.html