Meaning of yywrap() in flex
Asked Answered
C

1

13

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"

)

Consternation answered 27/12, 2015 at 11:19 Comment(0)
C
20

According to The Lex & Yacc Page :

When the scanner receives an end-of-file indication from YY_INPUT, it then checks the yywrap() function. If yywrap() returns false (zero), then it is assumed that the function has gone ahead and set up yyin 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 to INITIAL.

The #define is used to simplify building the program (so that no -ll linkage option is needed).

Further reading:

Charlatan answered 27/12, 2015 at 11:44 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.