- 3
- 0
- 约2.81千字
- 约 32页
- 2023-08-16 发布于江苏
- 举报
一、实验任务
二、实验介绍
1、实验目的
2、词法分析器的设计
3、语法分析器的设计
4、程序设计举例;一、实验任务;2、任务分配;二、实验介绍;2、词法分析器的设计;1)构造TINY语言的保留字表(共有8个)
a、数据结构:
define maxReservered=8/*保留字的数*/ static struct{
char *str; tokentype tok;
}
reservedWords[maxReservered]={{“if”,IF},{“then THEN},{“else”,ELSE},{“repeat”,REPEAT},{“unti
l”,UNTIL},{“read”,READ},{“write”,WRITE},{“
end”,END};;b、T I N Y对保留字的识别是通过首先将它们看作是标识符,之后再在保留字表中查找它们是否是保留字。;2)构造标记集合;3)构造DFA状态集合、实现取词操作;根据DFA可以构造出DFA状态集合,主要用来在程序中实现状态的转换
typedef enum;4)构造TOKEN的数据结构;5)词法分析的扫描过程的实现; 扫描程序还需总地计算出每个记号的特性(如果有的话),在 T I N Y扫描程序中,所要计算的唯一特性是词法或是被识别的记号的串值,它位于全局变量t o k e n S t r i n g之中。这个变量在g e t T o k e n函数中就得到,一同被返回,它们的定义是extern char tokenstring[maxtokenlen+1],maxtokeknlen 是TOKEN的最大度。
由g e t T o k e n过程还要完成的额外的工作如下:由子过程r e s e r v e d L o o k u p完成位于由g e t T o k e n识别的标识符之后的保留字的查找, c u r r e n t T o k e n的值也随之改变,如果是保留字则赋予保留字标记,否则赋予标识符标记。。
(currenttoken是当前标记的TOKEN值);3、语法分析器的设计;2)分析过程;3)TINY编译器的语法树结构;a、现在需要将语法树结构的描述用图形表示出来在的子树由点线和三角形表示)。则该图如下:;b、从TINY语言的文法可以看出T I N Y有两种基本的结构类 型:语句和表达式。语句共有5类(i f语句、r e p e a t语句、a s s i n语句、r e a d语句和w r i t e语句),表达式共有3类(算符表达式、常量表达式和标识符表达式)。因此,语法树节点首先按照它是语 句还是表达式来分类,接着根据语句或表达式的种类进行再次分类。树节点最大可有3个孩子的结构(仅在带有e l s e部分的i f语句中才需要它们)。必须将树节点中的属性保留如下(除了前面所提到过 的域之外):每一??表达式节点都需要一个特殊的属性。常数节点 需要它所代表的整型常数的域;标识符节点应包括了标识符名称的 域;而算符节点则需要包括了算符名称的域。语句节点通常不需要 属性(除了它们的节点类型之外)。但为了简便起见,在a s s i g n语句和r e a d语句中,却要保留在语句节点本身中。还要记录l i n e n o,它允许在转换的以后步骤中出现错误时能够打印源代码行数。;C、一个T I N Y语法树节点的C声明
typedef enum {StmtK,ExpK}NodeKind;/*语法树结点是语句还是表达式;*/
typedef enum {IfK,RepeatK,AssignK,ReadK,WriteK}Stmtkind;语句共有5类:i f语句、r e p e a t语句、a s s i g n语句、r e a d语句和w r i t e语句*/
typedef enum {OpK,ConstK,IdK} ExpKind; /*表达式共有3类
(算符表达式、常量表达式和标识符表达式)*/
#define MAXCHILEREN 3 ;/* 树节点最大可有3个孩子的结构
(仅在带有e l s e部分的i f语句中才需要它们)*/;typedef struct treeNode{
struct treeNode * child[MAXCHILDREN];//孩子结点; struct treeNode * sibling;//兄弟结点;
int lineno;//为了错误的处理,显示错误的行号 NodeKind nodekind;//结点的类型
union {
StmtKind stmt; Expkind exp};//结点的类型;
union {TokenType OP; /*算符节点需要包括了算符名称的域*/
int val;/* 常数节点需要它所代
您可能关注的文档
- 商品知识培训玩具类.pptx
- 小学部编版语文五年级下册第一单元《口语交际:走进他们的童年岁月》说课课件.pptx
- 社区获得性肺炎与医院获得性肺炎指南课件.pptx
- 【新能源汽车研报】新能源车行业研究:电动车方兴未艾,智能化重塑价值-20220419-富途证券_市场.pptx
- 《五大质量工具详解及运用案例 APQP FMEA PPAP 》读书笔记思维导图.pptx
- 高考地理大一轮复习 第4章工业地域的形成与发展 新人教版必修2(12页).pptx
- 模块七 AD和 DA转换器的应用.pptx
- 冲压件结构设计.pptx
- 全国高考生物大一轮复习现代生物科技专题胚胎工程.pptx
- 秀思诉美国爱普森公司高科技监视.PPT.pptx
- 2026年台州职业技术学院单招职业技能考试题库及答案详解(典优).docx
- 2026年台州职业技术学院单招职业技能考试题库及答案详解(名师系列).docx
- 2026年台州职业技术学院单招职业技能考试题库及参考答案详解一套.docx
- 2026年台州职业技术学院单招职业技能考试题库及参考答案详解(最新).docx
- 2026年台州职业技术学院单招职业技能考试题库及答案详解(全优).docx
- 2026年台州职业技术学院单招职业技能考试题库及参考答案详解.docx
- 2026年台州职业技术学院单招职业技能考试题库及参考答案详解1套.docx
- 2026年台州职业技术学院单招职业技能考试题库及答案详解1套.docx
- 初三数学中考压轴题考点题型与解题方法.docx
- 2026年台州职业技术学院单招职业技能考试题库及一套参考答案详解.docx
原创力文档

文档评论(0)