基于DOM/AST技术的C语言解析器设计

被引量 : 5次 | 上传用户:luckkycaroll
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
解析C语言中的语句是编译C语言源文件和头文件必须首先实现的过程。如何正确的解析C语言语句,对后面的编译工作和源代码的风格化都至关重要。按照编译原理的方法,在设计的过程中,本文先将C源程序中的字符流,从左至右逐个将字符进行符号化,产生一个个词法单元(token),作为语法分析的分析单元,这个过程是设计词法分析器的过程。最后采用DOM/AST技术把这些词法单元处理成一棵抽象语法树(AST),这个过程是语法分析的过程。也就是把C语言的语句解析分为词法和语法分析两级。文档对象模型(DOM)是为了实现HTML和XML文档而开发的API。它是万维网联盟(W3C)用与平台无关的方式定义的一个标准,是以层次结构组织的节点或信息片断的集合。而抽象语法树(AST)是用来描述用特定语言写的源代码的抽象或是简单语法结构的。为了给第三方提供简单快速访问C语言文件的接口,本文结合DOM和AST技术,创新地提出了一个DOM/AST技术概念,同时结合编译原理中的一些主要理论,提出并设计了一个通用的C语言的解析器,论文的主要工作包括:1.介绍了解析器的概念,阐述了解析器在编译器中的位置,创新地提出了DOM/AST技术的概念,同时还介绍了符号表、词法分析和语法分析的概念。2.在词法设计中,阐述了词法分析中的词法单元、模式和词素的概念,分析了一种在词法分析阶段中需要用到的输入缓冲技术以及词法识别算法,包括:词法单元的识别算法、解决词法错误的算法以及如何识别常量算法,在本文中的识别算法中,还重点分析了一种可以快速识别关键字的AC算法。3.在语法设计中,先介绍了文法的概念以及消除语法二义性的技术,接着简单地讨论了下C语法错误的本质以及错误恢复的一般策略,最后重点分析了自顶向下和自底向上的语法分析技术。在自顶向下的语法分析中,重点讨论了递归下降、预测分析和LL(1)语法分析技术,而在自底向上的语法分析中,先简要的介绍了移入—归约分析技术,最后重点的分析了如何构建一个LR(1)语法分析器。
其他文献
国有企业特殊社会责任探讨近年来,企业社会责任已经成为一个全球性的热门话题,关于企业社会责任的理论研究至今也有一百多年的历史了。但对这一问题的研究至今还十分具有挑战
本文首先对会计学界具有代表性的关于管理会计本质属性的两大观点进行了回顾与评述,认为管理会计本质是一个通过提供经营管理信息提升企业价值的会计信息系统,价值提升是渗透
目的:进一步了解象山县围产儿死亡率、死亡原因及相关因素,为提高围产保健质量制定干预措施。方法:根据浙江省围产儿死亡监测方案对各分娩单位上报的313例围产儿死亡个案进行
本文基于社会支持、应对方式和主观幸福感的相关理论,构建了三者之间关系的框架,以武汉、荆门、深圳三个城市的离退休员工为研究对象,实证研究了社会支持对离退休员工主观幸
回顾了政府干预的重要文献,解释了政府干预的两种不同观点。分析了中国平安投资富通集团股权的案例,对相关重要财务数据进行了投资前后的对比分析,指出政府干预导致的政治风
目的:了解全市产科服务现状,为政府出台应对生育高峰的决策提供依据。方法:2012年6月通过统一问卷对全市所有助产机构进行现况调查,结合专题现场调研。结果:全市2012年1~5月分
在低碳经济的时代背景下,乡村旅游作为农村经济中的“无烟工业”,是农村经济中的低碳产业,发展持续升温。乡村旅游在蓬勃发展的同时,也出现很多问题,迫切需要理论的指导。本
信用卡以其“先享受后付费”的特点,已经成为现代经济社会交易不可或缺的支付方式,同时也在一定程度上促进了消费,有利于经济繁荣。但人民在享受信用卡便利的同时也面临越来
近年来,随着交易中消费者影响力的不断增强,对消费者权力的研究迫切需要深入和丰富。本研究借鉴以往消费者权力理论,利用扎根理论方法进一步解构权力的维度,并在此基础之上编
目前我国的环境保护工作虽然取得积极进展,但环境形势依然严峻。因此许多火力发电厂积极响应国家的节能环保政策,生产了许多烟气脱硫除尘装置。但是,就脱硫除尘系统来说,其控