lex ライブラリー
lex ライブラリーには、次のサブルーチンが入っています。
サブルーチン | 説明 |
---|---|
main() | yylex サブルーチンを呼び出して、字句解析プログラムを起動する。 |
yywrap() | 入力が終わると、値 1 を戻す。 |
yymore() | 次に突き合わせられる文字列を、yytext 配列の内容を置き換えるのではなしに、yytext 配列の現行値に追加する。 |
yyless(int n) | yytext 配列内の先頭の n 個の文字を保存して、残りの文字を入力ストリームへ戻す。 |
yyreject() | 字句解析プログラムが、 同じ入力文字列に複数の規則を突き合わせることができるようにする。 (yyreject サブルーチンは、 特殊アクション REJECT が使用されたときに呼び出されます。) |
lex サブルーチンの一部は、 ユーザー提供ルーチンで置き換えることができます。 例えば、lex コマンドは、ユーザー提供版の main および yywrap サブルーチンをサポートします。 これらのルーチンのライブラリー・バージョンは ベースとして提供されており、その内容は次のとおりです。
main サブルーチン
#include <stdio.h>
#include <locale.h>
main() {
setlocale(LC_ALL, "");
yylex();
exit(0);
}
yywrap サブルーチン
yywrap() {
return(1);
}
yymore、yyless、 および yyreject サブルーチンは、 lex ライブラリーのみを介して使用することができます。 しかし、 これらのサブルーチンが必要なのは、lex アクションで使用する場合だけです。