简单语法分析程序

简单语法分析程序

ID:35433684

大小:54.64 KB

页数:6页

时间:2019-03-24

简单语法分析程序_第1页
简单语法分析程序_第2页
简单语法分析程序_第3页
简单语法分析程序_第4页
简单语法分析程序_第5页
资源描述:

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

1、#include#include#include#define_KEY_WORD_END"waitingforyourexpanding"typedefstruct{inttypenum;char*word;}WORD;charinput[255];chartoken[255]="";intp」nput;intp_token;charch;char*KEY_WORDS[]={"begin,,;,if,,/"thenH/,,while";,do,,/,,

2、end,,/_KEY_WORD_END};WORD*scaner();voidIrParserf);voidyucu();voidstatement));voidstatement();voidexpression();voidterm();voidfactor();intsyn;intkk;WORD*oneword=newWORD;voidmain(){intover=l;printf("EnterYourwords(endwith#):");scanf("%[A#]s",input);p_input=O;

3、printf('"Yourwords:%s蔦input);oneword=scaner();IrParserf);printf("press#toexit:");scanf(,,%[A#]s"/input);}voidIrParserf)讦(syn==l){oneword=scaner();yucu();讦(syn==6){oneword=scaner();if(syn==O&&kk==O){printff吆s”,“success”);}else{if(kk!=l){printf(,,%s,,/n

4、缺'end'错误”);kk=l;}}}}else{printf(”%s“,“缺'begin'错误”);kk=l;}}voidyucu(){statement!);while(syn==26){oneword=scaner();statement));}}voidstatement(){if(syn==10){oneword=scaner();if(syn==18){oneword=scaner();expression();}else{printf(”%sT赋值号错误”);kk=l;}}else{printf

5、("%s'7'语句错误”);kk=l;}voidexpression(){term();while(syn==13

6、

7、syn==14){oneword=scaner();term();}}voidterm(){factor();while(syn二=15

8、

9、syn二=16){oneword=scaner();factor();}}voidfactor(){if(syn==10

10、

11、syn==ll){oneword=scaner();}elseif(syn==27){oneword=scaner();expres

12、sion();if(syn==28){oneword=scaner();}else{printf(”%s罗丁错误”);kk=l;}}else{printf(”%s:表达式错误“);kk=l;}}charm_getch(){ch=input[p_input];p_input=p_input+1;return(ch);}voidgetbc(){while(ch=='J

13、ch==10){ch=input[p_input];p_input=p_input+1;}}voidconcat(){token[p_token]

14、=ch;p_token二p_token+1;token[p_token]='';}intletter(){if(ch>='a,&&chv-zT

15、ch>=7V&&ch<='Z,)return1;elsereturn0;}intdigit(){if(ch>=,0,&&ch<=,9')return1;elsereturn0;}intreserve(){inti=0;while(strcmp(KEY_WORDS[i]/_KEY_WORD_END)){if(!strcmp(KEY_WORDS[i],token)){

16、returni+1;}i=i+l;}return10;}voidretract(){p」nput=p」nput-1;}char*dtb(){returnNULL;}WORD*seaner(){WORD*myword=newWORD;myword->typenum=10;syn二myword・>typenum;myword->word=,,n;p_token=0;m_getch();getbc();i

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

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

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