欢迎来到天天文库
浏览记录
ID:58673646
大小:28.00 KB
页数:6页
时间:2020-10-15
《东北大学编译原理实验二.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、编译原理1实验题目:达式语法分析设计。2实验目的:熟悉并设计一个表达式的语法分析器3相关知识:1、形式语言基础及其文法运算2、语法分析原理及4种常用的语法分析方法其中:四种算法为(1)设计算术表达式的递归下降子程序分析算法(2)设计算术表达式的LL(1)分析算法(3)设计算术表达式的简单优先分析算法(4)设计算术表达式的SLR(1)分析算法4实验内容:1.设计表达式的语法语法分析器算法(1)算术表达式文法G(E):E→Eω0T
2、TE为算术表达式,T为项,T→Tω1F
3、FF为因式项,ω0为+或-;ω1为*或/F→i
4、(E)i为变量或常量(2)文法交换G'(E):E→T
5、{ω0T}T→F{ω1F}F→i
6、(E)1.编写代码并上机调试运行通过要求:输入-----------表达式输出-----------表达式语法是否正确5实验要求:1、给出算术表达式文法2、进行适当的文法变换3、选择一种语法分析的方法,并说明其原理4、根据原理给出相应的算法设计,说明主要的数据结构并画出算法流程图5、编写代码并上机调试运行通过1、写出程序运行结果2、写出相应的文档以及代码注释5源程序(包含注释)#includeusingnamespacestd;intvalue=1;charch;intiloact=0;charstr[80];v
7、oidProT(void);voidProF(void);voiderror()//出错处理函数{cout<<"语法分析未通过,表达式语法不正确"<8、t++;ch=str[iloact];ProE();if(ch==')'){iloact++;ch=str[iloact];}else{error();value=0;}}elseif(ch>='0'9、10、ch<='9'){iloact++;ch=str[iloact];}else{error();value=0;}}intmain(){cout<<"输入表达式:"<>str;ch=str[0];while(ch!='#')//进行递归下降分析{ProE();if(!value)break;}if((ch=='#')&&(value!=0))cou11、t<<"语法分析通过,表达式语法正确"<
8、t++;ch=str[iloact];ProE();if(ch==')'){iloact++;ch=str[iloact];}else{error();value=0;}}elseif(ch>='0'
9、
10、ch<='9'){iloact++;ch=str[iloact];}else{error();value=0;}}intmain(){cout<<"输入表达式:"<>str;ch=str[0];while(ch!='#')//进行递归下降分析{ProE();if(!value)break;}if((ch=='#')&&(value!=0))cou
11、t<<"语法分析通过,表达式语法正确"<
此文档下载收益归作者所有