Hi there,
attached archive contains simple parser demonstrating our
problem. untar it, make, make test
Good test:
echo -n 12 34.1234 ... | ./parser
INTEGER: '12'
CHAR: ' '
VERSION: '34.1234'
CHAR: ' '
DOT: '.'
DOT: '.'
DOT: '.'
Wrong:
echo -n 12 34.1234. ... | ./parser
INTEGER: '12'
CHAR: ' '
yyerror: syntax error, unexpected CHAR, expecting INTEGER
The problem is recognizing VERSION
(from gram.y)
version: INTEGER DOT INTEGER { $$ = strconcat($1, $3, $2); } | version DOT INTEGER { $$ = strconcat($1,
$3,$2); }
;
For last query '34.1234.' we want to print VERSION '34.1234' and
return DOT.
This is just an test example, actually we know workaround
for this case, but we need something simple and universal :)
Regards, Oleg
_____________________________________________________________
Oleg Bartunov, sci.researcher, hostmaster of AstroNet,
Sternberg Astronomical Institute, Moscow University (Russia)
Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/
phone: +007(095)939-16-83, +007(095)939-23-83