实验要求:
1.编写代码实现程序的词法分析
2.根据对源程序的字符流进行扫描和分解,从而识别出一个个单词或符号
实验代码:
#include<string.h>
#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>
//定义关键字
char *Key[10]={“main”,“void”,“int”,“char”,“printf”,“scanf”,“else”,“if”,“return”};
char Word[20],ch; //存储识别出的单词流
//判断是否为字母
int IsAlpha(char c){
if(((c<=‘z’)&&(c>=‘a’))||((c<=‘Z’)&&(c>=‘A’)))
return 1;
else
return 0;
}
//判断是否是数字
int IsNum(char c){
if(c>=‘0’&&c<=‘9’)
return 1;
else
return 0;
}
//识别关键函数
int IsKey(char *Wrod){
int m,i;
for(i=0;i<9;i++){
if((m=strcmp(Word,Key[i]))==0)
{
return 1;
}
}
return 0;
}
//扫描函数
void scanner(FILE *f