博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
0916编译原理第二次作业
阅读量:7175 次
发布时间:2019-06-29

本文共 2101 字,大约阅读时间需要 7 分钟。

#include
#include
#define max 100int n=0,i=0;char token[max];char a;char word[max];void fuhao();void shuzi();main(){ char *rwtab[6]={
"begin","if","then","while","do","end"}; int p=0,j=0,k=0,m=0; int key=0; printf("请输入源程序(以#键结束):"); do{ scanf("%c",&a); word[p]=a; p++; }while(a!='#'); //关键字的判断 while(word[i]!='#') { while((word[i]>='a'&&word[i]<='z')||(word[i]>='A'&&word[i]<='Z')) { if((word[i]>='a'&&word[i]<='z')||(word[i]>='A'&&word[i]<='Z')) { token[n]=word[i]; n++; token[n]='\0'; i++; } for(k=0;k<6;k++) { key=0; if(strcmp(rwtab[k],token)==0) { printf("%s %d\n",rwtab[k],k+1); key=1; break; } } } if(key==0) { printf("%s 10\n",token); } key=1; i=i+1; n=0; } fuhao(); shuzi();}//特殊符号的判断void fuhao(){ int p=0,sign=0; for(p=0;p
') { printf("<> 22\n"); sign=1; p++; } else if(sign==0) printf("< 20\n"); break; case '>': if(word[p+1]=='=') { printf(">= 24\n"); p++; } else printf("> 23\n"); break; case '=': printf("= 25\n"); break; case ';': printf("; 26\n"); break; case '(': printf("( 27\n"); break; case ')': printf(") 28\n"); break; case '#': printf("# 29\n"); break; } }}//数字的判断void shuzi(){ int p=0,j=0,t=0,key=0; char Shu[100]; while(word[p]!='#') { key=0; while(word[p]>='0'&&word[p]<='9') { Shu[j]=word[p]; p++; j++; key=1; } if(key==1) { for(t=0;t

 

转载于:https://www.cnblogs.com/hanqilin/p/4825929.html

你可能感兴趣的文章
WPF Summary 系列指导(连载中…^_^)
查看>>
feof()的实现
查看>>
VS中Debug与Release、_WIN32与_WIN64的区别
查看>>
真正通用的SQL分页存储过程
查看>>
coredump的裁剪方法
查看>>
精选30个优秀的CSS技术和实例
查看>>
洛谷P5206 数树
查看>>
20160509-hibernate--继承映射
查看>>
删除字符串最后一个字符的几种方法
查看>>
extjs apply,applyif,override,extend 的区别
查看>>
mycat 自增id笔记
查看>>
.net开源CMS系统使用教程之:如何用We7 CMS建设全新网站
查看>>
查看表扫描次数,并对比索引对表查询的作用
查看>>
Java多线程系列目录(共43篇)
查看>>
解决MySQL登录ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using passwor)问题
查看>>
未排序数组中累加和为给定值的最长子数组长度
查看>>
在linux中安装memcache服务器
查看>>
python之if测试
查看>>
电脑操作的“奇技淫巧”
查看>>
遍历DOM树,each()遍历
查看>>