flex中yywrap()的含义

时间:2015-12-27 11:19:52

标签: gcc compiler-construction compilation flex-lexer lexical-analysis

这条指令在flex(lex)中的含义是什么:

#define yywrap() 1

这个[\ t] + $
我在下面的代码中找到它:

%% [ \t]+ putchar('_'); [ \t]+% %%

输入“你好世界”

输出“hello_world”

1 个答案:

答案 0 :(得分:6)

根据The Lex & Yacc Page

  

当扫描程序收到来自 YY_INPUT 的文件结束指示时,它会检查yywrap()功能。如果yywrap()返回false(零),则假定该函数已经完成并设置yyin以指向另一个输入文件,并继续扫描。如果它返回true(非零),则扫描程序终止,向其调用者返回0。请注意,在任何一种情况下,开始条件保持不变;它不会还原为 INITIAL

#define用于简化程序的构建(因此不需要-ll链接选项)。

进一步阅读: