您当前的位置:《编译原理》听课笔记:03
《编译原理》听课笔记:03
2.1、微小语言Micro
三种语句:赋值、输入和输出
2.2、Micro的词法分析
词法分析:关于单词的分析,依赖于单词的文法定义,以单词为最小的语义单位
词法分析的任务:把程序的字符串序列转换成单词内部表示序列,即TOKEN序列
源程序在文件中的表示:
TOKEN结构:$+语义
标识符的TOKEN:($id,标识符)
整常数的TOKEN:($intC,整常数)
实常数的TOKEN:($reaC,实常数)
保留字的TOKEN:$begin、$end、$var、$read、$write、$int、$real
符号词的TOKEN:$plus+、$mult*、$Lparen(、$Rparen)、$colon:、$assig:=、$semi
换行的TOKEN:$line
结束符的TOKEN:$stop
Micro词法分析器
最基本的子程序
i、Read(ch):字符读入ch,指针前一一位,若文件结束,报错;
ii、NoBlank(ch):跳过空白字符,将第一个非空字符读到ch中;
iii、Append(name,ch):把字符ch接到字符串name中;
iv、Eof:当输入文件结束时,函数返回值取true;
v、Identifier(name):从输入流把当前标识符的名字读到name中去。在调用是,当前字符一定是字母,且被读到ch中。
Vi、Constant(class,C):从输入流读当前常数,并在class中给出所读常数的类型标志,C中该处常数的二进制数。调用时当前字符一定是数字(在ch中);
vii、Num(ch):数字字符ch对应的二进制数;
viii、isLetter(ch),IsDigit(ch)。
Micro语法分析(主要任务:检查程序是否有语法上的错误)
语法分析所需的TOKEN表结构:词法信息+语法信息
语法分析涉及的符号:
ReadToken(token):吧当前的TOKEN读到token中
BackToken:Token指针回溯一步。
Match(kind,n):token.LH==kind?通过显示错误号n
token.LH:TOKEN的左半部
Token.RH:TOKEN的右半部
收藏状态
收藏本课程的同学
相关课程