欢迎访问玛尊真服务平台,本站唯一网址:www.isodyi.com,未经明确书面许可,任何人不得擅自使用“玛尊真”等商标。
玛尊真ISO认证服务公司

LinuxBison语义类型怎么使用

本篇内容主要讲解“Linux Bison语义类型怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux Bison语义类型怎么使用”吧!

成都创新互联公司从2013年成立,先为苏尼特右等服务建站,苏尼特右等地企业,进行企业商务咨询服务。为苏尼特右企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

简介
正如UNIX®开发人员所了解的那样,Flex和Linux Bison的功能非常强大,非常适合开发词法和语法解析器,尤其是语言编译器和解释器。

本文介绍了更高级的一些主题:用来在编译器和解释器中更好地实现错误处理能力的特性和技术。为了展示这些技术,我使用了一个示例程序ccalc,它基于Bison手册中的计算机实现了一个增强的计算器。我们可以从本文后面下载一节下载ccalc和相关文件。

增强包括使用了很多变量。在ccalc中,变量是通过在初始化中***使用时定义的,例如a=3。如果变量是在初始化之前使用的,那就会产生语义错误,使用值为0来创建这个变量,并打印一条消息。

示例源文件

示例源代码中包括7个文件:
ccalc.c:主程序,以及一些进行输入、输出和错误处理的函数ccalc.h:包括了对所有模块的定义cmath.c:数学函数parse.y:Bison使用的输入文法lex.l:Flex的输入makefile:简单的makefiledefs.txt:示例输入文件这个程序接收两个参数:
-debug:产生调试输出filename:输入文件名;默认值为defs.txtBison使用的设置为了处理变量名和实际值,Bison的语义类型必须进行增强:


清单1.更好的Linux Bison语义类型

/*generateinclude-filewithsymbolsandtypes*/  %defines  /*amoreadvancedsemantictype*/  %union{  doublevalue;  char*string;  }

有些文法规则可以产生特定的语义类型,这需要像清单2中一样对Bison进行声明。要获得一个可移植性更好的Bison文法版本,我们需要重新定义+-*/()符号。下面这个例子没有使用左括号(,而是使用了结束符符号LBRACE,这是由词法分析提供的。另外,操作符的优先顺序也必须进行声明。

对于Flex来说,所生成的代码通常都依赖于平台所使用的代码页(codepage)。尽管我们可以使用其他代码页,但是必须要对输入进行转换。因此与Bison代码不同,Flex代码尚不能进行移植。

到此,相信大家对“Linux Bison语义类型怎么使用”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

上一篇:没有了
快速申请办理
称呼: *
电话: *

订单提交后,10分钟内,我们将安排工作人员和您联系!

热点资讯
联系我们
大悟县玛尊真商贸有限公司
电   话:0712-7218610

传   真:0712-7218610

谭经理:18980820575

王主任:135 1821 9792

邮   箱:631063699@qq.com

地   址:湖北省孝感市大悟县城关镇鄂北物流城13栋125号

微信二维码
扫一扫 关注我们
电话:

189-8208-1108

湖北省孝感市大悟县城关镇鄂北物流城13栋125号八戒云创空间-D1-430

ISO体系认证
iso认证
服务体系认证
有机产品认证
OHSAS18001
ITSS认证
信用评级
中国招标企业信用认证
资信等级
重合同守信用
企业信用认证
中国诚信供应商
质量、服务诚信认证
CMMI
CMMI1
CMMI2
CMMI3
CMMI4
CMMI5
系统集成
系统集成一级
信息系统集成二级
信息系统集成三级
信息系统集成四级
涉密信息系统集成
资质许可证
生产许可证认证
GS认证
CCC认证
中国节能认证
十环认证
知识产权

Copyright © 2002-2025

大悟县玛尊真商贸有限公司 版权所有

备案/许可证号:鄂ICP备2025140345号-7   网站建设创新互联
 
QQ在线咨询
客服咨询
咨询热线
189-8208-1108