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: [EMAIL PROTECTED], http://www.sai.msu.su/~megera/
phone: +007(095)939-16-83, +007(095)939-23-83

---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster

Reply via email to