lexyacc安装配置
lex
Lex 是一种生成扫描器的工具。扫描器是一种识别文本中的词汇模式的程序。 一种匹配的常规表达式可能会包含相关的动作。这一动作可能还包括返回一个标记。 当 Lex 接收到文件或文本形式的输入时,它试图将文本与常规表达式进行匹配。 它一次读入一个输入字符,直到找到一个匹配的模式。 如果能够找到一个匹配的模式,Lex 就执行相关的动作(可能包括返回一个标记)。 另一方面,如果没有可以匹配的常规表达式,将会停止进一步的处理,Lex 将显示一个错误消息。
yacc
Yacc 代表 Yet Another Compiler Compiler。 Yacc 的 GNU 版叫做 Bison。它是一种工具,将任何一种编程语言的所有语法翻译成针对此种语言的 Yacc 语 法解析器。
借助lex和yacc,我们可以很容易地开发出所谓的编译器。linux下有很多很方便的小工具,linux系统已经自带有扫描器(flex)与解释器(bison)。幸运的是这些小工具一般都有windows的版本。现在我就简单说一下如何在windows下安装这些小工具。
1. 首先下载unxutils压缩包 http://sourceforge.net/search/?type_of_search=soft&words=unxutils&search=Search
2.把压缩包解压到一个文件夹,例如我的解压包放在 E:/compiler/UnxUtils下
3.配置环境变量。分别把unxtils下的lib与wbin两个子文件夹路径添加到环境变量path中。
a.在控制台上输入命令:
path=%path%; E:/compiler/UnxUtils/usr/local/lib
path=%path%; E:/compiler/UnxUtils/usr/local/wbin
b.直接在“系统属性”的环境变量上配置。
4.在解压包中的E:/compiler/UnxUtils/usr/local/share下有两个文件,bison.hairy,bison.simple,为这两个文件建立两个环境变量。(Administrator的用户变量)
变量 值
bison_hairy E:/compiler/UnxUtils/usr/local/share/bison.hairy (注意变量名称必须为 bison_hairy)
bison_simple E:/compiler/UnxUtils/usr/local/share/bison.simple (注意变量名称必须为 bison_simple)
至此万事俱备,我们可以开始两个简单的文件来测试一下。
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已经安装配置成功,接下来就好好享受这两个小工具的魅力吧。
问题:
1.在控制台输入 flex lex.l时,提示" 'flex' 不是内部命令或外部命令,也不是可运行的程序或批处理文件"则说明环境变量的path设置不正解。
2.在控制台输入 bison yacc.y时,提示“bison : /usr/local/share/bison.simple: No such file or directory ”最有可能是上面“Administrator的用户变量”中变量的名称设置不正确(必须为bison_simple).
lexyacc安装配置相关推荐
- mysql64如何配置_win7 64位下如何安装配置mysql-winx64(安装记录)
win7 64位下如何安装配置mysql winx64 1.mysql下载 官方网站下载地址:http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5. ...
- ActiveMQ—安装配置及使用
安装配置及使用 转自:http://blog.csdn.net/qq_21033663/article/details/52461543 (一)ActiveMQ介绍 ActiveMQ 是Apache出 ...
- Linux下Tomcat的安装配置
Linux下Tomcat的安装配置 一.下载安装对应的jdk,并配置Java环境. 官网下载地址: http://www.oracle.com/technetwork/java/javase/down ...
- wamp的mysql单独使用_Windows 7+8.1+10 单独安装配置 PHP+Apache+MySQL(不使用 WAMP)
Windows 8.1 单独安装配置 PHP+Apache+MySQL(不使用 WAMP) 本文同样适用于Windows7和10 0x00 PHP [下载]http://www.doczj.com/d ...
- mysql数据库解压安装教程_MySQL数据库之windows 10下解压版MySql安装配置方法教程...
本文主要向大家介绍了MySQL数据库之windows 10下解压版MySql安装配置方法教程 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. windows 10 下安装解压版的 ...
- python3.6.2怎样安装,python 3.6.2 安装配置方法图文教程
python 3.6.2 安装配置方法图文教程 Windows下Python(pip)环境搭建(3.6)图解,供大家参考,具体内容如下 1.下载最新的Python安装:3.6.2 2.安装时不要选择默 ...
- centos7 mysql workbench_centOS下mysql workbench安装配置教程
本文为大家分享了mysql workbench安装配置教程,供大家参考,具体内容如下 step0:安装mysql 在按照workbench之前,先安装mysql.指令是 yum install mys ...
- Centos5.6 VNC安装配置【无错版】
不严格按本步骤就会出现VNC桌面花屏,就是桌面分离为一层一层的... ---------------------------------------- 先装X window http://blog.c ...
- C/C++代码静态检查工具PC-lint在VS2008开发环境中的安装配置和使用
PC-Lint偏重于代码的逻辑分析,它能够发现代码中潜在的错误,比如数组访问越界.内存泄漏.使用未初始化变量等. 1. 从http://download.csdn.net/detail/liucha ...
最新文章
- 企业级工作流解决方案(十五)--集成Abp和ng-alain--Abp其他改造
- 新版中青——青龙羊毛
- centos 搭建 svn服务器
- 软件架构最佳实践和案例分析
- 好看的按钮组件_一个能决定命运的按钮,你敢来挑战吗?
- java窗口how2j_java面向对象1(学习笔记HOW2J)
- 5G NR QCL准共址详解
- 内容可编辑_让PDF像WORD一样自由编辑,好用的PDF编辑工具推荐
- 外星人台式机无盘服务器,可以拎走的“台式机” Alienware Area-51m评测
- DbVisualizer 12.0.* Ubuntu
- 微信 input 照相机 呼出
- ubuntu /etc/profile和/etc/environment的比较
- 思科模拟器Cisco Packet Tracer安装指南
- HAProxy代理后端服务取真实IP
- 如何有效地设置QTextEdit的背景
- 关于微信小程序开发中的显示个人信息以及重置密码功能
- 腾讯后台面经大全(整合版)
- ppt文件被加密怎么解开,ppt复制打印限制怎么解除?
- 安卓手机主题软件_【软件】安卓手机延时摄影视频软件APP
- K_A08_012 基于 STM32等单片机驱动 DRV8833 模块按键控制直流电机正反转
热门文章
- 提升教师计算机业务培训计划,教师信息技术培训计划
- Flowable入门系列文章193 - 禁用批量插入和安全脚本
- WebStorm快捷键以及个人设置
- 苹果手机自带的邮件无法连接服务器,iphone邮箱怎么连接服务器 iphone邮箱无法连接服务器怎么办...
- Java高级之线程同步
- php用重写算出圆柱体的体积,枚举测试用例Cylinder(圆柱体)(枚举)
- mysql模糊查询是否区分大小写?
- [GYCTF2020]Ezsqli --BUUCTF
- 微信小程序布局篇课程构思----Position+Flex
- 支付架构调用流程以及常见支付问题解决方案