1 / 63
文档名称:

c语言词法分析器和c语言语法分析器编译原理课程设计论文正文_大学毕设论文.doc

格式:doc   页数:63页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

c语言词法分析器和c语言语法分析器编译原理课程设计论文正文_大学毕设论文.doc

上传人:麒麟才子 2016/7/7 文件大小:0 KB

下载得到文件列表

c语言词法分析器和c语言语法分析器编译原理课程设计论文正文_大学毕设论文.doc

相关文档

文档介绍

文档介绍:《编译原理课程设计》课程报告题目 C 语言词法分析器和 C- 语言语法分析器学生姓名学生学号指导教师提交报告时间 2019 年6月8日四川大学《编译原理课程设计》学号 20********** 1 C 语言词法分析器 1 实验目的及意义 1. 熟悉 C 语言词法 2. 掌握构造 DFA 的过程 3. 掌握利用 DFA 实现 C 语言的词法分析器 4. 理解编译器词法分析的工作原理 2 词法特点及正则表达式 词法特点 保留字 AUTO, BREAK , CASE , CHAR , CONST , CONTINUE , DEFAULT , DO, DOUBLE , ELSE, ENUM , EXTERN , FLOAT , FOR , GOTO, IF, INT , LONG , REGISTER , RETURN, SHORT , SIGNED , SIZEOF , STATIC , STRUCT , SWITCH , TYPEDEF , UNION , UNSIGNED , VOID, VOLATILE , WHILE, 符号+-*/ ++ -- += -= *=< <=> >= == !==;,()[]{} /* */: 正则表达式 whitespace = (newline|blank|ment)+ digit=0|..|9 nat=digit+ signedNat=(+|-)?nat NUM=signedNat( “.” nat)? letter = a|..|z|A|..|Z ID= letter(letter|digit| “_”)+ CHAR =' other+ ' STRING =“ other+ ”四川大学《编译原理课程设计》学号 20********** 2 3 Token 定义 token 类型保留字 auto break case char const continue default do double else enum extern float for goto if int long redister return short signed sizeof static struct switch typedef union unsigned void volatile while 特殊符号+-*/ ++ -- += -= *= < <= > >= == != =;,()[]{} /* */ : 文件结束、错误 EOF ERROR 其它 token NUM ID CHARACTER STRING tokenType 类型代码 typedef enum { // 错误、结束 ENDFILE , ERROR , // 保留字 AUTO , BREAK , CASE , CHAR , CONST , CONTINUE , DEFAULT , DO , DOUBLE , ELSE , ENUM , EXTERN , FLOAT , FOR , GOTO , IF , INT , LONG , REGISTER , RETURN , SHORT , SIGNED , SIZEOF , STATIC , STRUCT , SWITCH , TYPEDEF , UNION , UNSIGNED , VOID , VOLATILE , WHILE , // 其他 token ID , NUM , CHARACTER , STRING , // 特殊符号// +、-、*、/、++ 、-- 、+= 、-= 、*= 、<、<= 、>、>= 、== 、!= 、=、;、,、(、)、[、]、// {、}、/* 、*/ 、: PLUS , MINUS , TIMES , OVER , SELFPLUS , SELFMINUS , PLUSASSIGN , MINUSASSIGN , TIMESASSIGN , LT , LEQ , GT , GEQ , EQ , NEQ , ASSIGN , SEMI , COMMA , LPAREN , MINUSASSIGN , TIMESASSIGN , LT , LEQ , GT , GEQ , EQ , NEQ , ASSIGN , SEMI , COMMA , LPAREN , RPAREN , LBRACKET , RBRACKET , LCBRACKET , RCBRACKET , LCOMMENT , RCOMMENT , COLON } TokenType ; 四川大学《编译原理课程设计》学号 20********** 3 4 DFA 设计 注释的 DFA 设计注释的 DFA 如下所示,一共分为 5 个状态