`
mmdev
  • 浏览: 12924377 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

Windows下使用Flex入门

 
阅读更多

LEX是UNIX的工具,因此我们需要使用FLEX代替,使得在windows下使用;

配对:

LEX和YACC
FLEX和BISON
JFLEX和JavaCUP


LEX是词法分析器,主要作用类似于扫描器,输入为源代码(当然我们现在写的示例不一定是源代码),输出为词法单元(泛化的东西,比如1,2,3都可以被称为NUM);

当然中间匹配的过程很复杂,比如匹配正则表达式,并输出;使用LEX就不需要考虑这些,我们只需要定义以下几点:

(1)正则表达式,怎么样才算匹配,比如我们定义的语言中INTEGER才是整数,则输入为INTEGER时匹配正则表达式;

(2)返回的词法单元,当匹配时要返回什么需要自己定义;

下载地址:http://download.csdn.net/detail/loseblue/283175#comment


二、使用LEX



下载的文件如下图:





我们写一个统计文本单词个数、空白个数、数字个数;

步骤1:定义*.L文件


一开始要定义一个*.L文件,模板解释如下:



真实代码如下:


步骤2:使用flex命令


输入命令:flex 1.L

注意:此处的命令行为lexyacc.bat 打开的命令行;


flex 1.L 生成 lex.yy.c,此时的C文件可以被gcc编译,并可以使用;


步骤3:使用gcc编译C程序


Windows平台 的GCC主要是MinGW编译器:http://www.mingw.org/

配置环境变量: path=mingw/bin;


输入命令:gcc -o output.exe lex.yy.c


此时生成output.exe;


步骤4:在命令行中输入output执行exe



此时简单的lex 程序就完成了;

最后总共文件如下:

















分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics