#include<stdio.h> /*定义I/O库所用的某些宏和变量*/
#include<string.h> /*定义字符串库函数*/
#include<conio.h> /*提供有关屏幕窗口操作函数*/
#include<ctype.h> /*分类函数*/
#include<stdlib.h>
char prog[80]={'\0'},
token[20]; /*存放构成单词符号的字符串*/
char ch;
int n,sign,
m,p; /*p是缓冲区prog的指针,m是token的指针*/
char *key[40]={"int","char","float","double","for","else","if","do","while","auto","short","long",
"struct","union","enum","typedef","const","unsigned","signed","extern","register","static",
"volatile","void","switch","case","go","continue","break","default","sizeof","return" };
int IsKey(char *token){
for(int i=0;i<32;i++){
if(strcmp(token,key[i])==0)
return 1;
}
return 0;
}
void scaner(){
m=0;
for(n=0;n<20;n++)
token[n]='\0';
ch=prog[p++];
while(ch==' '||ch=='\t'||ch=='\n')//忽略空格 制表符 换行符
ch=prog[p++];
/*ch为字母字符时*/
if(isalpha(ch)){
//token[m]=ch;
while(isalpha(ch)||isdigit(ch)){ /*ch 为字母字符或者数字字符*/
token[m++]=
词法分析器 c 语言
最新推荐文章于 2024-07-02 22:22:32 发布
本文介绍如何使用C语言来构建一个词法分析器,通过实例展示了词法分析器的运行结果,揭示了编译原理在实际编程中的应用。
摘要由CSDN通过智能技术生成