Reentrant Flex Bison - fatal flex scanner internal error--end of buffer missed

  • Follow


Dear Friends,

Greetings !!

I am using flex 2.5.4 & bison 1.35. I am geting the run time error
"fatal flex scanner internal error--end of buffer missed" when i made
the lexer and parser as a part of shared lib and run . I am strugling
to make the lexer and parser reentrant and after reading the
discussions on reentrant flex in this group i have downloaded flex
2.5.31 (i cannot go for c++ version of scanner as of now) and added
%option reentrant in the scanner and %pure_parser in the parser.

On compilation this has resulted in yylex(yyscan_t yyscanner) in the
scanner and gave compilation error saying undefined reference to
yylval. Then i have added %option bison-bridge. It has compiled
everything but gave error 'yyin undefined reference' in my .c file
while linking where i am copying the input file name to yyin.

In the new lexer the definition of yyin has changed (earlier FILE
*yyin) to #define yyin yyg->yyin_r.

Please suggest me how can i copy the input file name into yyin i.e
yyg->yyin_r. Since yyg is a local structure variable in the scanner.

Earlier in my .c file i have declared yyin as 'extern FILE* yyin'. But
now the yyin is '#define yyin yyg->yyin_r' i am not able to pass the
input file name to lexer.

Please help me. Also i will be grateful to you if you suggest me what
are all the changes need to be done to .c files/scanner/parser if
'%option reentrant', '%option bison-bridge' and '%pure_parser' is
added to scanner and parser respectively.

Thanks in advance !!

Regards,
Krishna
0
Reply krishna.gudipati (1) 12/2/2004 4:16:19 AM


0 Replies
314 Views

(page loaded in 0.03 seconds)

Similiar Articles:





7/24/2012 12:23:43 PM


Reply: