help-bison
[Top][All Lists]
Advanced

[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.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]