lex
拡張子は .l
正規表現を使って記述したルールをlexにかけ、その結果ファイル(lex.yy.c)をCコンパイルすると、字句解析するyylex()関数が使える
構成は3つの部分からなる
宣言部分
lexで用いるoptionなどを定義
字句定義部分
Tokenを表現する正規表現と、それに対応するactionを記述
C部分
字句解析器で用いるCの関数定義など
生成されるCコードにそのまま埋め込まれる
lexNZDIGIT [1-9]
DIGIT [0-9]
{NZDIGIT}-{DIGIT}* // 10進定数
正規表現とそれに伴うアクションを対にした記法で仕様を定義する
lex[1-9][0-9]* {yylval.number=atoi(yytext);return NUM;}
yytext
1つのトークンとして認識された文字列