Related articles |
---|
ITE bison grammar problem pocm@sat.inesc-id.pt (pmatos) (2005-06-04) |
Re: ITE bison grammar problem pocm@sat.inesc-id.pt (pmatos) (2005-06-04) |
Re: ITE bison grammar problem cbarron413@adelphia.net (Carl Barron) (2005-06-05) |
Re: ITE bison grammar problem bluemalov_NOSPAM_@hotmail.com (Andrew Wilson) (2005-06-05) |
From: | Carl Barron <cbarron413@adelphia.net> |
Newsgroups: | comp.compilers |
Date: | 5 Jun 2005 11:23:49 -0400 |
Organization: | Compilers Central |
References: | 05-06-028 |
Keywords: | parse, yacc |
Posted-Date: | 05 Jun 2005 11:23:49 EDT |
pmatos <pocm@sat.inesc-id.pt> wrote:
> [ this has a reduce / reduce conflict ]
>
> %left '&' '+'
>
> %token id
>
> %start F
> %%
>
> F: "ite" '(' F ',' F ',' F ')'
> | E '&' E
> | M
> | id
> ;
>
> M: E "==" E;
>
> E: "ite" '(' E ',' E ',' E ')'
> | E '+' E
> | id
> ;
>
> %%
>
> (F is formula which represents a boolean value and E is an expression
> which represents a numerical value, id is an identifier that can
> represent a numerical value or a boolean value but that depends on its
> definition, right now, it's a sequecene of chars)
if the vars are declared before use
[explicitly or as a lhs of an assignment] before use then a symbol table
used in the lexer could return different tokens depending on the type of
the existing variable then change id to f_id and e_id and then
modify F and E to use the appropriate f_id or e_id.
%token e_id
%token f_id
....
F : ...
| f_id
;
E : ...
| e_id
;
simple ???
Return to the
comp.compilers page.
Search the
comp.compilers archives again.