Meaning of yywrap() in flex
According to The Lex & Yacc Page :
When the scanner receives an end-of-file indication from
YY_INPUT
, it then checks theyywrap()
function. Ifyywrap()
returns false (zero), then it is assumed that the function has gone ahead and set upyyin
to point to another input file, and scanning continues. If it returns true (non-zero), then the scanner terminates, returning 0 to its caller. Note that in either case, the start condition remains unchanged; it does not revert toINITIAL
.
The #define
is used to simplify building the program (so that no -ll
linkage option is needed).
Further reading:
- What are lex and yacc?
- Routines to reprocess input
- 6. How do Lex and YACC work internally (Lex and YACC primer/HOWTO)
deep_geek
Updated on July 18, 2022Comments
-
deep_geek almost 2 years
What does this instructions mean in flex (lex) :
#define yywrap() 1
and this [ \t]+$
i find it in the code below:(
%% [ \t]+ putchar('_'); [ \t]+% %%
input "hello world"
output "hello_world"
)