使用Bison和Flex(Windows下的基于GNU开源的Yacc和Lex)

本文介绍了如何在Windows下利用GNU开源的Yacc(Bison)和Lex(Flex)工具来构建简单的解释器。通过下载安装、创建及编辑测试文件,最终编译运行,展示了Bison和Flex的基本用法,为后续深入学习打下基础。
摘要由CSDN通过智能技术生成

听说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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值