文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院程序开发数据结构语法分析
精品推荐
特别推荐
·网游外挂编写完全攻略
·开发WDM型的USB设备驱动程序
·数据库设计范式深入浅出
·理解软件保护技术之序列号方式
·大型网站必鉴:分销渠道的结构
·你的代码真的很健壮吗
·利用HOOK拦截封包原理
·四种网络游戏外挂的设计方法
·程序语言效率比较
·五子棋算法
·正则表达式从入门到精通
·SQL Server不能启动的常见故障
·Windows应用程序设计的基本术语
·软件本地化与汉化
·Windows中断编程
·windows nt 4.0中文版的开机过程
热点TOP10
·网游外挂编写完全攻略
·兵之利器 软件开发辅助工具纵览
·开发WDM型的USB设备驱动程序
·DCOM揭秘之六
·VS2008 第一次安装心得及使用
·游戏外挂设计技术探讨
·《数据结构》试题下载2004
·饺子馆的物流故事之二——供应链视角下的缺货及品类管理
·代码静态分析工具PC-LINT安装配置
·使用BHO定制你的IE浏览器
·原始套接字透析之Raw Socket基础
·基于CS模式的Winsock网络通讯程序
·程序语言效率比较
·《Windows程序设计》读书笔记之六
·四种网络游戏外挂的设计方法
·用CVSNT与WINCVS实现CVS的架设
·利用HOOK拦截封包原理
·简单对象访问协议(SOAP)初级指南
·带你全面了解数据库应用系统的开发步骤
·UML业务建模实例分析

语法分析

日期:2007年5月3日 作者: 查看:[大字体 中字体 小字体]


/*这是编译原理的一个作业题,是作语法分析的.建表是手工的,因此具有些局限性,不过可以给大家参考。*/
#include<stdio.h>
main()
{
 char b[100],a[50];
 int k,j,p,i,v,t;
 int q1,q2,q3,q4,q5,f;
 char c[6][7]=; /*建的语法分析表,语法如下:E::TH;H::+TH;H::空;T::FI;I::*FI;I::空;F::i;F::(E).0表示空,N表示出错*/
    char sting1[5]=;
  char sting2[5]=;
 char sting3[5]=;
 char sting4[5]=;
 char sting5[5]=;/*设置字符串以供比较之用*/
loop:
 k=0;
 j=0;
 p=0;
 k=0;
 i=0;
 f=0;
   q2=0;
   v=0;
   t=0;
   printf("输入要验证的字符,只包括'+','i','*','(',')',以#号结束: ");
 while(b[i-1]!='#'&&b[i-1]!=' ')/*输入语句*/
 {
  scanf("%c",&b[i]);
      i++;
 }

  for(q1=0;q1<i;q1++)
 {
  if(b[q1]!='i'&&b[q1]!='+'&&b[q1]!='*'&&b[q1]!='('&&b[q1]!=')'&&b[q1]!='#')
   goto exit;/*看输入是否有非法字符*/
 }
  a[p]='#';
    p++;
 a[p]='E';/*从E开始推*/
loop1:
 k=0;j=0;
 while(c[k][0]!=a[p])
 {
  k++;
 if(a[p]=='#')
  goto loop3;
 }
  while(c[0][j]!=b[f]&&j<7)
  j++;/*查表*/
/*以下是推导过程*/

if(c[k][j]=='1'c[k][j]=='2'c[k][j]=='3'c[k][j]=='4'c[k][j]=='5')
switch(c[k][j])/*和字符串匹配*/
{
case'1':/*和sting1匹配*/
 {
  q1=1;
     q2=0;
  p--;
  while(q1>=0)
  {
   p++;
   a[p]=sting1[q2];
         q1--;
         q2++;
  }
 }break;
case'2':/*和sting2 匹配*/
 {
  q1=2;
     q2=0;
  p--;
  while(q1>=0)
  {
   p++;
   a[p]=sting2[q2];
         q1--;
      q2++;
  }
 }break;
case'3':/*和sting3匹配*/
 {
  q1=1;
     q2=0;
  p--;
  while(q1>=0)
  {
   p++;
   a[p]=sting3[q2];
         q1--;
         q2++;
  }
 }break;
case'4':/*和sting4匹配*/
 {
  q1=2;
     q2=0;
  p--;
  while(q1>=0)
  {
   p++;
   a[p]=sting4[q2];
         q1--;
         q2++;
  }
 }break;
case'5':/*和sting5匹配*/
 {
  q1=2;
     q2=0;
  p--;
  while(q1>=0)
  {
   p++;
   a[p]=sting5[q2];
         q1--;
      q2++;
  }
 }break;
}
/*和单字符匹配*/
 if(c[k][j]=='N')
  goto exit;
 else if(c[k][j]=='0')
 { p--;
 goto loop1;}
 else if(c[k][j]=='i')
  a[p]=c[k][j];
 if(a[p]=='i'a[p]=='+'a[p]=='*'a[p]=='('a[p]==')')
 {
  if(a[p]==b[f])
  {p--;
  f++;
  goto loop1;
  }
  else
           goto exit;
 }
 else if(a[p]=='E'a[p]=='H'a[p]=='T'a[p]=='I'a[p]=='F')
   goto loop1;/*反复,直到结束*/
 else if(a[p]=='#')
  {
loop3:   if(a[p]==b[f])
   { v=1;
    goto exit;
   }
   else
    goto exit;
  }
   else
    goto exit;


[1] [2] 下一页 




上一篇:让IE成为你的软件集成平台之一

下一篇:网游外挂编写完全攻略

语法分析 相关文章:
·校园网网络方案设计及分析
·html教学+HTML语法大全
·C语言的常用库函数使用方法分析及用途
·静态分析技术-IDA Pro简介
·BT下载速度变慢原因解读及应对方法分析
·文晟扫描5. 0 之破解经过 算法分析
·性能分析工具的使用
·ORACLE UPDATE 语句语法与性能分析看法
·用java编写的小游戏源代码分析
·[任务]20-80级剧情任务分析
语法分析 相关软件:
·《李阳疯狂英语突破语法MP3》
·爱的语法
·3D 动画与建模:人体的综合与分析技术
·同花顺TopView(赢富)深度决策证券行情分析软件(T+1)体验版 V7.40.72
·看动画学英语语法(语音版)7-1...4
·系统分析师考试培训视频教程9
·赢家-江恩证券分析系统 V6.22 未来先知版
·《股票常识与技术分析》
·SQL语法大全
·薄冰实用英语语法详解 IS0

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.viphot.com
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.viphot.com All Rights Reserved. 鄂ICP备05000083号Powered by:viphot