lex 库

lex 库包含下面的子例程:

子例程 描述
main() 通过调用 yylex 子例程调用词法分析器。
yywrap() 当输入的末尾出现时,返回值 1。
yymore () 将下一个匹配字符串追加给 yytext 数组的当前值,而不是替换 yytext 数组的内容。
yyless (int n) n 初始字符保留在 yytext 数组中并将剩下的字符返回给输入流。
yyreject () 允许词法分析器与相同输入字符串的多条规则匹配。 (当使用 REJECT 特殊操作时,将调用 yyreject 子例程。)

一些 lex 子例程可使用用户提供的例程代替。 例如, lex 命令支持用户提供的 mainyywrap 子例程版本。 这些例程的库版本作为基础提供,如下所示:

main 子例程
#include <stdio.h>
#include <locale.h>
main() {
     setlocale(LC_ALL, "");
     yylex();
     exit(0);
}
yywrap 子例程
yywrap() {
       return(1);
}

yymoreyylessyyreject 子例程仅可通过 lex 库使用。 但是,仅当这些子例程用于 lex 命令操作中时,才是必需的。