3.1.2词法分析器程序的输出p37 功能:输入源程序,输出单词符号,建立自定标 识符表。 n单词符号一般可分为下列五种: 1、标识符 变量名数组名函数名 2、常数 100 3、关键字 C语言main int 4、运算符 +-米/〈〈=>=>=!= 5、界符 ,;(){} 28-二月-23 ☒>6
28-二月-23 6 3.1.2 词法分析器程序的输出 p37 n 功能:输入源程序,输出单词符号,建立自定标 识符表。 n 单词符号一般可分为下列五种: 1、标识符 变量名 数组名 函数名 2、常数 100 3、关键字 C语言main int 4、运算符 + - * / < <= >= > == != 5、界符 ,;( ){ }
单词符号的输出形式p37-38 二元式(单词种别,属性值) n单词种别单词符号特性 n属性值单词符号特性的值 u通常用整数编码,怎样 u一个种别只含一个单词符号,不 分种,怎样编码,主要 需属性值。 取决于处理上的方便。 关键字if(if,-) 例:标识符 ——1 关键字hile(hlie,-) 常数 ——2 u一个种别含多个单词符号,为区 关键字 ——3 别各个单词符号需要属性值。 运算符一一4 u表示时常用常数值、标识符的名 界符-一5 字表示。 变量i(1,指向i的符号表项) 关键字f (3,if) 关键字while(3,whlie.) 28-二月-23 ☒7
28-二月-23 7 单词符号的输出形式 p37-38 二元式(单词种别,属性值) n 单词种别 单词符号特性 u 通常用整数编码,怎样 分种,怎样编码,主要 取决于处理上的方便。 例:标识符——1 常 数——2 关键字——3 运算符——4 界 符——5 n 属性值 单词符号特性的值 u 一个种别只含一个单词符号,不 需属性值。 关键字if(if,_ ) 关键字while(whlie,_ ) u 一个种别含多个单词符号,为区 别各个单词符号需要属性值。 u 表示时常用常数值、标识符的名 字表示。 变量i(1,指向i的符号表项) 关键字 if (3,if) 关键字 while(3,whlie)
例C+代码段及对应的单词符号序列 while (i>=10)i- 单词 输出表示 1 while (3,while) 2( (5, 0 3 i (1, 指向1的符号表项的指针) 4 >= (4,>=) 5 10 (2, 10) 6 ) (5, ) 7i (1,指向的符号表项的指针) 8 一一 (4, -) 9 (5,;) 章节目录 28-二月-23 ☒8
28-二月-23 8 例 C++代码段及对应的单词符号序列 while (i>=10) i- -; 单词 输出表示 1 while (3,while) 2 ( (5,() 3 i (1,指向i的符号表项的指针) 4 >= (4,>=) 5 10 (2,10) 6 ) (5,)) 7 i (1,指向i的符号表项的指针) 8 - - (4,- -) 9 ; (5,;) 章节目录
3.2PL/0词法分析p39 n作为单独一遍考虑。 n输入:输入串放在输入缓冲区数组1ine中。 var X,y; n预处理 u作用剔掉源程序中无实质意义字符。 滤掉空格(空格字符字符串中空格除外)。 滤掉回车符和换行符。 跳过注释(PL/0中没有处理,请补充)。 28-二月-23 ☒D9
28-二月-23 9 3.2 PL/0词法分析 p39 n 作为单独一遍考虑。 n 输入: 输入串放在输入缓冲区 数组line中。 var x,y; n 预处理 u 作用 剔掉源程序中无实质意义字符。 滤掉空格(空格字符 字符串中空格除外)。 滤掉回车符和换行符。 跳过注释(PL/0中没有处理,请补充)
单词符号的识别:超前搜索 起点指示器 while (x=30 y) t 搜索指示器 超前搜索:标识符、常数和一些特殊算符、界符的识 别需要向前扫描一个字符才能被识别出来。 例 x=30*y中常数30的识别。 28-二月-23 ☒10
28-二月-23 10 单词符号的识别:超前搜索 起点指示器 搜索指示器 超前搜索:标识符、常数和一些特殊算符、界符的识 别需要向前扫描一个字符才能被识别出来。 例 x=30*y中常数30的识别。 while (x = 30 * y)