编译原理chapter7LR分析精选.ppt

YACC (Yet Another Compiler-Compiler) 20世纪70年代Johnson等人在美国Bell实验室研发的一个基于LALR(1)的语法分析程序的构造工具,在UNIX系统下使用。很多高级语言用来开发前端。 最初的 YACC 称为 ATT YACC ,后来出现了Berkeley大学的BYACC和 GNU 的 Bison ,以及Java CUP 等。YACC 现在是一个标准化工具,在 IEEE Posix standard P1003.2中定义。 可以处理某些二义性文法的规则 YACC YACC 一个yacc源程序一般包括三部分:说明部分%%语法规则部分%%程序段部分: 说明部分 %% 语法规则部分 %% 辅助函数段部分 说明部分 定义语法规则中要用的终结符号,语义动作中使用的数据类型、变量、语义值的联合类型以及语法规则中运算符的优先级等。 %{头文件表 宏定义 数据类型定义 全局变量定义 %} 文法开始符定义 : %start 终结符定义: %token 语义值类型定义: 可先将将语义值的类型定义为一个联合(Union) %token 类型名 符号名 %type 类型名 符号名 如果没有对语义值的类型做定义,那么yacc认为它是整型

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档