小C语言--词法分析程序
来源:互联网 发布:执业医师题库软件 编辑:程序博客网 时间:2024/05/16 17:07
#include<iostream>#include<stdio.h>#include<string.h>using namespace std;char key[6][10]={"int","main","for","if","else","while"};void check(char p[]){ int i=0; int j=0; if(p[0]>='0'&&p[0]<='9') { printf("(integer,%s)\n",p); j=1; } else { for(i=0;i<6;i++) { if(strcmp(p,key[i])==0) { printf("(keyword,%s)\n",key[i]); j=1; break; } } } if(!j) printf("(identifier,%s)\n",p);}int main(){ char p[2005]; while(gets(p)) { int i =0; char f[2005]; int j=0; for(i=0;p[i]!='\0';i++) { if(p[i]==' '||p[i]=='\t'||p[i]=='\n') { if(j!=0) { f[j]='\0'; check(f); j=0; } } else if(p[i]=='+'||p[i]=='-'||p[i]=='*'||p[i]=='/') { if(j!=0) { f[j]='\0'; check(f); j=0; } printf("(operator,%c)\n",p[i]); } else if(p[i]=='='&&p[i+1]=='='||p[i]=='<'&&p[i+1]=='='||p[i]=='>'&&p[i+1]=='='||p[i]=='!'&&p[i+1]=='=') { if(j!=0) { f[j]='\0'; check(f); j=0; } printf("(operator,%c%c)\n",p[i],p[i+1]); i++; } else if(p[i]=='='||p[i]=='<'||p[i]=='>') { if(j!=0) { f[j]='\0'; check(f); j=0; } printf("(operator,%c)\n",p[i]); } else if(p[i]=='{'||p[i]=='}'||p[i]=='('||p[i]==')'||p[i]==','||p[i]==';') { if(j!=0) { f[j]='\0'; check(f); j=0; } printf("(boundary,%c)\n",p[i]); } else { f[j++]=p[i]; } } } return 0;}
阅读全文
0 0
- 小C语言--词法分析程序
- 小C语言--词法分析程序
- 小C语言--词法分析程序
- 小C语言--词法分析程序
- 小C语言--词法分析程序
- 小C语言--词法分析程序
- 小C语言--词法分析程序
- 小C语言--词法分析程序
- 小C语言--词法分析程序
- 小C语言--词法分析程序
- 小C语言--词法分析程序
- 小C语言--词法分析程序
- 小C语言--词法分析程序
- 小C语言--词法分析程序
- 3666 小C语言--词法分析程序
- 小C语言--词法分析程序
- 3666 sdut 小C语言--词法分析程序
- SDUT 小C语言词法分析
- tensorflow 中 eval()和run()的区别?
- mybaits知识点(1)
- 小球跟随鼠标移动效果
- kafka简介
- Python2.7 环境变量设置
- 小C语言--词法分析程序
- checkbox的选择
- jQuery父级以及同级元素查找介绍 --zsl 待整合
- 在Windows上Nginx安装教程
- 软件测试Bug(缺陷)
- RecycleView多条目加载
- 互联网架构演进
- freeline使用入门
- 电脑CPU的几GHz是什么含义?