为简单语法创建野牛文件

时间:2013-03-03 01:20:18

标签: parsing compiler-construction grammar bison yacc

我有以下简单的语法:

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

1 个答案:

答案 0 :(得分:1)

你错过了几部作品的结束分号。源语法中没有任何内容表明你需要有关线条的作品。