- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
词法的分析
词法的分析
本程序实现一个分析C语言的词法分析+语法分析。
注意:
1.文法简略,没有实现的部分,可以在此文法的基础上进行扩充,本程序的采用自顶向下的LL(1)文法。
2.可以自动实现求First 集和 Follow 集。
3.处终结符外(有些硬编码的成分),终结符的文法可以自定义,也就是说读者可以自定义文法。
4.为方便理解,C语言的文法描述写成中文。
5.程序将词法分析和语法分析结合起来,词法分析的结果作为语法分析的输入。
6.最终结果在控制台显示的有:词法分析、First集、Follow集、Select集,在preciateResult.txt 中写入了语法分析结果,在preciateTable.txt 中写入了预测分析表。
7.文法的词素之间必须有空格分开。
项目结构如下:
文法如下:
wenfa.txt:
[plain]
函数定义 - 修饰词闭包 类型 变量 ( 参数声明 ) { 函数块 }
修饰词闭包 - 修饰词 修饰词闭包 | $
修饰词 - describe
类型 - type 取地址
取地址 - 星号闭包
星号闭包 - 星号 星号闭包 | $
星号 - *
变量 - 标志符 数组下标
标志符 - id
数组下标 - [ 因式 ] | $
因式 - ( 表达式 ) | 变量 | 数字
数字 - digit
表达式 - 因子 项
因子 - 因式 因式递归
因式递归 - * 因式 因式递归 | / 因式 因式递归 | $
项 - + 因子 项 | - 因子 项 | $
参数声明 - 声明 声明闭包 | $
声明 - 修饰词闭包 类型 变量 赋初值
赋初值 - = 右值 | $
右值 - 表达式 | { 多个数据 }
多个数据 - 数字 数字闭包
数字闭包 - , 数字 数字闭包 | $
声明闭包 - , 声明 声明闭包 | $
函数块 - 声明语句闭包 函数块闭包
声明语句闭包 - 声明语句 声明语句闭包 | $
声明语句 - 声明 ;
函数块闭包 - 赋值函数 函数块闭包 | for循环 函数块闭包 | 条件语句 函数块闭包 | 函数返回 函数块闭包 | $
赋值函数 - 变量 赋值或函数调用
赋值或函数调用 - = 右值 ; | ( 参数列表 ) ;
参数列表 - 参数 参数闭包
参数闭包 - , 参数 参数闭包 | $
参数 - 标志符 | 数字 | 字符串
字符串 - string
for循环 - for ( 赋值函数 逻辑表达式 ; 后缀表达式 ) { 函数块 }
逻辑表达式 - 表达式 逻辑运算符 表达式
逻辑运算符 - | | == | !=
后缀表达式 - 变量 后缀运算符
后缀运算符 - ++ | --
条件语句 - if ( 逻辑表达式 ) { 函数块 } 否则语句
否则语句 - else { 函数块 } | $
函数返回 - return 因式 ;
词法分析头文件:
LexAnalysis.h
[cpp]
//LexAnalysis.h
#ifndef _LEXANALYSIS_H
#define _LEXANALYSIS_H
//关键字
#define AUTO 1
#define BREAK 2
#define CASE 3
#define CHAR 4
#define CONST 5
#define CONTINUE 6
#define DEFAULT 7
#define DO 8
#define DOUBLE 9
#define ELSE 10
#define ENUM 11
#define EXTERN 12
#define FLOAT 13
#define FOR 14
#define GOTO 15
#define IF 16
#define INT 17
#define LONG 18
#define REGISTER 19
#define RETURN 20
#define SHORT 21
#define SIGNED 22
#define SIZEOF 23
#define STATIC 24
#define STRUCT 25
#define SWITCH 26
#define TYPEDEF 27
#define UNION 28
#define UNSIGNED 29
#define VOID 30
#define VOLATILE 31
#defi
您可能关注的文档
最近下载
- 人教版(2024)七年级下册数学第七章 相交线与平行线 大单元教学设计 .pdf VIP
- 研究生英语综合教程(上)熊海虹 课文翻译及课后习题答案.pdf VIP
- 监理大纲光伏电站工程.pdf VIP
- GB_T 31497-2024 信息技术 安全技术 信息安全管理 监视、测量、分析和评价.pdf VIP
- 无人机法律法规与安全飞行 第2版 第二章 空气空间法律制度.pptx VIP
- 艺术概论全套配套课件孙丽华11 第二主题 话题7 文学漫步.ppt VIP
- 艺术概论全套配套课件孙丽华10 第二主题 话题6 舞之神韵.ppt VIP
- 水泥混凝土路面施工及验收规范.pdf VIP
- 艺术概论全套配套课件孙丽华9 第二主题 话题5 音乐之声.ppt VIP
- 《岳阳楼记》文言知识点梳理.doc VIP
文档评论(0)