1 / 5
文档名称:

词法分析器.doc

格式:doc   页数:5页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

词法分析器.doc

上传人:janny 2011/6/7 文件大小:0 KB

下载得到文件列表

词法分析器.doc

文档介绍

文档介绍:小语言词法分析器的实现
一、实验目的

通过对小语言词法分析器的设计和实现,进一步加深对词法分析器的理解,通过使用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);
}

最近更新