parser/keywords.c

ScanKeywords

キーワードの配列。
selectなどのキーワードが列記してある。バイナリサーチで検索するためアルファベット順に記述されている。

ScanKeywordLookup()

文字列がキーワードに一致するか調べる。parserから実行される。
一致するキーワードが見つかった場合は,キーワードのポインタを返す。見つからない場合はNULLを返す。

文字列を小文字に変換後,ScanKeywords配列をバイナリサーチしている。
小文字への変換ではtolowerを使わずに、A-Zをa-zに変換している。tolowerを使うとlocaleの設定によっては,違う変換結果になってしまうことがあるらしい(Turkishなど)。