词法分析器 c 语言

#include /*定义I/O库所用的某些宏和变量*/#include /*定义字符串库函数*/#include /*提供有关屏幕窗口操作函数*/#include /*分类函数*/#includechar prog[80]={'\0'}, tok
摘要由CSDN通过智能技术生成
#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++]=
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值