使用Win-flex bison生成一个计算器(VS2022)

本文介绍了如何在Windows环境下利用Flex和Bison工具创建一个简单的计算器应用。首先,创建VS2022空项目,接着编写lex(bo.l)和yacc(b.y)程序,然后使用Win-flexbison生成C语言源代码。在VS2022中编译程序并运行,最后通过修改程序支持浮点数运算。

本文参考网页“Flex和Bison简介和Windows下使用入门”( Flex和Bison简介和Windows下使用入门 | 码农家园 ),使用Win-flex bison生成生成一个计算器(VS2022)。

 

1. 使用VS2022创建空项目

使用VS2022创建名为MyProject的空项目。项目所在目录为“D:\temp\MyProject”。

2. 编写lex及yacc(bison)程序(文本文件)

2.1 lex程序

在目录“D:\temp\MyProject”中,使用文本编辑器(比如Notepad++)创建名为“bo.l”文本文件(即lex程序),内容如下:        

%{

    #include "b.y.h"

%}

%%

"+" {return ADD;}

"-" {return SUB;}

"*" {return MUL;}

"/" {return DIV;}

"|" {return ABS;}

[0-9]+ {yylval=atoi(yytext);return NUMBER;}

\n {return EOL;}

<think>嗯,用户需要配置win-flex-bison环境,而且提供了几个相关的引用内容。从引用来看,Windows下的配置确实会遇到一些麻烦,比如引用[2]提到资料少、细节含糊的问题。用户可能是个开发者,需要在Windows平台使用flexbison进行词法和语法分析,但不太熟悉Linux环境。 用户明确要求配置方法,但引用里提供了两种不同的路径:一种是直接安装原生Windows版本(引用[1]),另一种是通过MSYS2安装(引用[3])。需要把这两种主流方案都整理出来,因为用户没说清楚具体开发场景。第一种更适合纯Windows命令行开发,第二种可能更适合需要兼容Unix脚本的情况。 要注意操作步骤的准确性。引用[1]的setx命令需要提醒用户注意路径是否正确,引用[3]的MSYS2方案里PATH配置容易出错,这里要强调永久生效的source步骤。用户可能对命令行操作不熟悉,验证安装的部分必须保留flex --version这种直观的检查方式。 故障排除部分要单独强调,因为引用[2][4]都提到Windows下常见问题,比如路径含空格、杀毒软件拦截等。特别要警告中文用户名的问题,这是很多开发者踩过的坑。 最后生成的问题要覆盖用户后续可能的需求:"两种方案区别"帮助选择,"常见错误"预防问题,"IDE集成"提升效率,"替代工具"提供备选方案。这样既解决当前问题,又预判了用户接下来的动作。 </think>以下是Windows平台配置Win-Flex/Bison环境的详细步骤,整合了主流可靠方案及注意事项: ### 方案一:原生Windows安装(推荐) 1. **下载安装包** - Flex-Win:访问 GitHub [winflexbison](https://github.com/lexxmark/winflexbison/releases) 下载最新 `.exe` 安装包 - Bison-Win:在[相同页面](https://github.com/lexxmark/winflexbison/releases)下载对应版本 2. **安装过程** - 双击安装包,按提示完成安装(**记录安装路径**,默认为 `C:\Program Files\win-flex-bison`) 3. **环境变量配置** ```cmd :: 管理员权限打开CMD,按实际路径修改 setx PATH "%PATH%;C:\Program Files\win-flex-bison;" ``` > 注:若路径含空格需用双引号包裹完整路径[^1] 4. **验证安装** ```cmd flex --version # 应返回类似 "flex 2.6.4" 的信息 bison --version # 应返回类似 "bison (GNU Bison) 3.8.2" ``` --- ### 方案二:MSYS2环境安装(适合混合开发) 1. **安装MSYS2** 从[官网](https://www.msys2.org/)下载安装器,按默认步骤完成 2. **安装Flex/Bison** ```bash pacman -S mingw-w64-x86_64-flex mingw-w64-x86_64-bison ``` 3. **添加环境变量** 编辑系统环境变量,将MSYS2二进制目录加入PATH: ``` C:\msys64\mingw64\bin ``` --- ### ⚠️ 故障排除 1. **命令未识别** - 检查PATH是否包含**实际安装路径** - 重启终端或执行 `refreshenv` (Windows 10+) 2. **路径含空格错误** 在代码编辑器(如VS Code)中配置任务时使用短路径: ```json "args": ["${file}", "-o", "C:/PROGRA~1/win-flex-bison/flex.exe"] ``` 3. **中文用户名问题** 避免将工具安装在含中文/空格的用户目录下,建议选择 `C:\tools` 等纯英文路径[^4] > 提示:原生Windows方案更轻量,MSYS2方案兼容Unix工具链。开发IDE(如VS Code)需在配置中指定完整工具路径[^2]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Alexabc3000

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值