当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

《编译原理》课程教学资源:第五章 YACC

资源类别:文库,文档格式:PPT,文档页数:45,文件大小:217.5KB,团购合买
yacc代表 Yet Another Compiler Compiler 由S.c. Johnson等人在AT&T贝尔实验室研制开发 的,早期作为UNIX操作系统中的一个实用程序, 现在Yacc得到广泛使用。 yacc有多个版本, Bison是它的一个常用版本
点击下载完整版文档(PPT)

第5章 本讲要点 YACC

第5章 本讲要点 ◼ YACC

5.5Yacc:一个LALR(1)分析程序的生成器 Yacc代表 Yet Another Compiler Compiler 由 S C Johnson等人在AT&T贝尔实验室研制开 发的,早期作为UNIX操作系统中的一个实用程序, 现在Yacc得到广泛使用。 YaCC有多个版本, Bison是它的一个常用版本

5.5 Yacc:一个LALR(1)分析程序的生成器 ◼ Yacc 代表 Yet Another Compiler Compiler。 ◼ 由S.C.Johnson等人在AT&T贝尔实验室研制开 发的,早期作为UNIX操作系统中的一个实用程序, 现在Yacc得到广泛使用。 ◼ Yacc有多个版本,Bison是它的一个常用版本

Yacc的使用 Yacc程序将任何一种编程语言的所有语法说 明文件(Y)翻译成针对此种语言的Yacc语法解 析器。 L语言的YacC说明文 件(Y) L语言语法分析器 YaCC程序 输入串 语法树 L语言语法分析器

L语言语法分析器 Yacc程序 Yacc的使用 Yacc 程序将任何一种编程语言的所有语法说 明文件(.Y)翻译成针对此种语言的 Yacc 语法解 析器。 L语言的Yacc说明文 件(.Y) L语言语法分析器 输入串 语法树

Yacc的使用 1.采用命令 yacc[选择项] filename.y 生成 y tab. c(或者 stab. c)的文件。 2.在c环境下将其编译成可执行文件

Yacc的使用 1. 采用命令 yacc [选择项] filename.y 生成y.tab.c(或者ytab.c)的文件。 2. 在C环境下将其编译成可执行文件

Yacc说明文件的结构 Yacc说明文件基本格式如下 definitions 3 定义部分 d rules y 规则部分 0%o auxiliary routines] 辅助程序部分

一、 Yacc说明文件的结构 Yacc说明文件基本格式如下: { definitions } 定义部分 %% { rules } 规则部分 %% {auxiliary routines} 辅助程序部分

口定义部分包括了Yacc分析程序的有关记号、 数据类型以及文法规则的信息。 口它还包括了必须直接进入输出文件的任何C代码, 如# include语句等) 注:定义部分可为空

❑定义部分包括了Yacc分析程序的有关记号、 数据类型以及文法规则的信息。 ❑它还包括了必须直接进入输出文件的任何C代码, 如#include语句等), 注:定义部分可为空

变量定义 变量定义需用一对%{和%包括起来,其内容包括有关文件 的 引用说明、数据结构的定义、全局和外部变量的定义等等, 应邀倆C语凉的规定。 # include≤ stdio. h> int count extern double valuei int function (int a, float bi

①变量定义 变量定义需用一对%{和%}包括起来,其内容包括有关文件 的 引用说明、数据结构的定义、全局和外部变量的定义等等, 应遵循例如:C语言的规定。 %{ #include … int count; extern double value; … int function(int a,float b); … %}

口规则部分包括BNF格式的文法规则以及在识别 出相应文法规则时要执行的动作 动作用C代码表示,当用该规则去归约时执行与 之对应的动作) 口Yacc中文法规则使用的元符号约定: 竖线用作替换 箭头符号→改成冒号: 每个文法规则末以分号结束。 口辅助程序部分包括了过程和函数声明(可空!)。 口Yac还允许将C-风格的注解插入到输入文件中

❑规则部分包括BNF格式的文法规则以及在识别 出相应文法规则时要执行的动作. 动作用C代码表示,当用该规则去归约时执行与 之对应的动作)。 ❑Yacc中文法规则使用的元符号约定: 竖线|用作替换。 箭头符号→改成冒号:, 每个文法规则末以分号结束。 ❑辅助程序部分包括了过程和函数声明(可空!)。 ❑Yacc还允许将C-风格的注解插入到输入文件中

编写yacc说明文件 Yacc识别记号的方法 1)文法规则的单引号中的任何字符都被识别为 它本身。如运算符记号“+)、-3和‘*’。 2)在%记号(% token)中声明符号记号,如 token NUMBER

编写yacc说明文件 Yacc识别记号的方法 1)文法规则的单引号中的任何字符都被识别为 它本身。如运算符记号‘+’ 、 ‘-’和‘*’ 。 2)在%记号(%token)中声明符号记号,如 %token NUMBER

编写yacc说明文件 Yacc对记号的处理 YaC为每个记号自动分配一个不与任何字符值冲突的 数字值,通常从258开始赋值 yac将这些定义作为# define语句插入到输出代码中 如:# define number258 用户也可指定将赋给记号的数字。 例:% token number18,就将给 NUMBER赋值18

编写yacc说明文件 Yacc对记号的处理 ◼Yacc为每个记号自动分配一个不与任何字符值冲突的 数字值,通常从258开始赋值。 yacc将这些定义作为#define语句插入到输出代码中。 如:#define NUMBER 258 ◼用户也可指定将赋给记号的数字。 例:%token NUMBER 18,就将给NUMBER赋值18

点击下载完整版文档(PPT)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
共45页,可试读15页,点击继续阅读 ↓↓
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有