编泽原理 词法分析 墨标识符的识别 慧常数的识别 慧算符和界符的识别 第引
编译原理 第11页 词法分析 标识符的识别 常数的识别 算符和界符的识别
编泽原理 词法分析 状态转换图 墨转换图是一张有限方向图。在状态转换图中,结点 代表状态,用圆圈表示。状态之间用箭弧连结。箭 弧上的标记(字符)代表在射出结点(即箭弧始结 点)状态下可能出现的输入字符或字符类。 一张转换图只包含有限个状态(即有限个结点), 其中有一个被认为是初态,而且实际上至少要有一 个终态(用双圈表示)。一个状态转换图可用于识 别(或接受)一定的字符串。 第2页
编译原理 第12页 词法分析 状态转换图 转换图是一张有限方向图。在状态转换图中,结点 代表状态,用圆圈表示。状态之间用箭弧连结。箭 弧上的标记(字符)代表在射出结点(即箭弧始结 点)状态下可能出现的输入字符或字符类。 一张转换图只包含有限个状态(即有限个结点), 其中有一个被认为是初态,而且实际上至少要有一 个终态(用双圈表示)。一个状态转换图可用于识 别(或接受)一定的字符串
编泽原理 词法分析 字母或 数字 2 字母 其它 0 2 3 数字 0 数字 其它 2 第3列
编译原理 第13页 词法分析 1 2 3 X Y 0 1 2 字母 字母或 数字 其它 0 1 2 数字 数字 其它
编译原理 词法分析 E或D 数字 数字 数字 数字 E或D +或 数字 其它 0 3 4 5 数字 数字 6 其它 第14页
编译原理 第14页 词法分析 0 6 1 2 3 4 5 7 . 数字 数字 数字 数字 数字 数字 数字 E或D E或D +或- 其它 * 其它
编泽原理 词法分析 状态转换图的实现 (1)ch 字符变量,存放最新读进的源程序字符。 (2)strToken 字符数组,存放构成单词符号的字符串。 (3)GetChar 子程序过程,将下一输入字符读到ch中,搜 索指示器前移一字符位置。 (4)GetBC 子程序讨程.检杳ch中的字符是否为空白。 若是,则调用GetChar]直至ch中进入一个非空白字符 (5)Concat 子程序过程,将ch中的字符连接到strToken 之后。 第5
编译原理 第15页 词法分析 状态转换图的实现 (1) ch 字符变量,存放最新读进的源程序字符。 (2) strToken 字符数组,存放构成单词符号的字符串。 (3) GetChar 子程序过程,将下一输入字符读到ch中,搜 索指示器前移一字符位置。 (4) GetBC 子程序讨程.检杳ch中的字符是否为空白。 若是,则调用GetChar直至ch中进入一个非空白字符 (5) Concat 子程序过程,将ch中的字符连接到strToken 之后