flex词法分析器的安装与配置
-
版本:使用的Flex分析器版本为2.5.4。
-
下载并使用安装程序安装。
-
进行环境变量的设置:
此电脑–右键–属性–高级系统设置–环境变量
在系统变量中找到PATH,将flex安装后的bin目录加入PATH;
找到CLASSPATH,将lib目录加入。
验证安装是否成功:
在DOS命令窗口中查询flex版本号即可
Bison的安装与配置
- 版本:2.4.1
- 下载并安装软件。
- 配置环境变量:步骤与Flex的环境变量配置完全相同。
使用DOS命令窗口验证
使用软件编译
新建一个文本文件test.txt,源代码为
%{
%{
#include <stdio.h>
%}
%%
stop printf("Stop command received\n");
start printf("Start command received\n");
%%int yywrap(void)
{ return 1;
}int main(void)
{yylex();system("pause");
}
(这里源文件可以安装者自由编写,满足lex的语法即可)
然后更改文件的后缀为.l,得到文件test.l
使用DOS命令窗口,进入到源文件的目录下,使用flex命令编译源文件
编译结束后可发现目录下生成了lex.yy.c文件。
注意:生成C文件后,可以直接使用dev-c++之类的IDE对C文件进行编译得到可执行文件。
但若想使用DOS命令编译,首先要把flex的lib目录下的libfl.a文件与liby.a文件复制到已安装的MINGW编译器的lib目录下。如果MINGW编译器是封装在IDE中的,那么还要在环境变量PATH中加入MINGW编译器的lib目录。
在这些工作做完后,在DOS窗口对C文件进行编译。命令如下图,注意一定要加-lfl参数
编译后,可以发现在C文件所在目录下生成了可执行文件。
并且程序可以作为词法分析器正常运行。
Win flex-bison—另一种选择
在UNIX,LINUX系统下,使用lex & yacc 或 flex & bison 工具组合不需要以上繁琐的配置过程,但在WINDOWS环境下通常需要安装MINGW编译器并且进行繁琐的配置过程。Win flex-bison 提供了 flex bison for Windows 的另一种移植。
下载压缩文件并解压到一个文件夹中,然后把当前的文件目录加入PATH环境变量。
通过DOS命令窗口判断是否配置成功。配置成功如下图:
Win flex-bison主要与Visual Studio一起使用,所以接下来使用一个例子说明如何使用VS2019来做开发。
首先使用VS来创建一个空项目,给它命名为WinFlexTest
1.配置依赖项
项目管理器-右键-生成依赖项-生成自定义
查找现有的–选择安装文件中的win_flex_bison_custom_build.targets
然后勾选该文件并确认
2.修改可执行文件目录
右键项目–属性–VC++目录
把win flex-bison的安装目录加入该项目的可执行文件目录
确认–应用
3.新建一个 .l 文件
项目右键–添加–新建项
代码还是上面使用的。
4.生成–生成解决方案
生成解决方案后,可以在项目目录中发现生成了CPP文件。
5.添加源文件。
上一步只是生成了词法分析器的C文件,我们要把该文件加入项目。
添加完毕后对源文件编译运行即可,程序如下: