编译原理-词法分析器1(lex实现)

编译原理课实验一是词法分析器,但是在网上查了很多资料,发现用lex实现还要用Linux,Windows可以用对应的flex实现,但是网上的资料很零散,所以整理了一下从安装到配置,到实现一个词法分析器的过程

一、 安装

  1. 下载flex和bison
    UnxUtils: http://pan.baidu.com/s/1o6NY1E6
    Updates:http://pan.baidu.com/s/1o6NY1E6
    保存在E:\lex\cywin
  2. 使用的flex和bison都是GNU的工具,GCC既采用C/C++的编译器也采用GNU的编译器,Windows平台的GCC主要是MinGW编译器,下载地址:
    https://sourceforge.net/projects/mingw/files/Installer/mingw-get/catalogue/msys-package-list.xml.lzma/download
    或者
    http://www.mingw-w64.org/doku.php
    保存在E:\lex\GnuWin32
  3. 下载Parser Generator
    http://www.bumblebeesoftware.com/downloads.htm
    二、 配置环境变量
    下载UnxUtils以及UnxUpdates之后,解压到自己的文件夹,把/usr/local/wbin文件夹的绝对地址加到
    我的电脑(右键)->属性->高级->环境变量->系统变量->path值
    三、 安装MinGW
  4. 安装过程简图
    点击mingw-get-setup.exe

编译原理-词法分析器1(lex实现)_第1张图片

编译原理-词法分析器1(lex实现)_第2张图片
编译原理-词法分析器1(lex实现)_第3张图片
编译原理-词法分析器1(lex实现)_第4张图片
编译原理-词法分析器1(lex实现)_第5张图片

  1. 打开安装好的软件,选Basic Setup,在右侧选择mingw32-gcc-g++,鼠标右键点击Mark for Installation,然后点击左上角的Installation按钮,选择Apply Changes,弹出对话框点击Apply,安装对应的编辑器
  2. 设置环境变量
    进入MinGW的安装路径E:\lex\GnuWin32,将bin的绝对路径添加到path中(E:\lex\GnuWin32\bin)
    我的电脑(右键)->属性->高级->环境变量->系统变量->path值
  3. 检查安装完成
    打开cmd,输入gcc -v,显示如下即为安装成功
    编译原理-词法分析器1(lex实现)_第6张图片
    四、 Parser Generator的配置
  4. 打开Parser Generator
  5. 菜单project->LibBuilder选第一个

编译原理-词法分析器1(lex实现)_第7张图片
编译原理-词法分析器1(lex实现)_第8张图片
3. 配置好后点击built
编译原理-词法分析器1(lex实现)_第9张图片
4. 建立一个project
<1>project->ParserWizard
<2>工程设定(语言可选C/C++/JAVA)
<3>工程设定(是否带main函数的YACC文件或LEX文件)
<4>YACC文件设定
<5>LEX文件设定
<6>编辑好代码后project->Rebuild All
上图:
编译原理-词法分析器1(lex实现)_第10张图片
编译原理-词法分析器1(lex实现)_第11张图片
编译原理-词法分析器1(lex实现)_第12张图片
编译原理-词法分析器1(lex实现)_第13张图片
编译原理-词法分析器1(lex实现)_第14张图片

五、 配置VC6.0

  1. 打开cmd,一直到1.l存在的文件夹的目录下
    编译原理-词法分析器1(lex实现)_第15张图片
  2. Flex 1.l,此时再打开1.l的文件夹会发现出现lex.yy.c文件
    编译原理-词法分析器1(lex实现)_第16张图片
  3. 那么现在开始配置VC,首先导入Parser Generator的库文件和源文件
    Tools->Options,设置Iuclude files,library files,Source files

编译原理-词法分析器1(lex实现)_第17张图片
编译原理-词法分析器1(lex实现)_第18张图片
编译原理-词法分析器1(lex实现)_第19张图片
4. project->Settings
Win32 Debug
C/C++ -> preprocessor definitions添加宏定义,YYDEBUG
Link -> Object/Library Modules 加yld,lib
Win32 Release
Link -> Object/Library Modules 加yld,lib

编译原理-词法分析器1(lex实现)_第20张图片
编译原理-词法分析器1(lex实现)_第21张图片
编译原理-词法分析器1(lex实现)_第22张图片

  1. 将lex.yy.c添加到Source Files
    将1.h添加到Header Files
    编译原理-词法分析器1(lex实现)_第23张图片
  2. 编译运行就OK啦
  3. 或者在DOS下运行
    编译原理-词法分析器1(lex实现)_第24张图片

你可能感兴趣的:(编译原理,词法分析器,flex,编译原理,词法分析器,lex)