never2di ha scritto:
I'm a newbie to Bison + Flex. and I'm having trouble in getting
yy_scan_string to work. I have tried the following
YY_BUFFER_STATE my_string_buffer = yy_scan_string(my_string);
yyparse();
yy_delete_buffer(my_string_buffer );
the parser errors out with a syntax error at the first token. I have
verified that the grammar and the content of 'my_string' works using
yyrestart(yyin) and also with yy_create_buffer() through a file.
Is there something special state that I have to set flex in before I call
yyparse()?
if not what is that I'm doing wrong and what needs to be done?
bison (GNU Bison) 2.4
Thanks :handshake:
The problem concerns Flex and not Bison.
I anyway think you're right, you have to call yy_switch_to_buffer;
the following code should be right:
YY_BUFFER_STATE b=yy_scan_string(my_string);
yy_switch_to_buffer(b); //buffer change
yyparse();
yylex_destroy(); //to avoid leakage
You can read how "Multiple Input Buffers" works in flex help:
http://flex.sourceforge.net/manual/Multiple-Input-Buffers.html#Multiple-Input-Buffers
Luca
_______________________________________________
help-bison@gnu.org http://lists.gnu.org/mailman/listinfo/help-bison