0

我有以下简单的语法:

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

我对 Bison 很陌生,所以我希望有人能帮助我展示如何以这种格式写出来。到目前为止,我只有以下内容,但我不确定它是否正确:

 %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");}
 ;
 %%
4

1 回答 1

1

您缺少几个作品中的结束分号。源语法中没有任何内容表明您需要有关行的产生式。

于 2013-03-03T02:08:19.677 回答