预测分析算法

预测分析算法

ID:44677980

大小:164.00 KB

页数:13页

时间:2019-10-24

预测分析算法_第1页
预测分析算法_第2页
预测分析算法_第3页
预测分析算法_第4页
预测分析算法_第5页
资源描述:

《预测分析算法》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、#include#includc"stdio.h"#include"string.h"typedefstruct{charleftSym;charrightSym[10];intlength;(grammarElement;//文法的结构体intgCount=0;//计数文法的个数grammarElementgramSet[20];〃存放文法的缓存区char*analist[10][10];//分析列表typcdcfstruct{charch[20];charsize;}FI_FO;//firstfollow集合结构体FI_FOfirst[26],follow[26

2、];〃非终结符的first集合,非终结符的fllow集合intflagH[26],flagFO[26];//对应的first.follow集的标志intVnCount=0,VtCount=0;charVNf26];charVT[26J;intFI[26],FO[26];charstack[10];//栈charInput_Str[81]={,,};〃输入缓冲区iniTop_Of_Stack,Analysised;〃堆栈指针。和分析列指针intLen_Of_Input;//输入字符长度intStep_Of_Ana=0;//分析步骤计数intj,k,x,y,temp;voidinita

3、l();//初始化intinput();//文法的输入voidprint。;//打印出來文法intset();//设置VT,VNintcheck(charch);//终结符返回1intlocation(char*p,chara);〃给定字符查其在VT,VN中的下标voidfirstFollowO”/求first,follow集合voidprintVnVt();//打印终结字符,非终结字符voiddisFirst();//voiddisFollovv();//voidaddchar(FI_FO*p,charch);//在P后追加字符chvoidaddAll(FI_FO*P,FI_FO*D

4、);//D追加字符串到PintfirstSet(chartemp);//求first集合inifollowSel(chartemp);//求follow集合intpreFollow();//预先扫描voidsetTable();//构造分析列表intChar2Int(char);〃返回下标,用于分析表voidPrint_Step();//输出intlocation(char*p,chara)〃给定字符査其在VT,VN中的卜标inti;for(i=0;i<26;i++)if(a==*(p+i))returni;return-1;//没查到intChar2Int(charmark)//返回

5、卜'标,用于分析表{intii;//下标值for(ii=0;ii=VnCount)for(ii=0;ii

6、Sr;〃压入开始字符getchar();printfC请输入你要分析的字符串:”);gcts(Input_Str);//输入要检测分析的字符串printf("#%s",Input_Str);printf(n####");printf(nH);Len_Of_Input=strlen(Input_Str);//输入字符串的长度if(Input_Str[Len_Of_I叩u卜1]!=$)//下面是对输入字符串的初步判断,并对错误输入进行处理,{printf("输入没冇终止字符“);Analysised=Len_Of_Input*2;//中止下面的操作t=0;}el

7、sefor(i=0;i<(Len_Of_Tnput-l);i++){if(location(VT,Input_Str[i])==-1){printf(“待分析的字符串中含有终结符以外的字符”);Analysised=Len_Of_Input*2;//中止下面的操作break;elset=lif(t==l)printf(“步骤分析栈剩余输入串推导所用产牛式或匹配”);while(Analysised

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。