parse_string()
本編では「面白くないから」と飛ばしてしまった parse_string()。
それを文字列種ごとに疊み込んだバージョンを掲載しておく。
ファイルは parse_string/ 以下に置いてあるのでそれを直接見てもよい。
また以下には編集前のファイルも置いておく。
original.c と各文字列種バージョンを見比べてみるとわかるが、
STR_FUNC_* を定数疊み込みしただけである。
登場する関数の役割は以下の通り。
- parse_string
- 文字列類のスキャンを行うインターフェイス。
- tokadd_string
- 実際の文字列の中身をスキャンする。
- tokadd_escape
- \n などのバックスラッシュ表現をスキャンしてトークンバッファに追加する。
- read_escape
- \n などのバックスラッシュ表現をスキャンしてバイト (数値) 表現に変換し、返す。
- regex_options
-
正規表現のオプション部分 ([smxo] と [nesu] の組み合わせ) を読み込み
ビットマスク表現に変換する。それ以外のオプションがあればコンパイル
エラーにする。
Copyright (c) 2002 Minero Aoki
<aamine@loveruby.net>