云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > C-Minus词法分析报告四川大学编译原理

C-Minus词法分析报告四川大学编译原理

  • 62 次阅读
  • 3 次下载
  • 2025/5/4 13:20:06

实用标准

四 川 大 学 计 算 机 学 院、软 件 学 院

实 验 报 告

学号 姓名: 专业:

课程名称 编译原理课程设计 实验课时 4 实验项目 手工构造C-Minus语言的词法分析器 实验时间 1. 熟悉C-Minus语言的词法特点,构造C-Minus的DFA; 2. 设计数据类型、数据结构 3. 通过完成词法分析程序,巩固词法分析知识 注释:/*注释*/ 关键字:if else int return void while 实验目的、意义 语言特点 正则表达式 专用符号:+ - * / <<= >>= == != = ; , [ ] ( ) { } ID = letter+ NUM = digit+ letter = [a-z,A-Z] digit = [0-9] 文案大全

实用标准

DFA //定义数据类型TokenType typedef enum {ENDFILE,ERROR, IF,ELSE,INT,RETURN,VOID,WHILE, ID,NUM, ASSIGN,EQ,LT,LE,GT,GE,NEQ,PLUS,MINUS,TIMES,OVER,LPAREN, 数据类型 数据结构设计 RPAREN,LBRACKET,RBRACKET,LBRACE,RBRACE,COMMA,SEMI } TokenType; //定义状态类型 typedef enum { START,LBUFFER,RBUFFER,INCOMMENT,INNUM,INID,INEQ,INLE,INGE,INNEQ,DONE }StateType; //结构定义 文案大全

实用标准

static struct { char *str; TokenType tok; } reservedWords[MAXRESERVED] ={{\},{\双层CASE实现代码映射,外层CASE关注状态变换,内层CASE关注输入字符。 外层CASE一共有12个状态:START,LBUFFER,RBUFFER,INCOMMENT,INNUM,INID,INEQ,INLE,INGE,INNEQ,DONE, default; 内层CASE判断getNextChar()获取的下一个字符使当前状态转换为其他状态。 TokenType getToken(void) { int tokenStringIndex=0; 关键代码分析 case START:{ TokenType currentToken; StateType state=START; int save; //是否保存到tokenString while(state!=DONE) { int c=getNextChar(); save=TRUE; switch(state) { DFA代码映射方法 文案大全

实用标准

if(isdigit(c)) state=INNUM; else if(isalpha(c)) state=INID; else if((c==' ') || (c=='\\t') || (c=='\\n')) save=FALSE; else if(c=='=') state=INEQ; else if(c=='<') state=INLE; else if(c=='>') state=INGE; else if(c=='!') state=INNEQ; else if(c=='/') state=LBUFFER; else { state=DONE; switch(c) { case EOF: save=FALSE; 文案大全

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

实用标准 四 川 大 学 计 算 机 学 院、软 件 学 院 实 验 报 告 学号 姓名: 专业: 课程名称 编译原理课程设计 实验课时 4 实验项目 手工构造C-Minus语言的词法分析器 实验时间 1. 熟悉C-Minus语言的词法特点,构造C-Minus的DFA; 2. 设计数据类型、数据结构 3. 通过完成词法分析程序,巩固词法分析知识 注释:/*注释*/ 关键字:if else int return void while 实验目的、意义 语言特点 正则表达式 专用符号:+ - * / <>= == != = ; , [ ] ( ) { } ID = letter+ NUM = digit+ letter = [a-z,A-Z] digit = [0-9]

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com