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

Reply via email to