电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

算符优先分析算法

算符优先分析算法_第1页
1/13
算符优先分析算法_第2页
2/13
算符优先分析算法_第3页
3/13
编译原理实验一 实验目的设计、编制并调试一个算符优先分析算法,加深对此分析法的理解二 实验过程先在算符栈置“$”,然后开始顺序扫描表达式,若读来的单词符号是操作数,这直接进操作数栈,然后继续读下一个单词符号。分析过程从头开始,并重复进行;若读来的是运算符 θ2 则将当前处于运算符栈顶的运算符 θ1的入栈优先数 f 与 θ2的比较优先函数 g 进行比较。2.2 各种单词符号对应的种别码单词符号种别码单词符号种别码Main1*17Int2/18Char3==39if4!=40else5<=38for6>23while7>=37letter(letter \digit)*10=21digit digit*20;34=14(26+15)27-16等等…2.3 算符优先程序的功能 完成一个交互式面对对象的算符优先分析程序,而一个交互式面对对象的算符优先分析程序基本功能是:(1) 输入文法规则(2) 对文法进行转换(3) 生成每个非终结符的 FirstVT 和 LastVT(4) 生成算符优先分析表(5) 再输入文法符号(6) 生成移进规约步骤三 设计源码算符优先分析器#include "stdio.h"#include "stdlib.h"#include "iostream.h"char data[20][20]; //算符优先关系char s[100]; //模拟符号栈 s char lable[20]; //文法终极符集char input[100]; //文法输入符号串char string[20][10]; //用于输入串的分析int k; char a; int j; char q; int r; //文法规则个数int r1; int m,n,N; //转化后文法规则个数char st[10][30]; //用来存储文法规则char first[10][10]; //文法非终结符 FIRSTVT 集char last[10][10]; //文法非终结符 LASTVT 集int fflag[10]={0}; //标志第 i 个非终结符的 FIRSTVT 集是否已求出int lflag[10]={0}; //标志第 i 个非终结符的 LASTVT 集是否已求出int deal(); //对输入串的分析int zhongjie(char c); //推断字符 c 是否是终极符int xiabiao(char c); //求字符 c 在算符优先关系表中的下标void out(int j,int k,char *s); //打印 s 栈void firstvt(char c); //求非终结符 c 的 FIRSTVT 集void lastvt(char c); //求非终结符 c 的 LASTVT 集void table(); //创建文法优先关系表void main(){int i,j,k=0; printf("请输入文法规则数:");scanf("%d",&r);printf("请输入文法规则:\n");for(i=0;i

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

算符优先分析算法

确认删除?
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群