小c的词摆分析 TKEN定义 二元组(单词种类,单词自身值) ●标识符的 Token:(Sid,标识符)如(Sid,x) ●整常数的 Token:(SinC,整常数)如( Into,5) ●实常数的 Token:( Srealo,实常数)如( SrealC,0.5) ●保留字的 Token:( Begin,),(Send,),(Svar,) ●符号词的 Token:( Splus, Smut,-),( SLParen,) ●● ●换行符的 Token:( Sline,)
Micro的词法分析 TOKEN定义: 二元组(单词种类,单词自身值) ⚫ 标识符的Token: ($id,标识符)如($id,x) ⚫ 整常数的Token: ($intC,整常数)如($intC,5) ⚫ 实常数的Token: ($realC,实常数)如($realC,0.5) ⚫ 保留字的Token: ($begin,-),($end,-),($var,-) … ⚫ 符号词的Token: ($plus,-),($mult,-),($LParen,-)… ⚫ 换行符的Token: ($line,-)
小cc的词法分析 词法分析过程: 读当前字符流,直至文件结東。如果是: (1)标识符时判断是保留字还是变量标识 符,构造 Token表示 (2)数字时判断是整型还是实型,构造 Token表示 (3)构造其它合法的符号的 Token表示 (4)遇到非法符号则报错
Micro的词法分析 ⚫ 词法分析过程: 读当前字符流,直至文件结束。如果是: (1)标识符时判断是保留字还是变量标识 符,构造Token表示 (2)数字时判断是整型还是实型,构造 Token表示 (3)构造其它合法的符号的Token表示 (4)遇到非法符号则报错
Micro的词法分析 bE国四回园囚区国 rea vIa e a X 0 5 Z x1+515 wak区团图EE aa园v国E园国园国区 图2.2.1源程序在文件中的表示
Micro的词法分析 ; ; l l a a e z 1 e a △ x 1 a r b i n △ w r i t e z 1 : = x 1 + 5 5 ; x = 0 . 5 1 e a d ( 1 ) ; z = ( z 1 5 . ) ; r 1 n d . # z 1 x 图2.2.1 源程序在文件中的表示 e g v r r v △ : r : : ; + 5 V 1 + e :
小co的词法分析 (Begin(Svar,(Sid, x1)(Scolon(Sreal($semi($I ine,(Svar. ($id,z1)($ colon (Sreal(semi(I ine,(sid,x1)Sassig (RealtY 0.5) (Semi($I ine,(id, z1)(Sassig(Sid, x1)(Sp lus(Into seml y (S I ine,(SwriteSLparen(sid, z1)(Sp lus(SrealCSRparen(Ssem i 5.5) (SI ine,(Sread SLparen(sid, x1)$Rparen($semi($I ine,(Sid, z1) (Sassig(Sid, z1)(Sp lus(id, x1)(Send($stop # 图2.2.2词法分析后的T0KEN表示
Micro的词法分析 ($id,z1) ($begin ,-) ($line, -) ($line, -) ($semi ,-) ($assig ,-) ($id,x1) ($semi ,-) ($semi ,-) ($real ,-) ($real ,-) ($colon ,-) ($line, -) ($line, -) ($var, -) ($var, -) $assig ($realC, 0.5) ($colon ,-) ($id,x1) ($line, -) ($line, -) ($semi, -) ($intC, 55) ($plus ,-) ($assig ,-) ($id,z1) ($id,x1) $Lparen ,-) ($read ,-) ($semi, -) ($realC ,5.5) $Rparen ,-) ($plus ,-) ($write ($id,z1) ,-) $Lparen ,-) ($stop # ,-) ($end ,-) ($plus ($id,x1) ,-) ($id,z1) ($semi ($id,z1) ,-) ($id,x1) $Rparen ,-) 图2.2.2 词法分析后的TOKEN表示
Micro的语法分析 ●输入:是词法分析后所得的 Token序列。 ●功能:进行语法检查。构造语法短语的 表示形式(语法树 ●说明:语法分析只用到单词的 Token表 示,并不改变单词的T。ken表示
Micro的语法分析 ⚫ 输入:是词法分析后所得的Token序列。 ⚫ 功能:进行语法检查。构造语法短语的 表示形式(语法树) ⚫ 说明:语法分析只用到单词的Token表 示,并不改变单词的Token表示