c语言词法语法分析器报告,C语言词法分析器和C语言语法分析器编译原理课程设计报告书.doc...

这份报告详细介绍了C语言的词法分析器和语法分析器的实验过程,涵盖了C语言的关键词、符号特点和正则表达式,重点讲解了如何用DFA构建词法分析器,以及编译器中词法分析的工作原理。完成于2019年6月,适合学习编译原理的学生深入理解。
摘要由CSDN通过智能技术生成

《编译原理课程设计》课程报告

题目 C语言词法分析器和C-语言语法分析器

学生姓名

学生学号

指导教师

提交报告时间 2019 年 6 月 8 日

C语言词法分析器

1 实验目的及意义

熟悉C语言词法

掌握构造DFA的过程

掌握利用DFA实现C语言的词法分析器

理解编译器词法分析的工作原理

2 词法特点及正则表达式

2.1词法特点

2.1.1 保留字

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,

2.1.2 符号

+ - * / ++ -- += -= *= < <= > >= == != = ; , ( ) [ ] { } /* */ :

2.2 正则表达式

whitespace = (newline|blank|tab|comment)+

digit=0|..|9

nat=digit+

signedNat=(+|-)?nat

NUM=signedNat(“.”nat)?

letter = a|..|z|A|..|Z

ID = letter(letter|digit|“_”)+

CHAR = 'other+' STRING = “other+”

3 Token定义

3.1 token类型

保留字

auto break case char const continue default do double elseenum extern float for gotoif int long redisterreturnshort signed sizeof static struct switch typedef union unsignedvoid volatile while

特殊符号

+ - * / ++ -- += -= *= < <= > >= == != = ; , ( ) [ ] { } /* */ :

文件结束、错误

EOF ERROR

其它token

NUM ID CHARACTER STRING

typedef

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,OV

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值