| From: | Hannu Krosing <hannu(at)tm(dot)ee> |
|---|---|
| To: | Oleg Bartunov <oleg(at)sai(dot)msu(dot)su> |
| Cc: | Pgsql Hackers <pgsql-hackers(at)postgresql(dot)org> |
| Subject: | Re: help needed with yacc/bison |
| Date: | 2003-07-01 20:02:20 |
| Message-ID: | 1057089739.7053.24.camel@fuji.krosing.net |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
Oleg Bartunov kirjutas T, 01.07.2003 kell 15:49:
> 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); }
removing the line above seems to fix your problem ;)
> ;
>
> For last query '34.1234.' we want to print VERSION '34.1234' and
> return DOT.
you can't return DOT as version is <str> and DOT is <opr>
> This is just an test example, actually we know workaround
> for this case, but we need something simple and universal :)
please describe the problem with some more samples, as it will make it
easier which kind of universal you are searching for ;)
------------
Hannu
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Jon Jensen | 2003-07-01 20:03:23 | Re: sslmode patch |
| Previous Message | Bruce Momjian | 2003-07-01 19:55:30 | Re: cvs build failure |