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>