1 / 51
文档名称:

TINY部分源码分析报告.doc

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

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

分享

预览

TINY部分源码分析报告.doc

上传人:916581885 2021/11/25 文件大小:2.64 MB

下载得到文件列表

TINY部分源码分析报告.doc

相关文档

文档介绍

文档介绍:TINY部分源码分析报告
LT
TINY源码分析
一、文件概述
: 主函数
:全局定义的文件
: 词法分析
:语法分析
:构造树
:符号表
:生成"汇编代码"
:这个只是用来把分析过程输出到屏幕的.
二、各个文件的分析
:
主要有三个FILE*句柄:
source--源代码文件。
listing--显示分析过程的文件,这里重定向到stdout。
code--目标汇编代码文件。
从该文件中可知程序运行的流程:
检查参数正确否( filename)->构造语法树(调用parse函数)->根据语法树生成代码(调用codeGen函数,该函数又调用cGen函数。
:
定义了关键字个数8个。
定义了关键字,运算符等内容的枚举值。
定义了语句类型的枚举值,这个决定树的结点。
这两个文件主要是关于语法树的创建和输出

主要有这么几个函数:
static int getNextChar(void);
static void ungetNextChar(void);
static TokenType reservedLookup (char * s);
TokenType getToken(void);
reservedLookup函数是查找关键字的,在符号表中找。这里还定义了一个保存关键字的结构:
static struct
{ char* str;
TokenType tok;
} reservedWords[MAXRESERVED]
=
{{"if",IF},{"then",THEN},{"else",ELSE},{"end",END},
{"repeat",REPEAT},{"until",UNTIL},{"read",READ},
{"write",WRITE}};
最重要的是getToken(void)函数。这个相当于lex的功能,进行词法分析。也就是一个DFA,switch后面跟了一堆的case。
其中getNextChar(void)函数的思路,以下列出:
static int getNextChar(void)
{
if (!(linepos < bufsize))
{
lineno++;
if (fgets(lineBuf,BUFLEN-1,source))
{
if (EchoSource) fprintf(listing,"%4d: %s",lineno,lineBuf);
bufsize = strlen(lineBuf);
linepos = 0;
return lineBuf[linepos++];
}
else
{
EOF_flag = TRUE;
return EOF;
}
}
else return lineBuf[linepos++];
}

有这么几个函数:
TreeNode * parse(void)
static TreeNode * stmt_sequence(void);
static TreeNode * statement(void);
static TreeNode * if_stmt(void);
static TreeNode * repeat_stmt(void);
static TreeNode * assign_stmt(void);
static TreeNode * read_stmt(void);
static TreeNode * write_stmt(void);
static TreeNode * exp(void);
static TreeNode * simple_exp(void);
static TreeNode * term(void);
static TreeNode * factor(void);

最近更新

2025年高中等差数列数学公式 5页

事业单位招录行政职业能力测验言语理解与表达.. 176页

事业单位招录行测言语理解与表达专项强化真题.. 174页

事业单位数量关系习题附答案(考试直接用) 106页

事业单位言语理解与表达习题(考点提分) 178页

云南省公务员考试数量关系专项练习题及答案【.. 104页

云南省公务员考试言语理解与表达专项练习题含.. 174页

云南省昆明市公务员考试常识判断专项练习题附.. 80页

2025年描写风景的周记300字 3页

高二物理粤教版选修3-1第三章1、2节认识磁场 28页

公务员数量关系套题及答案1套 105页

2025年描写雪后美景的美文 4页

公务员考试数量关系专题练习带答案(实用) 106页

2025年描写金秋九月优美诗句 12页

公务员考试行测备考数量关系专项训练题及一套.. 107页

2025年描写谷雨经典古诗 7页

公务员考试行测常识判断易错题完整答案 79页

2025年描写荷花的散文 17页

公务员考试行测数量关系易错题word 105页

公务员考试行测数量关系练习题及参考答案(新.. 108页

公务员考试行测真题(甲级、常识判断)及答案(.. 79页

2025年描写老师的小升初的英语作文 2页

公务员考试行测真题(甲级、言语理解与表达)附.. 174页

公务员考试行测真题之常识判断部分题库(预热.. 78页

公务员考试行测真题之言语理解与表达部分题库.. 175页

基于神经网络的道路通行时间预估方法的设计与.. 3页

公务员考试行测言语理解与表达易错题(含答案.. 176页

公务员考试言语理解与表达练习题及参考答案(.. 177页

2024年安置房买卖合同精编版(二篇) 5页

《父母课堂》案例教学教案——父母才是孩子的.. 5页