编译原理 C 语言词法分析器构造 学 院: 信 工 班 级: 1 4 0 学 号: ********* * 名: * * * * * * 师: * * 2 0 1 4 年 6 月 1 2 日 一、实验题目: 编 译 原 理 词 法 分 析 二、实验内容: 2.1 主 程 序 设 计 考 虑 : 主 程 序 的 说 明 部 分 为 各 种 表 格 和 变 量 安 排 空 间 ( 关 键 字 和 特 殊 符 号 表 )。 id 和 ci 数 组 分 别 存 放 标 识 符 和 常 数 ; 还 有 一 些 为 造 表 填 表 设 置 的 变 量 。 主 程 序 的 工 作 部 分 建 议 设 计 成 便 于 调 试 的 循 环 结 构 。 每 个 循 环 处 理 一 个 单 词 ; 调 用 词 法 分 析 过 程 ; 输 出 每 个 单 词 的 内 部 码( 种 别 编 码 , 属 性 值 )。 建 议 从 文 件 中 读 取 要 分 析 的 符 号 串 。 2.2 词 法 分 析 过 程 考 虑 该 过 程 根 据 输 入 单 词 的 第 一 个 有 效 字 符 ( 有 时 还 需 读 第 二 个 字 符 ), 判 断 单 词 种 别 , 产 生 种 别 编 码 。 对 于 标 识 符 和 常 数 ,需 分 别 与 标 识 符 表 和 常 数 表 中 已 登 记 的 元 素 相 比 较 , 如 表 中 已 有 该 元 素 , 则 记 录 其 在 表 中 的 位 置 , 如 未 出 现 过 , 将 标 识 符 按 顺序 填 入 数 组 id 中 , 将 常 数 存 入 数 组 中 ci 中 , 并 记 录 其 在 表 中 的 位 置 。 注: 所有 识 别 出 的 单 词 都用 二 元 组 表 示。 第 一 个 表 示单 词 的 种 别 编 码 。 例如 : 关 键 字 的 t=1; 标 识 符 的 t=2; 常 数 t=3;运算符 t=4;界符 t=5。第 二 个 为 该 单 词 在 各 自表 中 的 指针或内 部 码 值( 常 数 表 和 标 识 符 表 是在 编 译 过 程 中 建 立起来的 。其 i 值是根 据 它们在 源程 序 中 出 现 的 顺 序 确定的 )。 关 键 字 和 特 殊 符 号 如 下( 表 中 数 字 只是标 记 , 不代表 种 别 编 码 , 种 别 编 码 自己定义): 编 号 1 2 3 4 5 ...