《编译原理算符优先分析算法》由会员分享,可在线阅读,更多相关《编译原理算符优先分析算法(5页珍藏版)》请在金锄头文库上搜索。
1、算符优先分析算法1.该实验实现算符优先分析算法,由于时间关系,尚未实现用程序计算 FIRSTVT,LASTVT,因此本实验的各种非终结符及其之间的优先关系人为初始化。本实验参考例 4.12 及其优先关系表。2.算符优先关系表参考课本 74 页表 4.4+ * id ( ) #+ * id ( # # include# include# define MAX 50 /定义最大长度为 50,可以变化struct sstchar sMAX;int ps;/栈顶终结符指针int top;/栈顶指针;struct inputstchar inMAX; int pin;/当前字符指针;/定义算符及其优先关
2、系表char ch6 = +,*,i,(,),#;char chrelation66=,) for(cursor = 0;cursor 0 & S.ps S.top)if( is_VN(S.sS.ps-1) & is_VN(S.sS.ps+1)S.sS.ps-1 = N;S.top = S.ps-1; S.ps = S.top -1;printf( 归约n);else S.sS.top = N; S.ps = S.top -1;printf( 归约n);elsefor(cursor = 0;cursor = S.top;cursor+)printf(%c,S.scursor);printf( %c ,rela(S.sS.ps,input.ininput.pin);printf( %c ,input.ininput.pin);printf( );for(cursor = input.pin+1;cursor strlen(input.in);cursor+)printf(%c ,input.incursor);printf( 出错!);return;5.问题不知如何用计算机程序得到 FIRSTVT,LASTVT