lex&yacc安装配置

Lex和Yacc从入门到精通(1)--环境配置篇 环境设置 本文版权归熊春雷所有 ,我的邮箱:pandaxcl@163.com>,欢迎大家和我讨论计算机方面 的问题,在我的博客上 面还写了很多其他的文档,有空来看看哦。如果转载,请保留此版权信息,并注 明出处。谢谢:) Abstract 在开发程序的过程中经常会遇到文本解析的问题,例如:解析C语言源程序,编写 脚本引擎等等, 阅读详情

 

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).

 

LEX/YACC环境安装 压缩包包含两个程序: bison-2.4.1-setup.exe\flex-2.5.4a-1.exe 下载后直接点击安装就可以,接着右键计算机,打开属性->高级系统设置->环境变量,在path变量中添加路径,即到你安装好的程序的bin的路径,如:C:\Program Files (x86)\GnuWin32\bin; 之后你就可以在cmd中通过命令编译你的lex\yacc文件了。 绝对可用 立即下载

相关推荐

【全开源】旅行吧旅游门票预订系统源码(FastAdmin+ThinkPHP+Uniapp)

此外,系统还会根据我的旅行计划和喜好,为我推荐合适的景点和门票,让我的旅行更加丰富多彩。旅游门票预订系统的出现,不仅简化了门票预订的流程,还提高了旅行的便捷性和效率。一款基于FastAdmin+ThinkPHP+Uniapp开发的旅游门票预订系统,支持景点门票、导游产品便捷预订、美食打卡、景点分享、旅游笔记分享等综合系统,提供前后台无加密源码,支持私有化部署。如今,有了旅游门票预订系统,这些问题都能迎刃而解。智能推荐:系统还会根据你的旅行计划和喜好,为你推荐合适的景点和门票,让你的旅行更加丰富多彩。

2401_84413757的博客 1302

不需要配置VS,Windows下一键安装Lex和Yacc集成开发环境!图形化界面操作(超easy,超详细教程)(含示例程序)

双击安装完成即可直接使用! 目前为止windows下使用lex 最便捷的 方案! 自带编辑器EditPlusPortable,图形化界面编辑与编译操作。同时附带lex与yacc官方文档! 关于Lex和Yacc在windows下使用,网上搜了很多博客论坛,发现现有的介绍绝大部分属于以下两类: 使用不同版本的VS来配置环境进行开发; 单独对lex和Yacc进行了封装,但仍需要在命令行环境下使用。...

CUMT_EricLu的博客 3986

[Arcgis插件分享]--在线地图、地图配色

插件介绍:MapOnline在线地图插件是一套由北京茗禾科技有限公司研发的基于ArcGIS的插件工具,用户通过注册“数据禾”网站,即可使用MapOnline实现各种在线地图资源的集成加载,以及网站共享资源的免费下载。包括:谷歌地图、谷歌地球(无偏)、高德地图、天地图(无偏)、搜搜地图、必应地图(无偏)、OSM地图(无偏)、Esri影像(无偏),以及自定义切片的加载。⑤在Arcmap操作窗口上方的菜单栏右键,调用「MapOnlinev1.2.4」②双击安装文件夹内的「MapOnline.esriAddIn」

weixin_59101151的博客 5773

lex与yacc的安装配置附flex,bison和mingw安装包

〇、所需安装包 flex-2.5.4a-1.exe+bison-2.4.1-setup.exe+mingw-get-setup.exe 一、安装配置与测试 %{ int yywrap(void); %} %% %% int yywrap(void) { return 1; } %{ void yyerror(const char *s); %} %% program: ; %% void yyerror(const char *s) ...

小王的博客 2611

B-Tree数据存储

SQLITE数据存储1. B-Tree的优势  在SQLite中数据库、表、索引都是通过B-Tree和B+Tree的形式进行存储的。如果采用传统的二叉树查找树、红黑树的查找深度一般为log2(N) \log{_2}(N)(其中N表示的是整个树的关键字的数目),在数据库中如果存储的资源过多,就会导致查找一个数据过程中出现较多的磁盘I/O操作,而过多的磁盘操作就会导致整个查找的效率较低,而基于二叉树的一

Promiscuous_youth的博客 1142

解读区块链在制药和物流管理中具备的优势

供应链透明度是建立药品弹性供应链的关键,如何更好地促进端到端的透明度,促进合作伙伴和消费者之间的信任度是当前医药和物流行业高管们关注的话题,区块链技术可以很好的帮助他们。 链集市 · 让区块链落地更简单 《区块链行业观察》专栏·第 31 篇 作者丨Shams Rahman 图片丨来源于网络 作者介绍:本文作者为Shams Rahman教授,是RMIT大学商业IT和物流学院的供应链管理教授、研究与创新部门副主任。本文中文版本由链集市团队编译整理,英文版权归原作者所有,中文转载请联系编译。 新冠肺炎疫情的爆发

CECBC的博客 626

Windows下使用Flex入门

LEX是UNIX的工具,因此我们需要使用FLEX代替,使得在windows下使用; 配对: LEX和YACCFLEX和BISONJFLEX和JavaCUP LEX是词法分析器,主要作用类似于扫描器,输入为源代码(当然我们现在写的示例不一定是源代码),输出为词法单元(泛化的东西,比如1,2,3都可以被称为NUM); 当然中间匹配的过程很复杂,比如匹配正则表达式,并输出;使用LEX就不需要...

mmdev 554

别再手动折腾了!PICO Unity SDK 一键配置开发环境保姆级教程(含PDC串流调试)

本文详细介绍了PICO Unity SDK的一键配置功能,帮助开发者快速搭建VR开发环境。通过自动化配置流程,大幅减少手动设置时间,提升开发效率。文章还涵盖了PDC串流调试技巧和常见问题解决方案,是PICO VR开发的实用指南。

weixin_30335575的博客 454

c语言不是内部或外部命令也不是可运行程序,CMD命令:不是内部或者外部命令也不是可运行的程序或批处理文件...

【本文转自:https://blog.youkuaiyun.com/l_mloveforever/article/details/79513681】前言:相信有很多小伙伴都比较喜欢使用Command命令来快速的打开或运行程序,但是有些时候命令提示符会和我们开个小玩笑。今天我就教大家如何管教这个不听话的cmd!场景:看有些大神在命令提示符里输入两句命令就能执行一大串东西,本着学习的态度,先试试再说!没成想出现了...

weixin_34844709的博客 1万+

思维链:让AI更接近人类思维的技术

本文将探讨一种名为“思维链”的技术,它旨在让AI更接近人类思维。文章首先介绍了问题背景与核心概念,接着讲解了算法原理和数学模型,随后阐述了系统分析与架构设计,最后通过项目实战展示了思维链的实际应用,并提供了最佳实践和小结。思维链是一种旨在模拟人类思维过程的技术,它通过构建一系列相互关联的思维方式,实现对复杂问题的分析和解决。思维链算法是一种基于人类思维过程的人工智能算法,它通过构建一系列思维链,实现对问题的分析和解决。智能问答系统是一种常见的人工智能应用,它能够回答用户提出的各种问题。

AI天才研究院 946

深入解析:AndroidManifest.xml 与 Qt 6.7.0 的整合

本文探讨了在Qt 6.7.0和CMake构建Android应用时,AndroidManifest.xml未被正确识别的问题。通过分析CMake配置错误、文件路径问题等可能原因,提出了在CMakeLists.txt中明确指定路径、确保目录结构正确等解决方案,并给出了示例项目演示。文章强调正确配置AndroidManifest.xml对获取权限和应用功能的重要性,为Qt开发者提供了实用的调试建议。

2501_90323865的博客 111

lex&yacc环境配置

lex&yacc环境配置 为了自己不忘记写了这个文章 1.下载就不用说了 2.系统属性下的换件变量 3.就是我经常忘的了。path变量是\usr\local\lib;\usr\local\wbin 用户变量是 bison_hairy\usr\local\share\bison.hairy bision_simple\usr\local\share\biso

Hi_World_1的专栏 519

大数据领域数据架构:租赁行业数据架构的创新思路

租赁行业作为“资产连接需求”的核心业态,其业务本质围绕**“资产全生命周期”与“风险管控”展开,但传统数据架构因“数据孤岛、实时性缺失、多模态处理能力弱”等痛点,无法支撑精细化运营需求。本文结合大数据技术演进与租赁业务特性,提出“湖仓一体+实时计算+智能分析”**的创新数据架构:通过多源数据融合打破信息壁垒,用实时流处理实现设备故障预警与风险动态感知,以资产主题建模整合全生命周期数据,最终通过机器学习模型实现智能风险预测与决策支持。

软件工程实践的博客 393

在Windows系统中使用vscode配置CMake和win_flex_bison实现LEX和YACC

最近在学校的专业课《编译原理》学习LEX和YACC,在Windows中使用vscode和CMake配置flex&bison

qq_74959300的博客 1071

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

小白说编译原理lex和yacc环境配置-多图

转自:http://blog.youkuaiyun.com/lpstudy/article/details/51330063 lex和yacc的使用很简单,但环境配置却是各种问题,本章说明lex和yacc在windows下的环境配置。 软件需求: 系统 win7-64位(win7-32, win8, win10全部通过) c++编译器: vs2010(2008,2013,2015也全部通...

weixin_30294295的博客 895

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

VC与YACC、LEX集成

在这里,将介绍由英国Bumble-Bee Software公司生产的Windows环境下的YACC和LEX集成环境Parser Generator。Parser Generator是Windows下YACC和LEX的实现。它包括一个图形用户界面,同时包括YACC和Lex两个版本,分别叫做AYACC和Alex。Parser Generator非常适合于与VC++集成。    在安装了Par

余璜的技术博客 4263

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

手把手教你win10下lex与yacc的安装

步骤1:下载UnxUtils 官网下载:https://sourceforge.net/projects/unxutils/ 步骤2:解压压缩包 选择位置,解压,记住路径。 步骤3:配置环境 右击此电脑,选择属性,点击高级系统设置 点击环境变量 新建两个变量和值 变量:bison_hairy 值:你的路径\UnxUtils\usr\local\share\bison...

wang_yr的博客 1万+

Windows10安装postgresql-12源码

Windows10安装postgresql-12源码,内附各种问题及解决办法。

fufufunny的博客 1658

【原创】Wireshark2.0.1在VS2013编译实战

1 环境 Microsoft Visual Studio 2013 Cygwin2.873 Python 2.7 Wireshark2.0.1 QT5.5.1 2 安装Microsoft Visual Studio 正常下载,全部安装。 3 安装Cygwin 3.1 下载 http://cygwin.com/install.html 3.2 离线安装(已有离线安装包...

weixin_34419321的博客 371

CMD提示不是内部或外部命令,也不是可运行的程序或批处理文件的解决方法

CMD提示不是内部或外部命令,也不是可运行的程序或批处理文件的解决方法 0.Windows中的环境变量 环境变量(Environment Variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数,如:临时文件夹位置和系统文件夹位置等。环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。例如Windows 和DOS 操作系统中的path 环境变量,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到pa

nako1999的博客 8万+

图文详解win10/8.1/7系统cmd命令提示符出现“不是内部或外部命令,也不是可运行的程序或批处理文件”

声明下:本教程支持win10、win8.1/8、win7、winxp等windows桌面系统。 首先我们需要打开系统的环境变量,那么在哪里能找到环境变量呢?当然是在系统属性里了。 tips:按下win+R组合键打开“运行”,然后输入sysdm.cpl 回车即可快速打开“系统属性”,记住哦,这是一个快捷打开系统属性的小技巧哦,你可以直接拿去装13哟! 打开系统属性后,切换至“高级”

cly609的博客 7万+

编译原理——Lex和yacc的安装

Lex和yacc的安装 Linux用户 Lex和Yacc可以直接从终端安装,命令: apt install flex bison 部分系统可能还需要手动安装 gcc 和 make 等工具,请自行测试。 安装完成后,在终端输入以下命令,若可以正确显示出版本号,则安装成功。 gcc --version lex --version yacc --version 如图所示:(图片来源网络)...

budding0828 1万+

XXX不是内部或外部命令,也不是可运行的程序或批处理文件的解决

XXX不是内部或外部命令,也不是可运行的程序或批处理文件的解决 通常我们都需要将某些工具添加到环境变量Path,以便在任意工作目录下都能调用。如果设置环境变量的时候出现了问题,就会显示“XXX不是内部或外部命令,也不是可运行的程序或批处理文件”。 绝大多数情况是环境变量配置出错,或者是没有重启,环境变量没有刷新导致的。但今天我遇到一个奇怪的问题。 在配置Maven的时候,我通过文件夹属性复制了程序的主目录并在环境变量中配置: 表面看并没有什么问题,通过编辑文本查看也没有什么问题: 但如果运行: 非常让

梦幻天空 1万+

windows下,‘cmake‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。

一、问题描述。 windows下进行cmake时报错:'cmake' 不是内部或外部命令,也不是可运行的程序 或批处理文件。 二、问题分析。 缺少工具cmake。 三、解决方案。 安装cmake。网址:Download | CMake 安装cmake时,选择添加环境变量。 ...

寞水 1万+

yacc与lex的安装

yacc与lex的安装。

qq_37464479的博客 1078
上一篇: 微观经济的一些概念
下一篇: 编码的一些概念
bedusing
博客等级 码龄17年 5粉丝 10原创
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值