LEX(1) — NEWS-OS 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 高速コンパイル − 結果として得られるテーブルをパックしません。 小さなプログラムに限られます。
例
次の例では、ファイル lexcommands から lex の命令を取り出し、出力を lex.yy.c へ格納します。
lex lexcommands
次は、 lex のプログラムの例です。
%%
[A−Z]putchar(yytext[0]+´a´−´A´);
[ ]+$;
[ ]+putchar(´ ´);
このプログラムは、大文字を小文字に変換し、行の終りにあるブランクを取り除き、 複数のブランクを 1 文字のブランクで置き換えます。
関連事項
yacc(1), sed(1)
M. E. Lesk and E. Schmidt, LEX − Lexical Analyzer Generator
NEWS-OS Release 4.2.1R