1 实习二 递归下降分析 一、实验目的: 根 据 某 一 文 法 编 制 调 试 递 归 下 降 分 析 程 序 , 以 便 对 任 意 输 入 的 符 号 串 进 行 分 析
本次 实 验 的 目 的 主 要 是 加 深 对 递 归 下 降 分 析 法 的 理 解
二、实验预习提示 1、 递 归 下 降 分 析 法 的 功 能 词 法 分 析 器 的 功 能 是 利 用 函 数 之 间 的 递 归 调 用 模 拟 语 法 树 自 上 而 下 的 构 造 过 程
2、 递 归 下 降 分 析 法 的 前 提 改 造 文 法 : 消 除 二 义 性 、 消 除 左 递 归 、 提 取 左 因 子 , 判 断 是 否 为 LL( 1) 文 法 , 3、 递 归 下 降 分 析 法 实 验 设 计 思 想 及 算 法 为 G 的 每 个 非 终 结 符 号 U 构 造 一 个 递 归 过 程 ,不 妨 命 名 为 U
U 的 产 生 式 的 右 边 指 出 这 个 过 程 的 代 码 结 构 : (1)若 是 终 结 符 号 , 则 和 向 前 看 符 号 对 照 , 若 匹 配 则 向 前 进 一 个 符 号 ; 否 则 出 错
(2)若 是 非 终 结 符 号 , 则 调 用 与 此 非 终 结 符 对 应 的 过 程
当 A 的 右 部 有 多 个 产 生 式 时 ,可用 选择结 构 实 现
具体为 : ( 1) 对 于每 个 非 终 结 符 号 U->u1|u2|…|un 处理 的 方法 如下 : U( ) { ch=当 前 符 号 ; if(ch 可能 是 u1 字的 开头) 处理 u1 的 程 序 部 分 ; else if(ch 可能 是 u2 字的 开头)处理 u2 的 程 序 部 分 ; … else error() } ( 2) 对 于