编译原理_计算器_flex、bison实现(详细辅助理解)

本文详述如何使用Flex和Bison在Windows和Ubuntu上构建一个全功能计算器,包括加减乘除、乘方、开方等运算。提供环境配置教程、源代码解析及常见错误解决方法。
摘要由CSDN通过智能技术生成

个人博客 https://www.yuque.com/_ngp/blog/tuanh6

目标:参考范例程序, 用 Flex 和 Bison 实现一个功能更为强大的计算器,包含以下运算:
a) 加、减、乘、除运算
b) 乘方、开方运算
c) 位运算
– 与 & 、或 |、非 ~…
d) 阶乘运算 !
e)sin cos tan

sin(SIN*pi/180.0)//把角度变成弧度即把180度变成π

如果要写实验报告的话,请先看报告书的要求,一边截图一边编程,免得写报告的时候,浪费时间。

P.S. 这篇文章只能助你理解并修改程序,博主也只理解了部分, 而且很久没用了, 其他的都忘了. 附赠安装配置环境的教程(毕竟很多人卡在第一步嘛( ̄▽ ̄)/)

一 环境配置:Windows/Ubuntu+flex、bison

\1 使用Windows+CodeBlocks+flex、bison的环境(有两种方式)

方式1 借助codeblcoks编译、运行。

flex_bison 下载 百度云密码:usk6
flex_bison 备用下载链接
1)下载百度云里的flex和bison。放到windows环境下。
2)把.l文件和.y文件复制到该文件下
3)在
2)文件夹的地址栏(也就是下图画红圈的地方),输入cmd
, 然后按 回车
地址栏cmd
4)在 cmd弹出的控制台 里输入

flex -ocalc.c calc.l
bison -ocalc.tab.h calc.y  //注意-o后面没有空格

这样,会生成两个文件,calc.tab.h 和 calc.c
然后,把生成的.c文件(calc.c),丢进 codeblocks里,编译,运行。


方式2 配置MinGW直接在cmd下编译、运行。

flex_bison 下载 百度云密码:usk6
flex_bison 备用下载链接
1)下载百度云里的flex和bison。放到windows环境下。
2)把.l文件和.y文件复制到该文件下
3)把%codeblocks%\MinGW\bin添加到 电脑\属性\高级系统设置\环境变量\PATH(即把codeblocks的编译器的路径放到环境变量PATH里)
4)在
2)文件夹的地址栏(也就是下图画红圈的地方),输入cmd
, 然后按 回车
地址栏cmd

flex  calc.l
bison -o calc.tab.h calc.y  //注意-o后面有没有空格都可以 ==
gcc -o aa lex.yy.c calc.tab.h  //编译
aa		//运行aa.exe

这种方式,会生成两个文件,calc.tab.h 、calc.tab.c 和 calc.c
这样,就直接在 在 cmd弹出的控制台 界面,运行程序,而不要通过codeblocks。

\2 使用Ubuntu+flex、bison的环境,来编译、运行。

vm12+ubuntukylin16.04 虚拟机安装ヾ(o◕∀◕)ノヾ (❁´︶`❁)
然后,在ubuntu安装flex、bison并完成编译
老版本的ubuntu可能这样安装不了,

  • 26
    点赞
  • 129
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值