编译原理——表达式分析

上传人:wt****50 文档编号:34021259 上传时间:2018-02-20 格式:DOC 页数:4 大小:126.30KB
返回 下载 相关 举报
编译原理——表达式分析_第1页
第1页 / 共4页
编译原理——表达式分析_第2页
第2页 / 共4页
编译原理——表达式分析_第3页
第3页 / 共4页
编译原理——表达式分析_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《编译原理——表达式分析》由会员分享,可在线阅读,更多相关《编译原理——表达式分析(4页珍藏版)》请在金锄头文库上搜索。

1、一、实验目的: 熟悉并设计一个表达式的语法分析器二、相关知识: 1、 形式语言基础及其文法运算2、 语法分析原理及 4 种常用的语法分析方法其中: 四种算法为(1)设计算术表达式的递归下降子程序分析算法三、实验内容:1设计表达式的语法语法分析器算法2编写代码并上机调试运行通过要求: 输入- 表达式输出- 表达式语法是否正确四、概要设计1. 算术表达式的递归下降子程序分析算法(1)算术表达式文法G(E): E E 0 T | TT T 1 F | FF i | (E)(2)文法变换:G(E) E T 0 TT F 1 FF i | (E)(3) 递归下降子程序框图:E: 入口 T: 入口T Fn

2、 0? n 1?y y出口 出口 read(w) read(w) T FF: 入口 主程序:Z E ( ? n i ? n errread(w) read(w)EE err n # ?err n ) ? y y 开始 read(w)出口(4)数据结构char exp50; /算术表达式区int i=0;int err=0 ; /err 输出指示char w; /当前单词(5)源程序清单:#include #include void E();void T();void F();int Print();char exp50;/算术表达式区int i=0;int err=0;char w;/当前单词

3、int Print()printf(err) ;err=1;return err;void F()if(w=a&w=0&w=9)w=expi+;/read(w)else if(w=()w=expi+;E();if(w!=)结束 if(!err)Print();elsew=expi+;/read(w)elseif(!err)Print();void T()F();while(w=*|w=/)w=expi+;/read(w)F();void E()T();while(w=+|w=-)w=expi+;/read(w)T();int main()printf(please input your expression:);/输入表达式scanf(%s,exp);w=expi+;/read(w)E();if(!err) if(w=#)printf(OK!);elseprintf(err);return 0;(6)运行结果

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号