Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ lex(1) — NEWS-os 4.1C

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

yacc(1)

sed(1)

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 "高速"コンパイル − 結果として得られるテーブルをパックしません。 小さなプログラムに限られます。

例

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 4.1C

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026