[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: Why bison doesn't like my grammar?
From: |
SirZooro |
Subject: |
RE: Why bison doesn't like my grammar? |
Date: |
Mon, 18 Sep 2006 22:27:24 -0700 (PDT) |
Hello,
Thanks for reply. Finally I have found solution:
const_var_dim_list : const_var_dim_list const_var_dim
| const_var_dim ;
This solution is also more friendly for bison (no shift/reduce conflict) :)
Daniel
vidhya wrote:
>
> Hi
> I tried your grammar
> For const_var_dim_list , you had given as
> const_var_dim_list : const_var_dim_list const_var_dim ;
> but where is const_var_dim_list again defined. (like what does it get
> reduced to)
> So bison errs saying 2useless nonterminals,
>
> I tried some thing like this
> Const_var_dim_list : const_var_dim , now it goes without any glitches.
> But if I put
> Const_var_dim_list: /*empty*/
> | const_var_dim , then there is one shift/reduce
> conflict for that production , I could find only this much , Hope this
> helps.
> Vidya
>
>
> -----Original Message-----
> From: address@hidden
> [mailto:address@hidden On Behalf Of
> SirZooro
> Sent: Sunday, September 17, 2006 6:52 PM
> To: address@hidden
> Subject: Why bison doesn't like my grammar?
>
>
> Hello,
> I was found this problem while trying to eliminate shift/reduce conflicts
> from my grammar. Bison (version 2.3, Cygwin) reports that some of my rules
> are useless, and I don't know why. Could you look on this and tell me
> what's
> wrong?
>
> I want to describe something like this (array dimensions, default value
> and
> 'global' are optional):
>
> variables
> {
> var_aaa[3][2] : 8 = 123 global
> other_var : x
> }
>
> Daniel
>
> Useless rules:
> 11 variable_decl: TOK_SYMBOL const_var_dim_list ':' const_int_function
> var_default var_global
> 12 const_var_dim_list: const_var_dim_list const_var_dim
> 13 const_var_dim: '[' const_int_function ']'
>
> Grammar file:
>
> %token TOK_VARIABLES TOK_SYMBOL TOK_X TOK_GLOBAL TOK_NUMBER '{' '}' '['
> ']'
> ':' '='
> %token TOK_NUMBER
>
> %glr-parser
>
> %%
>
> variables : TOK_VARIABLES '{' variables_list '}' ;
>
> variables_list : /* empty */
> | variables_list variable_decl ;
>
> variable_decl : TOK_SYMBOL ':' const_int_function var_default var_global
> | TOK_SYMBOL const_var_dim_list ':' const_int_function var_default
> var_global
> | TOK_SYMBOL ':' TOK_X ;
>
> const_var_dim_list : const_var_dim_list const_var_dim ;
>
> const_var_dim : '[' const_int_function ']' ;
>
> var_default : /* empty */
> | '=' const_int_function ;
>
> var_global : /* empty */
> | TOK_GLOBAL ;
>
> const_int_function:
> TOK_NUMBER ;
>
> --
> View this message in context:
> http://www.nabble.com/Why-bison-doesn%27t-like-my-grammar--tf2286045.html#a6
> 349993
> Sent from the Gnu - Bison - Help forum at Nabble.com.
>
>
>
> _______________________________________________
> address@hidden http://lists.gnu.org/mailman/listinfo/help-bison
>
>
>
> _______________________________________________
> address@hidden http://lists.gnu.org/mailman/listinfo/help-bison
>
>
--
View this message in context:
http://www.nabble.com/Why-bison-doesn%27t-like-my-grammar--tf2286045.html#a6382196
Sent from the Gnu - Bison - Help mailing list archive at Nabble.com.