John Roberts
John Roberts

Reputation: 5986

Creating Bison File for Simple Grammar

I have the following simple grammar:

E -> T | ^ v . E 
T -> F T1 
T1 -> F T1 | epsilon
F -> ( E ) | v

I'm pretty new to Bison, so I was hoping someone could help show me how to write it out in that format. All I have so far is the following, but I'm not sure if it's correct:

 %left '.'
 %left 'v'
 %% /* The grammar follows.  */

 exp:
 term               {printf("1");}
 | '^' 'v' '.' exp  {printf("2");}
 ;

 term:
 factor term1       {printf("3");}
 ;

 term1:
 factor term1       {printf("4");}
 |                  {printf("5");}      
 ;

 factor:
 '(' exp ')'        {printf("6");}
 | 'v'              {printf("7");}
 ;
 %%

Upvotes: 0

Views: 186

Answers (1)

user207421
user207421

Reputation: 311039

You are missing the closing semicolon from several of the productions. There's nothing in the source grammar to suggest you need the productions about lines.

Upvotes: 1

Related Questions