听说Yacc很久了,今天下下来试了一下,下载地址
httpwww.monmouth.com~wstreettlex-yacclex-yacc.html 是gnu的开源项目,用C实现的,有源码,并且基于Windows的
注意,除了下bison.exe, flex.exe还要下载bison.simple文件并将其与bison.exe放于同一目录下,
下面进行简单的测试:
1. 在放置bison.exe的目录下新建一个文件test.y(扩展名是y), 并在其中加入以下内容:
%{
#include ctype.h
%}
%token NUMBER
%left '+' '-'
%%
line expression 'n' {printf( %dn, $1 ); }
expression expression '+' expression { $$ = $1 + $3; }
expression '-' expression { $$ = $1 - $3; }
'(' expression ')' { $$ = $2; }
NUMBER { $$ = $1; }
;
%%
yylex() {
int c;
c = getchar();
if ( isdigit( c ) ) {
yylval = c - '0';
return NUM