博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
编译原理词法分析程序
阅读量:5246 次
发布时间:2019-06-14

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

#include 
#include
#include
#include
#include
using namespace std;#define MAX 22char ch =' ';string key[15]={"switch","break","if","then","else","while","write","read","do", "int","const","char","float","double","for"};int Iskey(string c) //关键字判断{ int i; for(i=0;i
='a'))||((c<='Z')&&(c>='A'))) return 1; else return 0;}int IsDigit(char c) //判断是否为数字{ if(c>='0'&&c<='9') return 1; else return 0;}void analyse(FILE *fpin) //词法分析程序{ string arr=""; while((ch=fgetc(fpin))!=EOF) { arr=""; if(ch==' '||ch=='\t'||ch=='\n') { } else if(IsLetter(ch)) { while(IsLetter(ch)||IsDigit(ch)) { if((ch<='Z')&&(ch>='A')) ch=ch+32; arr=arr+ch; ch=fgetc(fpin); } fseek(fpin,-1L,SEEK_CUR); if (Iskey(arr)) { cout<
<<"\t$关键字"<
' :{ch=fgetc(fpin); if(ch=='=') cout<<">="<<"\t$运算符"<
')cout<<">>"<<"\t$输入控制符"<
"<<"\t$运算符"<
') cout<<"<>"<<"\t$运算符"<
>in_fn; if((fpin=fopen(in_fn,"r"))!=NULL) break; else cout<<"文件路径错误!请输入源文件名(包括路径和后缀名):"; } cout<<"\n********************分析如下*********************"<

转载于:https://www.cnblogs.com/liesun/p/7350340.html

你可能感兴趣的文章
python的多行注释
查看>>
连接Oracle需要jar包和javadoc文档的下载
查看>>
UVA 10976 - Fractions Again?!
查看>>
Dreamweaver cc新版本css单行显示
查看>>
【android】安卓的权限提示及版本相关
查看>>
JavaScript可否多线程? 深入理解JavaScript定时机制
查看>>
IOS基础学习
查看>>
PHP 导出 Excell
查看>>
Java基础教程——网络基础知识
查看>>
Kruskal基础最小生成树
查看>>
浅谈算法和数据结构: 一 栈和队列
查看>>
Java内部类详解
查看>>
【hdu 1429】胜利大逃亡(续)
查看>>
图论-次短路求法
查看>>
What's New for Visual C# 6.0
查看>>
ExtJs学习笔记之ComboBox组件
查看>>
关于收费软件
查看>>
getopt_long
查看>>
TensorFlow MNIST CNN 代码
查看>>
javascript之Style物
查看>>