编译原理利用Flex+Bison实现简单计算器
一 实验目的
1、掌握Yacc的基本用法,并能够根据语言给出语法规则的定义,最后生成语言的解析器;
2、使用使用Yacc实现一个高级计算器程序;
二 实验内容
实现一个简单的表达式计算器,要求能进行加、减、乘、除、幂运算,注意优先级。写出详细的步骤和源程序。
1、在linux中安装flex和bison,使用如下命令:
sudo apt-get install flex
sudo apt-get install bison
2、编写calculator.lex源程序
%{
// 一个简单计算器的Lex词法文件
#include <stdlib.h>
#include "calculator.tab.h"
void yyerror(char const *);
%}
%%
/* a-z为变量 */
[a-z] {
yylval = *yytext - 'a';
return VARIABLE;
}
/* 整数 */
[0-9]+ {