lex ソースファイルの一般形式を以下に示します。
定義 % 規則 % ユーザールーチン
定義セクションでは、以下の項目を自由に組み合わせて使用できます。
以下の形式による略語の定義
name space translation
以下の形式で取り込まれたコード
% { C code % }
以下の形式による開始条件
Start name1 name2 ...
以下の形式による内部配列サイズの変更
%x nnn
nnn は配列サイズを表す 10 進整数で、x はそのパラメータを選択します。
内部配列サイズの変更は、以下のように表すことができます。
表 2-3 内部配列サイズp |
位置 |
n |
状態 |
e |
ツリーノード |
a |
遷移 |
k |
パック文字クラス |
o |
出力配列サイズ |
規則セクションの行は以下の形式になります。
式 アクション
アクションは、中括弧で囲むことによって、次の行まで続けることができます。
lex 演算子用の文字を以下に示します。
" ¥ [] ^ - ? . * | () $ / {} <> +
重要な lex 変数、関数、マクロを以下に示します。
表 2-4 lex 変数、関数、およびマクロyytext[] |
char の配列 |
yyleng |
int |
yylex() |
関数 |
yywrap() |
関数 |
yymore() |
関数 |
yyless(n) |
関数 |
REJECT |
マクロ |
ECHO |
マクロ |
input() |
マクロ |
unput(c) |
マクロ |
output(c) |
マクロ |