编译原理算符优先分析C++源代码(共6页).doc
《编译原理算符优先分析C++源代码(共6页).doc》由会员分享,可在线阅读,更多相关《编译原理算符优先分析C++源代码(共6页).doc(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上算符优先分析器源代码:#include#include#define MAX 100using namespace std;struct Stack /符号栈char dataMAX;int top;char Terminal6=;,(,),a,+,#; /终结符集合char Table66= /算符优先关系表, , , , , =, , , , , !, , , , , !, , , , , !, , !, , !, =;/判断是否为终结符,是返回其所在位置i,否则返回-1int Is_Vt(char ch,char Terminal6)int i;for(i=0;
2、i6;i+)if(ch=Terminali) /输入符为终结符return i; return -1;/读入输入串,返回其长度int Getchar(int length,char StringMAX)int i;coutlength;coutendl*该输入串为:;for(i=0;iStringi; return length;void PrintStack(Stack &st, int top) /输出栈中的内容for(int i=0;i=top;i+) coutst.datai ;cout tt;int main()Stack st; int length=0,Len,k;char St
3、ringMAX,ch;Len=Getchar(length,String); /获得输入串int j=0;ch=Stringj; /指向第一个输入符st.top=0;st.datast.top=#; /将#入栈coutendl*分析过程*endl;cout符号栈setw(15)当前符号setw(15)剩余输入串setw(20)移进或归约endl; /输出格式while(st.top!=1 | ch!=#)if(Is_Vt(ch,Terminal)!=-1) /输入符为终结符k=Is_Vt(ch,Terminal); /获取分析表Table的第二个下标int m,t; /t指向终结符在栈中的位置
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译 原理 优先 分析 C+ 源代码
限制150内