南华大学实验名称:算符优先分析程序学院:计 算 机 学 院专业班级:本 2010 电气信息类 03 班学号:20104030342 姓名:谢志兴指导教师:吴取劲日期:2012 年6 月12 日实验二算符优先分析程序一、实验目的调试并完成一个算符优先分析程序,加深对算符优先分析原理的理解。二、实验要求算符优先分析程序的功能:输入:所给文法的源程序字符串、待匹配字符串。输出:转化后的文法、每个非终结符的FIRSTVT 集和 LASTVT 集、算符优先分析表、规约过程。三、源程序代码:#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; //转化后文法规则个数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'Z') { printf(" 不是算符文法 !\n"); exit(-1); } if(st[i][j]>='A'&&st[i][j]<='Z') { if(st[i][j+1]>='A'&&st[i][j+1]<='Z') { printf(" 不是算符文法 !\n");...