#include char data[20][20]; //..." />

C++算符优先分析语法分析

C++算符优先分析语法分析_第1页
1/13
C++算符优先分析语法分析_第2页
2/13
C++算符优先分析语法分析_第3页
3/13
#include "stdio.h" #include "stdlib.h" #include "iostream.h" #include #include 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(),shouji(),weiji(),ab(),analysis(),discrimin(),tuichu(); //创建文法优先关系表 void main() { int i,j; 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"); exit(-1); } } } } //////////////////////////////// for(i=0;i'Z')&&st[i][j]!='-'&&st[i][j]!='>'&&st[i][j]!='|') lable[k++]=st[i][j]; } } // lable[k]='#'; // lable[k+1]='\0'; ////////////////////////////////////////////// printf("请选择:\n"); printf("1.非终结符的 ...

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

碎片内容

C++算符优先分析语法分析

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