3666 小C语言--词法分析程序
来源:互联网 发布:淘宝网价格 编辑:程序博客网 时间:2024/06/05 05:07
3666 小C语言–词法分析程序
#include<stdio.h>#include<string.h>using namespace std;int isDigit(char ch){ if(ch >= '0'&& ch <= '9') return 1; else return 0;}int isCharacter(char ch){ if(ch >= 'a'&& ch <= 'z'||ch >= 'A'&& ch <= 'Z') return 1; else return 0;}int isOperator(char ch){ if(ch == '+'|| ch == '-'||ch == '*'|| ch == '/'||ch == '>'|| ch == '<'||ch == '!'|| ch == '=') return 1; else return 0;}int isKeyword(char tmp[]){ if(!strcmp(tmp,"main")||!strcmp(tmp,"if")||!strcmp(tmp,"else")||!strcmp(tmp,"for")||!strcmp(tmp,"while")||!strcmp(tmp,"int")) return 1; else return 0;}int get(){ char ch; char tmp[20]; int i=0; while(~scanf("%c",&ch)) { if(ch == '\t'||ch == ' ') continue; else if (isDigit(ch)) { while(isDigit(ch)) { tmp[i++] = ch; scanf("%c",&ch); } tmp[i] = '\0'; i=0; printf("(integer,%s)\n",tmp); ungetc(ch,stdin); } else if(ch == '{'||ch == '}'||ch == '('||ch ==')'||ch == ','||ch ==';') printf("(boundary,%c)\n",ch); else if (isCharacter(ch)||ch == '_') { while(isCharacter(ch)||ch == '_'||isDigit(ch)) { tmp[i++] = ch; scanf("%c",&ch); } tmp[i] = '\0'; i=0; if(isKeyword(tmp)) printf("(keyword,%s)\n",tmp); else printf("(identifier,%s)\n",tmp); ungetc(ch,stdin); } else if (isOperator(ch)) { while(isOperator(ch)) { tmp[i++] = ch; scanf("%c",&ch); } tmp[i] = '\0'; i=0; printf("(operator,%s)\n",tmp); ungetc(ch,stdin); } }}int main(){ get();}
阅读全文
0 0
- 3666 小C语言--词法分析程序
- 小C语言--词法分析程序
- 小C语言--词法分析程序
- 小C语言--词法分析程序
- 小C语言--词法分析程序
- 小C语言--词法分析程序
- 小C语言--词法分析程序
- 小C语言--词法分析程序
- 小C语言--词法分析程序
- 小C语言--词法分析程序
- 小C语言--词法分析程序
- 小C语言--词法分析程序
- 小C语言--词法分析程序
- 小C语言--词法分析程序
- 小C语言--词法分析程序
- 小C语言--词法分析程序
- 3666 sdut 小C语言--词法分析程序
- SDUT 小C语言词法分析
- 使用pyinstaller将python开发的youtube下载程序打包成exe
- 【嵌入式学习历程8】数据结构之链表
- LeetCode 39. Combination Sum && 40. Combination Sum II && 216. Combination Sum III
- mysql5.7官网直译优化和索引--mysql如何使用索引
- 【十六】机器学习之路——决策树算法(2)
- 3666 小C语言--词法分析程序
- scrapy爬取豆瓣电影top250并存储到mysql
- 《电路计算C++与MATLAB》学习笔记(六)
- 触摸屏:屏幕键盘(虚拟键盘)解决方案
- C/C++中static关键字作用
- poj1521
- centos6安装elasticsearch6错误笔记
- ThinkPadT420装双系统
- 2147 表达式语法分析——递归子程序法