下载此文档

词法分析器.doc


文档分类:IT计算机 | 页数:约5页 举报非法文档有奖
1/5
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/5 下载此文档
文档列表 文档介绍
小语言词法分析器的实现
一、实验目的

通过对小语言词法分析器的设计和实现,进一步加深对词法分析器的理解,通过使用C语言来进一步加深对该语言的了解。
二、算法分析:

用C语言编写一个词法分析器,使之能够识别输入串,并把分析结果(单词符号,标识符,关键字等等)输出。输入源程序,输入单词符号,本词法分析器可以辨别关键字,标识符,常数,运算符号和某些界符,运用了文件读入来获取源程序代码,再核对该源程序代码进行词法分析,这就是词法分析器的基本功能,当词法分析器调用预处理子程序处理出一串输入字符放进扫描缓冲区之后,分析器就从此缓冲区中逐一识别单词符号,当缓冲区里的字符串处理完之后,它又调用预处理子程序类似处理新串。
程序一开始要求读入一个文本文件或代码,然后判定该文本或代码是否成功打开和读入,接着把读入的源程序打印出来,然后进行词法分析,设计一个标识符表。
三、源程序代码:
#include ""
#include <>
#include <>
#include <>
#include <>
#include <>
#include <>
#include <>
#define NULL 0
FILE *fp;
char ch;
char *keyword[8]={"do","begin","else","end","if","then","var","while"};
char *operatornum[4]={"+","-","*","/"};
char *comparison[6]={"<","<=","=",">",">=","<>"};
char *interpunction[6]={",",";",":=",".","(",")"};
//////////////////////////////////////////////////////////////////////////////////////////
bool search(char searchstr[],int wordtype)
{
int i;
switch (wordtype)
{
case 1:for(i=0;i<=7;i++)
{
if(strcmp(keyword[i],searchstr)==0)
return(true);

}
case 2:{
for(i=0;i<=3;i++)
{
if(strcmp(operatornum[i],searchstr)==0)
return(true);
}
break;
}
case 3: for(i=0;i<=5;i++)
{
if(parison[i],searchstr)==0)
return(true);
}
case 4: for(i=0;i<=5;i++)
{
if(strcmp(interpunction[i],searchstr)==0)
return(true);
}


}
return(false);
}

词法分析器 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数5
  • 收藏数0 收藏
  • 顶次数0
  • 上传人janny
  • 文件大小0 KB
  • 时间2011-06-07