- 3
- 0
- 约1.25万字
- 约 4页
- 2016-07-02 发布于重庆
- 举报
编译原理表达式分析
一、实验目的: 熟悉并设计一个表达式的语法分析器
二、相关知识:
形式语言基础及其文法运算
语法分析原理及4种常用的语法分析方法
其中: 四种算法为
(1)设计算术表达式的递归下降子程序分析算法
三、实验内容:
设计表达式的语法语法分析器算法
编写代码并上机调试运行通过
要求: 输入------------ 表达式
输出------------ 表达式语法是否正确
四、概要设计
1. 算术表达式的递归下降子程序分析算法
(1)算术表达式文法
G(E): E ? E ω0 T | T
T ? T ω1 F | F
F ? i | (E)
(2)文法变换:G’(E) E ? T {ω0 T}
T ? F {ω1 F}
F ? i | (E)
(3) 递归下降子程序框图:
E: 入口 T: 入口
T F
n ω0? n ω1?
y y
出口 出口
read(w) read(w)
T F
开始 F: 入口 主程序:Z ?E
开始
( ? n i ? n err
read(w) read(w)
E
E
err n # ?
err n ) ? y
y
read(w)
结束
结束
出口
(4)数据结构
char exp[50]; //算术表达式区
int i=0;
int err=0 ; //err输出指示
char w; //当前单词
(5)源程序清单:
#include stdio.h
#include stdlib.h
void E();
void T();
void F();
int Print();
char exp[50];//算术表达式区
int i=0;
int err=0;
char w;//当前单词
int Print()
{
printf(err) ;
err=1;
return err;
}
void F()
{
if((w=aw=z)||(w=0w=9))
{
w=exp[i++];//read(w)
}
else if(w==()
{
w=exp[i++];
E();
if(w!=))
{
if(!err)
Print();
}
else
w=exp[i++];//read(w)
}
else
{
if(!
您可能关注的文档
最近下载
- 分点进水多级AO污水处理工艺设计计算探讨.pdf VIP
- 高中物理必修二圆周运动习题精选.doc VIP
- (必会)军队文职(中医学)近年考试真题题库资料汇总(含答案).pdf VIP
- 2025年安徽分类考试对口升学语文真题试卷 .pdf VIP
- (必会)军队文职(公共科目)近年考试真题题库资料汇总(含答案).pdf VIP
- 专题01-语言文字运用【真题汇编】(2021-2025)五年高考真题语文分类汇编-含答案解析.pdf VIP
- 分段进水多级 AO 工艺的特点与问题.pdf VIP
- 沉淀+多级 AO+混凝沉淀废水处理工艺.docx VIP
- 2025年新版对口高考试卷及答案安徽.doc VIP
- 不同回流比对多级AO工艺污染物去除的影响.docx VIP
原创力文档

文档评论(0)