这个指令在flex(lex)中意味着什么:
#define yywrap() 1
这个[\ t] + $
我在下面的代码中找到它:
(%%
[ \t]+ putchar('_');
[ \t]+%
%%
输入"你好世界"
输出"hello_world"
)
根据The Lex&Yacc Page:
当扫描仪收到来自文件结束的指示时
YY_INPUT
,它会检查该yywrap()
功能.如果yywrap()
返回false(零),则假定该函数已经进行并设置yyin
为指向另一个输入文件,并继续扫描.如果它返回true(非零),则扫描程序终止,向其调用者返回0.请注意,在任何一种情况下,开始条件保持不变; 它不会回复INITIAL
.
将#define
用于简化构建程序(从而没有-ll
需要联动选项).
进一步阅读:
什么是lex和yacc?
重新处理输入的例程
6. Lex和YACC如何在内部工作(Lex和YACC primer/HOWTO)