程序设计语言与编译实验:C语言词法分析器的设计与实现
一、实验目的及要求
本次实验通过用C语言设计、编制、调试一个词法分析子程序,识别单词,实现一个C语言词法分析器,经过此过程可以加深对编译器解析单词流的过程的了解。
运行环境:
硬件:windows 10
软件:Code::Blocks 17.12
二、实验步骤
1.查询资料,了解词法分析器的工作过程与原理。
2.分析题目,整理出基本设计思路。
3.实践编码,将设计思想转换成C语言编码实现,编译运行。
4.测试功能,自己选取C 语言的一个适当大小的子集,多次测试,查看运行结果,检测改分析器的分析结果是否正确。
三、实验内容
1.源代码
#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;
el