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) |
マクロ |