LEX(1) — UNIX Programmer’s Manual
名称
lex − 字句解析プログラムの生成プログラム
形式
lex [ −tvfn ] [ file ] ...
解説
lex は、 テキストの簡単な字句解析に使用されるプログラムを 生成します。 入力ファイル file (標準入力がデフォルト)には、 サーチの対象となる正規表現が収められていて、 正規表現が見つかると、 C で書かれたアクションが実行されます。
Cソースプログラム ‘lex.yy.c’ が生成されるので、次のように コンパイルします。
cc lex.yy.c −ll このプログラムを実行すると、 入力中の認識されなかった部分を 出力へコピーし、 認識された各正規表現について、対応付けられているCアクションを 実行します。
オプションには、次の意味があります。
−t 結果を ファイル ‘lex.yy.c’ の代わりに標準出力へ書き込みます。
−v 生成された解析プログラムの統計情報の要約を 1行で 出力します。
−n −v の反対で、 要約の出力を抑制します。 −n がデフォルトです。
−f "高速"コンパイル − 結果として得られるテーブルをパックしません。 小さなプログラムに限られます。
例
lex lexcommands
は、 ファイル lexcommands から lex の命令を 取り出し、 出力を lex.yy.c へ格納します。
%%
[A−Z]putchar(yytext[0]+´a´−´A´);
[ ]+$;
[ ]+putchar(´ ´);
は、 lex のコマンドファイルへ格納する lex のプログラムの例です。 このプログラムは、 大文字を 小文字に変換し、 行の終りにあるブランクを 取り除き、 複数のブランクを 1文字のブランクで置き換えます。
関連事項
yacc(1), sed(1)
M. E. Lesk and E. Schmidt, LEX − Lexical Analyzer Generator
NEWS-OS Release 3.3