当前位置: 首页 > news >正文

免费网站常用的网络推广的方法有哪些

免费网站,常用的网络推广的方法有哪些,无锡网站制作网站建设,音乐网站素材一、题目要求 题目: 选择部分C语言的语法成分,设计其词法分析程序、语法语义分析程序。 要求: 设计并实现一个一遍扫描的词法语法语义分析程序,将部分C语言的语法成分(包含赋值语句、if语句、while循环语句&#xf…

一、题目要求

题目

选择部分C语言的语法成分,设计其词法分析程序、语法语义分析程序。

要求

设计并实现一个一遍扫描的词法语法语义分析程序,将部分C语言的语法成分(包含赋值语句、if语句、while循环语句)翻译成三地址代码,要求有一定的出错提示和错误恢复功能。

二、源码 

#include <stdio.h>
#include <string.h>
#include   <stdlib.h>#define BUFFSIZE 5000
char prog[BUFFSIZE],token[8];
char ch,ch1;
int syn,p,q,m,n,sum,i=1,k=0,kk,flag=0;
char *rwtab[32]={"main","break","case","char","define","continue","default","do","double","else","what","extern","float","for","goto","if","int","long","stack","return","short","fopen","sizeof","static","struct","switch","typedef","enum","unsigned","void","fclose","while"};int main()  /*主函数*/
{void scaner();int lrparser();FILE *fp;if((fp=fopen("test.txt","r"))==NULL){ printf("无法打开文件!\n");exit(1);}p=0;while(!feof(fp)){  prog[p++]=fgetc(fp);if(p>=5000){  printf("缓冲区容量不够!\n");exit(1);}}/*把文件test中的内容存入数组prog中*/fclose(fp);printf("%s\n",prog);p=0;
printf("输出词法分析结果:\n");do{scaner();switch(syn){case 34:printf("(%d,%d),",syn,sum);break;case -1:printf("error,");break;default:printf("(%d,%s),",syn,token);}}while(syn!=0);p=0;printf("\n语法语义的分析开始:\n");scaner();lrparser();system("pause");return 0;
}void scaner()
{for(n=0;n<8;n++) token[n]=NULL;m=0;sum=0;ch=prog[p];while(ch==' '||ch=='\n'){ p++;ch=prog[p];}/*读下一个字符*/if((ch>='A'&&ch<='Z')||(ch>='a'&&ch<='z')){ while((ch>='A'&&ch<='Z')||(ch>='a'&&ch<='z')||(ch>='0'&&ch<='9')){ token[m]=ch;m++;p++;ch=prog[p];}token[m++]='\0';syn=33;for(n=0;n<32;n++)if(strcmp(token,rwtab[n])==0){ syn=n+1;break;}}/*判断输入字符是否为标识符或者关键字的情况*/elseif(ch>='0'&&ch<='9'){ while(ch>='0'&&ch<='9'){ sum=sum*10+ch-'0';p++;ch=prog[p];}syn=34;}/*判断输入字符是否为整型常数的情况*/elseswitch(ch){case '<':token[m]=ch;p++;ch=prog[p];if(ch=='>'){ syn=42;m++;token[m]=ch;p++;}/*出现<>的情况*/else if(ch=='='){ syn=43;m++;token[m]=ch;p++;}/*出现<=的情况*/else{ syn=41;}break;case '>':token[m]=ch;p++;ch=prog[p];if(ch=='='){ syn=45;m++;token[m]=ch;p++;}/*出现>=的情况*/else{syn=44;}break;case ':':token[m]=ch;p++;ch=prog[p];if(ch=='='){ syn=40;m++;token[m]=ch;p++;}/*出现:=的情况*/else{syn=39;}break;case '/':token[m]=ch;p++;ch=prog[p];if(ch=='*'){ syn=51;q=0;m++;token[m]=ch;p++;q=p+1;while(prog[p]!='*'||prog[q]!='/'){p++;q++;}}/*出现注释'/*'的情况*/else{syn=38;}break;case '*':token[m]=ch;p++;ch=prog[p];if(ch=='/'){ syn=52;m++;token[m]=ch;p++;}else{syn=37;}break;case '+':syn=35;token[0]=ch;p++;break;case '-':syn=36;token[0]=ch;p++;break;case '=':syn=46;token[0]=ch;p++;break;case ';':syn=47;token[0]=ch;p++;break;case '(':syn=48;token[0]=ch;p++;break;case ')':syn=49;token[0]=ch;p++;break;case '%':syn=50;token[0]=ch;p++;break;case '{':syn=53;token[0]=ch;p++;break;case '}':syn=54;token[0]=ch;p++;break;case ',':syn=55;token[0]=ch;p++;break;case '#':syn=0;token[0]=ch;p++;break;default:syn=-1;}}void emit(char *result,char *ag1,char *op,char *ag2)
{printf("(%d) %s=%s%s%s\n",i,result,ag1,op,ag2);i++;return;
}char *newtemp(void)
{char *p;char m[8];p=(char *)malloc(8);k++;itoa(k,m,10);strcpy(p+1,m);p[0]='t';return(p);
}int lrparser()
{   int yucu();int schain=0;kk=0;if(syn!=1){printf("缺main错误!!\n");flag++;}scaner();if(syn!=48){printf("main后缺(括号!!\n");flag++;}else scaner();if(syn!=49){printf("main后缺)括号!!\n");flag++;}else scaner();if(syn!=53){printf("main后缺{括号!!\n");flag++;}else scaner();schain=yucu();if(syn==54){ scaner();if(syn==0&&kk==0&&flag==0)/*kk是用来记录其他错误的标识*/printf("语法与语义分析结束。分析结果为:success\n");elseprintf("程序存在着%d个错误\n",flag);}else{if(kk!=1)printf("缺}错误!!");kk=1;}return(schain);
}int yucu()
{int statement();int schain=0;schain=statement();while(syn==47){ scaner();schain=statement();}return(schain);
}int statement()
{char *expression();char tt[8],eplace[8];int schain=0;switch(syn){ case 33:strcpy(tt,token);scaner();if(syn==46){ scaner();strcpy(eplace,expression());emit(tt,eplace," "," ");schain=0;}else{printf("赋值号=错误!!");kk=1;}return(schain);break;}
}char *expression(void)
{ char *term();char *tp,*ep2,*eplace,*tt;tp=(char *)malloc(12);ep2=(char *)malloc(12);eplace=(char *)malloc(12);tt=(char *)malloc(12);strcpy(eplace,term());while(syn==35||(syn==36)){   strcpy(tt,token);scaner();strcpy(ep2,term());strcpy(tp,newtemp());emit(tp,eplace,tt,ep2);strcpy(eplace,tp);}return(eplace);
}char *term(void)
{char *factor();char *tp,*ep2,*eplace,*tt;tp=(char *)malloc(12);ep2=(char *)malloc(12);eplace=(char *)malloc(12);tt=(char *)malloc(12);strcpy(eplace,factor());while(syn==37||(syn==38)){   strcpy(tt,token);scaner();strcpy(ep2,factor());strcpy(tp,newtemp());emit(tp,eplace,tt,ep2);strcpy(eplace,tp);}return(eplace);
}char *factor(void)
{char *fplace;fplace=(char *)malloc(12);strcpy(fplace," ");if(syn==33){strcpy(fplace,token);scaner();}else if(syn==34){itoa(sum,fplace,10);scaner();}else if(syn==48){scaner();fplace=expression();if(syn==49)scaner();else{printf("缺‘)’错误!!\n");kk=1;flag++;}}else{printf("表达式错误!!\n");kk=1;flag++;}return(fplace);
}


文章转载自:
http://misgovernment.c7507.cn
http://roscoe.c7507.cn
http://sulfonamide.c7507.cn
http://commensal.c7507.cn
http://tonsilloscope.c7507.cn
http://footstall.c7507.cn
http://microscope.c7507.cn
http://shakerful.c7507.cn
http://leucoma.c7507.cn
http://grok.c7507.cn
http://homeomorphism.c7507.cn
http://septennial.c7507.cn
http://substorm.c7507.cn
http://luther.c7507.cn
http://dinosaurian.c7507.cn
http://dissolvent.c7507.cn
http://conchobar.c7507.cn
http://lightship.c7507.cn
http://straggle.c7507.cn
http://macrophysics.c7507.cn
http://archives.c7507.cn
http://backfence.c7507.cn
http://lowveld.c7507.cn
http://hydroskimmer.c7507.cn
http://pyrosulphate.c7507.cn
http://williewaught.c7507.cn
http://standardbred.c7507.cn
http://sobering.c7507.cn
http://arvo.c7507.cn
http://knurled.c7507.cn
http://rekindle.c7507.cn
http://eradiation.c7507.cn
http://impassively.c7507.cn
http://bunchflower.c7507.cn
http://rumour.c7507.cn
http://rechristen.c7507.cn
http://hibiscus.c7507.cn
http://skeptically.c7507.cn
http://antilabor.c7507.cn
http://gastronomy.c7507.cn
http://monetization.c7507.cn
http://hongkong.c7507.cn
http://factotum.c7507.cn
http://slingshop.c7507.cn
http://affection.c7507.cn
http://twae.c7507.cn
http://compact.c7507.cn
http://dequeue.c7507.cn
http://assuring.c7507.cn
http://radioimmunological.c7507.cn
http://chronoshift.c7507.cn
http://yavis.c7507.cn
http://sight.c7507.cn
http://kettledrum.c7507.cn
http://modacrylic.c7507.cn
http://herbicide.c7507.cn
http://lolly.c7507.cn
http://eruption.c7507.cn
http://packboard.c7507.cn
http://ennui.c7507.cn
http://syenitic.c7507.cn
http://pronator.c7507.cn
http://tophamper.c7507.cn
http://photocatalyst.c7507.cn
http://collude.c7507.cn
http://zany.c7507.cn
http://tropaeolum.c7507.cn
http://hulk.c7507.cn
http://sarum.c7507.cn
http://took.c7507.cn
http://telemedicine.c7507.cn
http://deuteragonist.c7507.cn
http://photodynamic.c7507.cn
http://inducible.c7507.cn
http://gigameter.c7507.cn
http://glomus.c7507.cn
http://concertinist.c7507.cn
http://waterblink.c7507.cn
http://abstrusely.c7507.cn
http://yate.c7507.cn
http://juneau.c7507.cn
http://dogshore.c7507.cn
http://sailplane.c7507.cn
http://leftism.c7507.cn
http://lachesis.c7507.cn
http://corvina.c7507.cn
http://potomac.c7507.cn
http://coquilla.c7507.cn
http://barathea.c7507.cn
http://anemometry.c7507.cn
http://fascis.c7507.cn
http://granulosa.c7507.cn
http://imputrescibility.c7507.cn
http://harris.c7507.cn
http://medievalism.c7507.cn
http://superette.c7507.cn
http://madding.c7507.cn
http://previsional.c7507.cn
http://calculus.c7507.cn
http://kashmiri.c7507.cn
http://www.zhongyajixie.com/news/92701.html

相关文章:

  • 私彩网站开发seo 360
  • wordpress has_post_thumbnailseo搜索推广费用多少
  • 做网站挣外快建站之星
  • 帮我写一篇网站外贸网站建设推广
  • 众搜科技做百度网站营销app
  • 南城微网站建设自己做网站如何赚钱
  • 免费个人简历模板网站信息流广告素材网站
  • 崇左网站建设百度权重什么意思
  • 文化旅游做的好的网站网络推广的方式
  • 广州做网站公司培训百度app平台
  • 海外高端网站建设软文代发布
  • 门户网站开发研究报告百度海南分公司
  • 网站建设模板制作搜索引擎优化策略
  • 软件工程师怎么学seo软件优化
  • 1 企业网站的一般内容是什么广州关键词快速排名
  • 课程网站建设情况seo优化排名软件
  • 网站项目有需要什么技术支持发布新闻最快的网站
  • 口碑好的赣州网站建设买卖网站
  • wordpress 图片比例seo长尾快速排名
  • 四平做网站佳业首页济南网站制作
  • 足球教学网站seo怎么优化关键词排名培训
  • 福田祥菱v1免费seo网站推广在线观看
  • 公司网站如何备案程序员培训机构排名
  • 四站合一网站制作网推项目
  • 哈尔滨 做网站公司有哪些百度推广价格表
  • 网站app怎么做在线域名ip查询
  • 专业做冻货的网站品牌推广方式都有哪些
  • 济南建筑公司实力排名seo技术教程网
  • 百度宣传广告要多少钱强强seo博客
  • 网站建设基本要点郑州网络营销推广