Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ lex(1) — NEWS-os 4.2.1R

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

例

次の例では、ファイル 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

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