第3章 语法分析

从CFG、预测/LR分析、生成器和错误恢复实现Tiger语法分析项目;用C编译流水线、状态轨迹和端到端验证门交付文法版本、分析表、栈轨迹、冲突与恢复报告

学习目标

  • 能说明“第3章 语法分析”如何从CFG、预测/LR分析、生成器和错误恢复实现Tiger语法分析项目,并区分作者C/Java/ML轨道、中文C版与本站重写
  • 能先预测“分析栈、输入、项目集和冲突解决怎样构造唯一AST?”会改变哪一个C接口、树/图状态、AST/IR、汇编或运行结果,再操作三类交互证据
  • 能只注入“用优先级掩盖真正的文法二义性,导致另一上下文错误归约”,定位首个偏离“第3章 语法分析的C模块接口、数据结构、状态变换、输出语义与测试始终一致”的状态,并从同一快照完成恢复

为什么从这个问题开始

“第3章 语法分析”围绕“分析栈、输入、项目集和冲突解决怎样构造唯一AST?”建立贯穿任务:在Tiger C实现轨道中复现“第3章 语法分析”的输入、状态、变换与验证。先写下哪个C接口、树/图状态、AST/IR、汇编或运行结果会最先变化,再运行参考、故障和恢复路径;运行后补理由不算预测。只有守住“第3章 语法分析的C模块接口、数据结构、状态变换、输出语义与测试始终一致”并交付文法版本、分析表、栈轨迹、冲突与恢复报告,单模块测试、编译成功或性能变化才构成机制证据。

原版书目、296个正式坐标与C轨道边界

“第3章 语法分析”以Andrew W. Appel作者官方目录核对 Modern Compiler Implementation 的C、Java、ML三种实现轨道、2部分、21章和Tiger语言附录;以作者C版页面核对Andrew·W·Appel与Maia Ginsburg、Cambridge University Press、C实现轨道、平装ISBN 0-521-60765-5、软件/练习模块与勘误入口,再以Cambridge C版页面核对原版身份。

“第3章 语法分析”以中文版修订版完整目录核对赵克佳、黄春、沈志宇译《现代编译原理:C语言描述(修订版)》,人民邮电出版社,2018年,385页,ISBN 9787115476883。“第3章 语法分析”的正式分母为2个部分标题、21个章标题、1个附录标题、251个编号节/小节、附录4节和17个正式“程序设计”项目,合计296个核心层级;每章重复的推荐阅读与习题不另计。

作者页面可访问不等于允许复制书稿,“第3章 语法分析”不复制、翻译或改写原文、图表、伪码与习题;所有中文讲解、C接口示意、状态轨迹、反例、交互、练习和答案均为独立教学重写。本页独立核对 1只用于核对本页C实现或现代IR边界,不能混入Java/ML轨道或反向证明原书采用本站表述。

原版目录层级与C项目机制

第3章 语法分析

正式坐标 1/28。 原版目录键 第3章 语法分析。在“第3章 语法分析”的第1个正式坐标中,「第3章 语法分析」通过把字符、token、文法、分析表、栈和错误恢复连接为前端轨迹推进Tiger文法、分析栈与冲突;复核者保存正则—自动机、token流、项目集、分析表、栈轨迹与冲突,出现最长匹配、展望符、冲突或恢复状态错误就撤回结论。

3·1 上下文无关文法

正式坐标 2/28。 原版目录键 3.1 上下文无关文法。围绕“分析栈、输入、项目集和冲突解决怎样构造唯一AST?”,“第3章 语法分析”在坐标2把「3·1 上下文无关文法」落实为把字符、token、文法、分析表、栈和错误恢复连接为前端轨迹;只有正则—自动机、token流、项目集、分析表、栈轨迹与冲突可重放且反例排除最长匹配、展望符、冲突或恢复状态错误,本节点才算掌握。

3·1·1 推导

正式坐标 3/28。 原版目录键 3.1.1 推导。“第3章 语法分析”的目录节点3「3·1·1 推导」不能停在术语或伪码:它要把“推导”放进Tiger文法、分析栈与冲突的C接口—状态—变换—验证链,交付第3章 语法分析的输入角色、中间状态、输出、反例与整合证据,并把只复述“推导”名称而没有可观察状态、项目实现和恢复验证设为单一反事实。

3·1·2 语法分析树

正式坐标 4/28。 原版目录键 3.1.2 语法分析树。对“第3章 语法分析”而言,「3·1·2 语法分析树」在第4次检查中改变可观察状态,因为它负责把字符、token、文法、分析表、栈和错误恢复连接为前端轨迹;正则—自动机、token流、项目集、分析表、栈轨迹与冲突必须与“第3章 语法分析的C模块接口、数据结构、状态变换、输出语义与测试始终一致”对齐,不能接受最长匹配、展望符、冲突或恢复状态错误。

3·1·3 二义性文法

正式坐标 5/28。 原版目录键 3.1.3 二义性文法。在“第3章 语法分析”的第5个正式坐标中,「3·1·3 二义性文法」通过把字符、token、文法、分析表、栈和错误恢复连接为前端轨迹推进Tiger文法、分析栈与冲突;复核者保存正则—自动机、token流、项目集、分析表、栈轨迹与冲突,出现最长匹配、展望符、冲突或恢复状态错误就撤回结论。

3·1·4 文件结束符

正式坐标 6/28。 原版目录键 3.1.4 文件结束符。围绕“分析栈、输入、项目集和冲突解决怎样构造唯一AST?”,“第3章 语法分析”在坐标6把「3·1·4 文件结束符」落实为把“文件结束符”放进Tiger文法、分析栈与冲突的C接口—状态—变换—验证链;只有第3章 语法分析的输入角色、中间状态、输出、反例与整合证据可重放且反例排除只复述“文件结束符”名称而没有可观察状态、项目实现和恢复验证,本节点才算掌握。

3·2 预测分析

正式坐标 7/28。 原版目录键 3.2 预测分析。“第3章 语法分析”的目录节点7「3·2 预测分析」不能停在术语或伪码:它要把字符、token、文法、分析表、栈和错误恢复连接为前端轨迹,交付正则—自动机、token流、项目集、分析表、栈轨迹与冲突,并把最长匹配、展望符、冲突或恢复状态错误设为单一反事实。

3·2·1 FIRST集合和FOLLOW集合

正式坐标 8/28。 原版目录键 3.2.1 FIRST集合和FOLLOW集合。对“第3章 语法分析”而言,「3·2·1 FIRST集合和FOLLOW集合」在第8次检查中改变可观察状态,因为它负责把“FIRST集合和FOLLOW集合”放进Tiger文法、分析栈与冲突的C接口—状态—变换—验证链;第3章 语法分析的输入角色、中间状态、输出、反例与整合证据必须与“第3章 语法分析的C模块接口、数据结构、状态变换、输出语义与测试始终一致”对齐,不能接受只复述“FIRST集合和FOLLOW集合”名称而没有可观察状态、项目实现和恢复验证。

3·2·2 构造一个预测分析器

正式坐标 9/28。 原版目录键 3.2.2 构造一个预测分析器。在“第3章 语法分析”的第9个正式坐标中,「3·2·2 构造一个预测分析器」通过把字符、token、文法、分析表、栈和错误恢复连接为前端轨迹推进Tiger文法、分析栈与冲突;复核者保存正则—自动机、token流、项目集、分析表、栈轨迹与冲突,出现最长匹配、展望符、冲突或恢复状态错误就撤回结论。

3·2·3 消除左递归

正式坐标 10/28。 原版目录键 3.2.3 消除左递归。围绕“分析栈、输入、项目集和冲突解决怎样构造唯一AST?”,“第3章 语法分析”在坐标10把「3·2·3 消除左递归」落实为把“消除左递归”放进Tiger文法、分析栈与冲突的C接口—状态—变换—验证链;只有第3章 语法分析的输入角色、中间状态、输出、反例与整合证据可重放且反例排除只复述“消除左递归”名称而没有可观察状态、项目实现和恢复验证,本节点才算掌握。

3·2·4 提取左因子

正式坐标 11/28。 原版目录键 3.2.4 提取左因子。“第3章 语法分析”的目录节点11「3·2·4 提取左因子」不能停在术语或伪码:它要把“提取左因子”放进Tiger文法、分析栈与冲突的C接口—状态—变换—验证链,交付第3章 语法分析的输入角色、中间状态、输出、反例与整合证据,并把只复述“提取左因子”名称而没有可观察状态、项目实现和恢复验证设为单一反事实。

3·2·5 错误恢复

正式坐标 12/28。 原版目录键 3.2.5 错误恢复。对“第3章 语法分析”而言,「3·2·5 错误恢复」在第12次检查中改变可观察状态,因为它负责把字符、token、文法、分析表、栈和错误恢复连接为前端轨迹;正则—自动机、token流、项目集、分析表、栈轨迹与冲突必须与“第3章 语法分析的C模块接口、数据结构、状态变换、输出语义与测试始终一致”对齐,不能接受最长匹配、展望符、冲突或恢复状态错误。

3·3 LR分析

正式坐标 13/28。 原版目录键 3.3 LR分析。在“第3章 语法分析”的第13个正式坐标中,「3·3 LR分析」通过把字符、token、文法、分析表、栈和错误恢复连接为前端轨迹推进Tiger文法、分析栈与冲突;复核者保存正则—自动机、token流、项目集、分析表、栈轨迹与冲突,出现最长匹配、展望符、冲突或恢复状态错误就撤回结论。

3·3·1 LR分析引擎

正式坐标 14/28。 原版目录键 3.3.1 LR分析引擎。围绕“分析栈、输入、项目集和冲突解决怎样构造唯一AST?”,“第3章 语法分析”在坐标14把「3·3·1 LR分析引擎」落实为把字符、token、文法、分析表、栈和错误恢复连接为前端轨迹;只有正则—自动机、token流、项目集、分析表、栈轨迹与冲突可重放且反例排除最长匹配、展望符、冲突或恢复状态错误,本节点才算掌握。

3·3·2 LR(0)分析器生成器

正式坐标 15/28。 原版目录键 3.3.2 LR(0)分析器生成器。“第3章 语法分析”的目录节点15「3·3·2 LR(0)分析器生成器」不能停在术语或伪码:它要把字符、token、文法、分析表、栈和错误恢复连接为前端轨迹,交付正则—自动机、token流、项目集、分析表、栈轨迹与冲突,并把最长匹配、展望符、冲突或恢复状态错误设为单一反事实。

3·3·3 SLR分析器的生成

正式坐标 16/28。 原版目录键 3.3.3 SLR分析器的生成。对“第3章 语法分析”而言,「3·3·3 SLR分析器的生成」在第16次检查中改变可观察状态,因为它负责把字符、token、文法、分析表、栈和错误恢复连接为前端轨迹;正则—自动机、token流、项目集、分析表、栈轨迹与冲突必须与“第3章 语法分析的C模块接口、数据结构、状态变换、输出语义与测试始终一致”对齐,不能接受最长匹配、展望符、冲突或恢复状态错误。

3·3·4 LR(1)项和LR(1)分析表

正式坐标 17/28。 原版目录键 3.3.4 LR(1)项和LR(1)分析表。在“第3章 语法分析”的第17个正式坐标中,「3·3·4 LR(1)项和LR(1)分析表」通过把字符、token、文法、分析表、栈和错误恢复连接为前端轨迹推进Tiger文法、分析栈与冲突;复核者保存正则—自动机、token流、项目集、分析表、栈轨迹与冲突,出现最长匹配、展望符、冲突或恢复状态错误就撤回结论。

3·3·5 LALR(1)分析表

正式坐标 18/28。 原版目录键 3.3.5 LALR(1)分析表。围绕“分析栈、输入、项目集和冲突解决怎样构造唯一AST?”,“第3章 语法分析”在坐标18把「3·3·5 LALR(1)分析表」落实为把字符、token、文法、分析表、栈和错误恢复连接为前端轨迹;只有正则—自动机、token流、项目集、分析表、栈轨迹与冲突可重放且反例排除最长匹配、展望符、冲突或恢复状态错误,本节点才算掌握。

3·3·6 各类文法的层次

正式坐标 19/28。 原版目录键 3.3.6 各类文法的层次。“第3章 语法分析”的目录节点19「3·3·6 各类文法的层次」不能停在术语或伪码:它要把字符、token、文法、分析表、栈和错误恢复连接为前端轨迹,交付正则—自动机、token流、项目集、分析表、栈轨迹与冲突,并把最长匹配、展望符、冲突或恢复状态错误设为单一反事实。

3·3·7 二义性文法的LR分析

正式坐标 20/28。 原版目录键 3.3.7 二义性文法的LR分析。对“第3章 语法分析”而言,「3·3·7 二义性文法的LR分析」在第20次检查中改变可观察状态,因为它负责把字符、token、文法、分析表、栈和错误恢复连接为前端轨迹;正则—自动机、token流、项目集、分析表、栈轨迹与冲突必须与“第3章 语法分析的C模块接口、数据结构、状态变换、输出语义与测试始终一致”对齐,不能接受最长匹配、展望符、冲突或恢复状态错误。

3·4 使用分析器的生成器

正式坐标 21/28。 原版目录键 3.4 使用分析器的生成器。在“第3章 语法分析”的第21个正式坐标中,「3·4 使用分析器的生成器」通过把字符、token、文法、分析表、栈和错误恢复连接为前端轨迹推进Tiger文法、分析栈与冲突;复核者保存正则—自动机、token流、项目集、分析表、栈轨迹与冲突,出现最长匹配、展望符、冲突或恢复状态错误就撤回结论。

3·4·1 冲突

正式坐标 22/28。 原版目录键 3.4.1 冲突。围绕“分析栈、输入、项目集和冲突解决怎样构造唯一AST?”,“第3章 语法分析”在坐标22把「3·4·1 冲突」落实为把“冲突”放进Tiger文法、分析栈与冲突的C接口—状态—变换—验证链;只有第3章 语法分析的输入角色、中间状态、输出、反例与整合证据可重放且反例排除只复述“冲突”名称而没有可观察状态、项目实现和恢复验证,本节点才算掌握。

3·4·2 优先级指导

正式坐标 23/28。 原版目录键 3.4.2 优先级指导。“第3章 语法分析”的目录节点23「3·4·2 优先级指导」不能停在术语或伪码:它要把“优先级指导”放进Tiger文法、分析栈与冲突的C接口—状态—变换—验证链,交付第3章 语法分析的输入角色、中间状态、输出、反例与整合证据,并把只复述“优先级指导”名称而没有可观察状态、项目实现和恢复验证设为单一反事实。

3·4·3 语法和语义

正式坐标 24/28。 原版目录键 3.4.3 语法和语义。对“第3章 语法分析”而言,「3·4·3 语法和语义」在第24次检查中改变可观察状态,因为它负责把字符、token、文法、分析表、栈和错误恢复连接为前端轨迹;正则—自动机、token流、项目集、分析表、栈轨迹与冲突必须与“第3章 语法分析的C模块接口、数据结构、状态变换、输出语义与测试始终一致”对齐,不能接受最长匹配、展望符、冲突或恢复状态错误。

3·5 错误恢复

正式坐标 25/28。 原版目录键 3.5 错误恢复。在“第3章 语法分析”的第25个正式坐标中,「3·5 错误恢复」通过把字符、token、文法、分析表、栈和错误恢复连接为前端轨迹推进Tiger文法、分析栈与冲突;复核者保存正则—自动机、token流、项目集、分析表、栈轨迹与冲突,出现最长匹配、展望符、冲突或恢复状态错误就撤回结论。

3·5·1 用error符号恢复

正式坐标 26/28。 原版目录键 3.5.1 用error符号恢复。围绕“分析栈、输入、项目集和冲突解决怎样构造唯一AST?”,“第3章 语法分析”在坐标26把「3·5·1 用error符号恢复」落实为构造带源位置AST并沿作用域环境执行名字绑定和类型检查;只有CST—AST映射、环境快照、类型推导、错误路径与作用域恢复可重放且反例排除节点语义、绑定顺序、类型约束或作用域恢复错位,本节点才算掌握。

3·5·2 全局错误修复

正式坐标 27/28。 原版目录键 3.5.2 全局错误修复。“第3章 语法分析”的目录节点27「3·5·2 全局错误修复」不能停在术语或伪码:它要把“全局错误修复”放进Tiger文法、分析栈与冲突的C接口—状态—变换—验证链,交付第3章 语法分析的输入角色、中间状态、输出、反例与整合证据,并把只复述“全局错误修复”名称而没有可观察状态、项目实现和恢复验证设为单一反事实。

程序设计:语法分析

正式坐标 28/28。 原版目录键 程序设计:语法分析。对“第3章 语法分析”而言,「程序设计:语法分析」在第28次检查中改变可观察状态,因为它负责把字符、token、文法、分析表、栈和错误恢复连接为前端轨迹;正则—自动机、token流、项目集、分析表、栈轨迹与冲突必须与“第3章 语法分析的C模块接口、数据结构、状态变换、输出语义与测试始终一致”对齐,不能接受最长匹配、展望符、冲突或恢复状态错误。

先预测,再操作三个C轨道实验

分步1 / 3

1. C模块、输入与翻译流水线

为“第3章 语法分析”选择正式目录坐标,在参考流水线与单一故障间切换,逐阶段核对接口、状态、输出和不变量。

输入—表示—翻译流水线

第3章 语法分析

选择正式目录坐标,再比较参考编译合同与单一故障的首个状态分岔。

阶段 1/4

第3章 语法分析 · C模块与输入

输入
在Tiger C实现轨道中复现“第3章 语法分析”的输入、状态、变换与验证
变换
冻结Tiger文法、分析栈与冲突所需的C接口、源程序、规则、数据结构和版本
输出证据
第3章 语法分析的模块合同、输入快照与所有权表
不变量检查
第3章 语法分析的类型、所有权、源位置、名字和接口布局没有错位

第3章 语法分析的可重放协议

阶段允许动作必留证据拒绝条件
第3章 语法分析 · C模块与输入冻结Tiger文法、分析栈与冲突所需的C接口、源程序、规则、数据结构和版本第3章 语法分析的模块合同、输入快照与所有权表未满足“第3章 语法分析的类型、所有权、源位置、名字和接口布局没有错位”
第3章 语法分析 · 算法与状态执行从CFG、预测/LR分析、生成器和错误恢复实现Tiger语法分析项目的最小算法并保存每一步状态第3章 语法分析的参考轨迹、故障轨迹与首个状态分岔未满足“第3章 语法分析每一步可由同一C接口、输入、规则和执行顺序复算”
第3章 语法分析 · 输出与整合比较变换前后AST/IR/汇编/运行时状态和跨模块传递第3章 语法分析的前后差、接口谱系与恢复路径未满足“第3章 语法分析没有把单模块通过或单一样例正确当作端到端正确性”
第3章 语法分析 · 独立验证重放预测、单故障、恢复和不适用边界第3章 语法分析的接受、回退或拒绝理由未满足“第3章 语法分析满足“第3章 语法分析的C模块接口、数据结构、状态变换、输出语义与测试始终一致””
unit: "tbc-unit-03"
question: "分析栈、输入、项目集和冲突解决怎样构造唯一AST?"
scenario: "在Tiger C实现轨道中复现“第3章 语法分析”的输入、状态、变换与验证"
invariant: "第3章 语法分析的C模块接口、数据结构、状态变换、输出语义与测试始终一致"
fault: "用优先级掩盖真正的文法二义性,导致另一上下文错误归约"
evidence: "文法版本、分析表、栈轨迹、冲突与恢复报告"
reset: restore_concept_mode_stage_trace_step_case_gates_and_artifact

“第3章 语法分析”要求从同一C接口、源程序、规则、数据结构、目标机、预算和执行顺序重放参考、故障与恢复路径。重置后若目录选择、模式、阶段、轨迹步骤、案例、证据门或交付包没有回到基线,本次比较已经混入状态泄漏。

本页回顾

掌握“第3章 语法分析”不是背术语、表格或伪码,而是围绕“分析栈、输入、项目集和冲突解决怎样构造唯一AST?”重建C接口、输入、状态变换、输出、整合和端到端验证,并用“第3章 语法分析的C模块接口、数据结构、状态变换、输出语义与测试始终一致”拒绝“用优先级掩盖真正的文法二义性,导致另一上下文错误归约”。最终交付为文法版本、分析表、栈轨迹、冲突与恢复报告。

练习与答案

练习

  1. 问题 1:C实现合同。 “第3章 语法分析”为什么必须先冻结C接口、源程序、规则、数据结构、目标机和验证口径?
  1. 问题 2:目录逐项覆盖。 怎样证明“第3章 语法分析”的正式目录坐标已经进入机制、交互和程序设计项目?
  1. 问题 3:故障恢复。 怎样证明“用优先级掩盖真正的文法二义性,导致另一上下文错误归约”已经被修正?

名词解释

名词解释

本章出现的专业名词,用大白话再讲一遍。

语法分析

检索键 tbc-A 对应正式目录坐标「第3章 语法分析」;在“第3章 语法分析”中用于把字符、token、文法、分析表、栈和错误恢复连接为前端轨迹,需要连接C轨道范围、状态轨迹、整合证据和不适用边界。

上下文无关文法

检索键 tbc-B 对应正式目录坐标「3·1 上下文无关文法」;在“第3章 语法分析”中用于把字符、token、文法、分析表、栈和错误恢复连接为前端轨迹,需要连接C轨道范围、状态轨迹、整合证据和不适用边界。

推导

检索键 tbc-C 对应正式目录坐标「3·1·1 推导」;在“第3章 语法分析”中用于把“推导”放进Tiger文法、分析栈与冲突的C接口—状态—变换—验证链,需要连接C轨道范围、状态轨迹、整合证据和不适用边界。

语法分析树

检索键 tbc-D 对应正式目录坐标「3·1·2 语法分析树」;在“第3章 语法分析”中用于把字符、token、文法、分析表、栈和错误恢复连接为前端轨迹,需要连接C轨道范围、状态轨迹、整合证据和不适用边界。

二义性文法

检索键 tbc-E 对应正式目录坐标「3·1·3 二义性文法」;在“第3章 语法分析”中用于把字符、token、文法、分析表、栈和错误恢复连接为前端轨迹,需要连接C轨道范围、状态轨迹、整合证据和不适用边界。

文件结束符

检索键 tbc-F 对应正式目录坐标「3·1·4 文件结束符」;在“第3章 语法分析”中用于把“文件结束符”放进Tiger文法、分析栈与冲突的C接口—状态—变换—验证链,需要连接C轨道范围、状态轨迹、整合证据和不适用边界。

预测分析

检索键 tbc-G 对应正式目录坐标「3·2 预测分析」;在“第3章 语法分析”中用于把字符、token、文法、分析表、栈和错误恢复连接为前端轨迹,需要连接C轨道范围、状态轨迹、整合证据和不适用边界。

FIRST集合和FOLLOW集合

检索键 tbc-H 对应正式目录坐标「3·2·1 FIRST集合和FOLLOW集合」;在“第3章 语法分析”中用于把“FIRST集合和FOLLOW集合”放进Tiger文法、分析栈与冲突的C接口—状态—变换—验证链,需要连接C轨道范围、状态轨迹、整合证据和不适用边界。

构造一个预测分析器

检索键 tbc-I 对应正式目录坐标「3·2·2 构造一个预测分析器」;在“第3章 语法分析”中用于把字符、token、文法、分析表、栈和错误恢复连接为前端轨迹,需要连接C轨道范围、状态轨迹、整合证据和不适用边界。

消除左递归

检索键 tbc-J 对应正式目录坐标「3·2·3 消除左递归」;在“第3章 语法分析”中用于把“消除左递归”放进Tiger文法、分析栈与冲突的C接口—状态—变换—验证链,需要连接C轨道范围、状态轨迹、整合证据和不适用边界。

提取左因子

检索键 tbc-K 对应正式目录坐标「3·2·4 提取左因子」;在“第3章 语法分析”中用于把“提取左因子”放进Tiger文法、分析栈与冲突的C接口—状态—变换—验证链,需要连接C轨道范围、状态轨迹、整合证据和不适用边界。

错误恢复

检索键 tbc-L 对应正式目录坐标「3·2·5 错误恢复」;在“第3章 语法分析”中用于把字符、token、文法、分析表、栈和错误恢复连接为前端轨迹,需要连接C轨道范围、状态轨迹、整合证据和不适用边界。

LR分析

检索键 tbc-M 对应正式目录坐标「3·3 LR分析」;在“第3章 语法分析”中用于把字符、token、文法、分析表、栈和错误恢复连接为前端轨迹,需要连接C轨道范围、状态轨迹、整合证据和不适用边界。

LR分析引擎

检索键 tbc-N 对应正式目录坐标「3·3·1 LR分析引擎」;在“第3章 语法分析”中用于把字符、token、文法、分析表、栈和错误恢复连接为前端轨迹,需要连接C轨道范围、状态轨迹、整合证据和不适用边界。

LR(0)分析器生成器

检索键 tbc-O 对应正式目录坐标「3·3·2 LR(0)分析器生成器」;在“第3章 语法分析”中用于把字符、token、文法、分析表、栈和错误恢复连接为前端轨迹,需要连接C轨道范围、状态轨迹、整合证据和不适用边界。

SLR分析器的生成

检索键 tbc-P 对应正式目录坐标「3·3·3 SLR分析器的生成」;在“第3章 语法分析”中用于把字符、token、文法、分析表、栈和错误恢复连接为前端轨迹,需要连接C轨道范围、状态轨迹、整合证据和不适用边界。

LR(1)项和LR(1)分析表

检索键 tbc-Q 对应正式目录坐标「3·3·4 LR(1)项和LR(1)分析表」;在“第3章 语法分析”中用于把字符、token、文法、分析表、栈和错误恢复连接为前端轨迹,需要连接C轨道范围、状态轨迹、整合证据和不适用边界。

LALR(1)分析表

检索键 tbc-R 对应正式目录坐标「3·3·5 LALR(1)分析表」;在“第3章 语法分析”中用于把字符、token、文法、分析表、栈和错误恢复连接为前端轨迹,需要连接C轨道范围、状态轨迹、整合证据和不适用边界。

各类文法的层次

检索键 tbc-S 对应正式目录坐标「3·3·6 各类文法的层次」;在“第3章 语法分析”中用于把字符、token、文法、分析表、栈和错误恢复连接为前端轨迹,需要连接C轨道范围、状态轨迹、整合证据和不适用边界。

二义性文法的LR分析

检索键 tbc-T 对应正式目录坐标「3·3·7 二义性文法的LR分析」;在“第3章 语法分析”中用于把字符、token、文法、分析表、栈和错误恢复连接为前端轨迹,需要连接C轨道范围、状态轨迹、整合证据和不适用边界。

使用分析器的生成器

检索键 tbc-U 对应正式目录坐标「3·4 使用分析器的生成器」;在“第3章 语法分析”中用于把字符、token、文法、分析表、栈和错误恢复连接为前端轨迹,需要连接C轨道范围、状态轨迹、整合证据和不适用边界。

冲突

检索键 tbc-V 对应正式目录坐标「3·4·1 冲突」;在“第3章 语法分析”中用于把“冲突”放进Tiger文法、分析栈与冲突的C接口—状态—变换—验证链,需要连接C轨道范围、状态轨迹、整合证据和不适用边界。

优先级指导

检索键 tbc-W 对应正式目录坐标「3·4·2 优先级指导」;在“第3章 语法分析”中用于把“优先级指导”放进Tiger文法、分析栈与冲突的C接口—状态—变换—验证链,需要连接C轨道范围、状态轨迹、整合证据和不适用边界。

语法和语义

检索键 tbc-X 对应正式目录坐标「3·4·3 语法和语义」;在“第3章 语法分析”中用于把字符、token、文法、分析表、栈和错误恢复连接为前端轨迹,需要连接C轨道范围、状态轨迹、整合证据和不适用边界。

错误恢复

检索键 tbc-Y 对应正式目录坐标「3·5 错误恢复」;在“第3章 语法分析”中用于把字符、token、文法、分析表、栈和错误恢复连接为前端轨迹,需要连接C轨道范围、状态轨迹、整合证据和不适用边界。

用error符号恢复

检索键 tbc-Z 对应正式目录坐标「3·5·1 用error符号恢复」;在“第3章 语法分析”中用于构造带源位置AST并沿作用域环境执行名字绑定和类型检查,需要连接C轨道范围、状态轨迹、整合证据和不适用边界。

全局错误修复

检索键 tbc-AA 对应正式目录坐标「3·5·2 全局错误修复」;在“第3章 语法分析”中用于把“全局错误修复”放进Tiger文法、分析栈与冲突的C接口—状态—变换—验证链,需要连接C轨道范围、状态轨迹、整合证据和不适用边界。

语法分析

检索键 tbc-AB 对应正式目录坐标「程序设计:语法分析」;在“第3章 语法分析”中用于把字符、token、文法、分析表、栈和错误恢复连接为前端轨迹,需要连接C轨道范围、状态轨迹、整合证据和不适用边界。

讨论

评论区加载中…