Windows下lex 与 yacc的使用

首先

下载下载flex和bison。网址是http://pan.baidu.com/s/1dDlfiW5

选择下载就好了,下载后解压到你电脑中的任一盘中。找到这个文件夹就行了。

然后里面就是这样:

打开flex

打开bison

至此万事俱备,我们可以开始两个简单的文件来测试一下。

1.新建文本文件,更改名称为lex.l,敲入下面代码

%{

int yywrap(void);

%}

%%

%%

int yywrap(void)

{

return 1;

}

2.新建文本文件,更改名称为yacc.y,敲入下面代码

%{

void yyerror(const char *s);

%}

%%

program:

;

%%

void yyerror(const char *s)

{

}

int main()

{

yyparse();

return 0;

}

我们暂且不讨论上面代码的意思。

打开控制台,进入到刚才所建立文件(lex.l,yacc.y)所在的文件夹。

1.输入 flex lex.l

2.输入 bison yacc.y

如果我们看到当前文件夹上多了两个文件(yacc.tab.c,lex.yy.c),那么说明lex&&yacc已经安装配置成功,接下来就好好享受这两个小工具的魅力吧。

现在我们来试用下lex:

1、新建文本文件,更改名称为a.lex,敲入下面代码-------词法分析器的源代码

%{

int wordCount = 0;

int numcount = 0;

%}

chars [A-Za-z\_\'\.\"]

numbers ([0-9])+

delim [" "\n\t]

whitespace {delim}+

words {chars}+

%%

while  {ECHO; printf("%s\n",yytext);}

{words} { wordCount++;

/* increase the word count by one*/ }

{whitespace} { /* do nothing*/ }

([0-9])+ { numcount++; /* one may want to add some processing           here*/ }

%%

void main()

{

printf("ok1\n");

yylex(); /* start the  analysis*/

printf("ok2\n");

printf(" No of words: %d\n  number: %d\n", wordCount, numcount);

return 0;

}

int yywrap()

{

return1;

}

3、打开菜单,运行,输入cmd。

输入:cd 文件夹路径

输入:flex a.lex   回车后生成一个 lex.yy.c文件

4.然后这个lex.yy.c文件打开并编译一下就行了。

5.输入测试代码

asd   asdf 23 q

a1

b2

!#@

while

运行看看就行了。

致谢

笃行者------lex&yacc安装配置  http://blog.csdn.net/bedusing/article/details/5409495

Windows下lex 与 yacc的使用的更多相关文章

  1. Windows下lex 与 yacc的使用(2)

                                 Windows下lex 与 yacc的使用                                                   ...

  2. [开源项目]Shell4Win,一个在Windows下执行shell命令的解释器

    背景 顺利拿到心目中的理想offer之后,心里的负担一下减轻了很多,希望利用还没毕业之前这段难得的悠闲时间做一点有意义的事情.于是希望能做一个长久以来都想做的开源项目,就是题中提到的Windows下的 ...

  3. Lex与Yacc学习(一)之环境配置篇

    Abstract 在开发程序的过程中经常会遇到文本解析的问题,例如:解析 C 语言源程序,编写 脚本引擎等等,解决这种文本解析的方法有很多,一种方法就是自己手动用 C 或者 C++直接编写解析程序,这 ...

  4. Lex和Yacc入门

     Lex和Yacc入门 标签: lexyacc 2013-07-21 23:02 584人阅读 评论(0) 收藏 举报  分类: Linux(132)  原文地址:http://coanor.blog ...

  5. lex与yacc快速入门

    lex与yacc快速入门 [原创] 声明:原创文章,转载注明出处http://www.cnblogs.com/lucasysfeng/ 联系作者:lucasysfeng@gmail.com 第一节.l ...

  6. 在windows下安装gulp —— 基于 Gulp 的前端集成解决方案(一)

    相关连接导航 在windows下安装gulp —— 基于 Gulp 的前端集成解决方案(一) 执行 $Gulp 时发生了什么 —— 基于 Gulp 的前端集成解决方案(二) 常用 Gulp 插件汇总 ...

  7. 让 windows 下的命令行程序 cmd.exe 用起来更顺手

    在 Windows 下使用 Larave 框架做开发,从 Composer 到 artisan 总是避免不了和 cmd.exe 打交道,系统默认的命令行界面却是不怎么好看,且每行显示的字符数是做了限制 ...

  8. Windows下Visual studio 2013 编译 Audacity

    编译的Audacity版本为2.1.2,由于实在windows下编译,其源代码可以从Github上取得 git clone https://github.com/audacity/audacity. ...

  9. Windows下Nginx配置SSL实现Https访问(包含证书生成)

    Vincent.李   Windows下Nginx配置SSL实现Https访问(包含证书生成) Windows下Nginx配置SSL实现Https访问(包含证书生成) 首先要说明为什么要实现https ...

随机推荐

  1. jquery timepicker

    <div class="form-group row"> <div class="col-lg-2 control-label l-pd25" ...

  2. window 便笺

    windows的便签很方便人们记录日常工作安排,但是不是所有人都知道如何调用,下面介绍下如何调用windows便签: 1.win + R -->  StikyNot 2.弹出便签界面 3.右击底 ...

  3. Sql Server 存储过程使用技巧

    1.创建带Try...Catch的存储过程模板 Copy下面的代码,然后新建查询,就可以写sql语句,执行完后,一个你自己的存储过程就建立好了! USE [DB]--设定对应的数据库 GO SET A ...

  4. ORACLE 毫秒与日期的相互转换

    毫秒转换为日期 SELECT TO_CHAR(1406538765000 / (1000 * 60 * 60 * 24) + TO_DATE('1970-01-01 08:00:00', 'YYYY- ...

  5. android学习日记13--数据存储之File存储

    4.文件存储File File即传统的I/O 流存储文件,Activity提供了openFileOutput()方法可以用于把数据输出到文件中,具体的实现过程与在J2SE环境中保存数据到文件中是一样的 ...

  6. 文件I/O(不带缓冲)之dup和dup2函数

    下面两个函数都可用来复制一个现有的文件描述符: #include <unistd.h> int dup( int filedes ); int dup2( int filedes, int ...

  7. com.transfer.www

    package com.transfer.www; import java.io.IOException; import java.io.PrintWriter; import javax.servl ...

  8. 常用免费快递查询API对接案例

    现在许多电商公司和ERP都会寻找比较适用的集成快递查询接口,减少对接难度,现在整理一下常用的免费快递查询接口,并附上调用案例,如果有觉得不对的地方,望能够一起沟通探讨! 一.快递查询接口 目前有提供免 ...

  9. Android_Menu_PopupMenu

    layout.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" x ...

  10. ssh docker container

    docker run -d -p 127.0.0.1:33301:22 centos6-ssh ssh登陆容器: ssh root@127.0.0.1 -p 33301