词法分析程序
一、实验目的
通过设计编制调试一个具体的词法分析程序,加深对词法分析原理的理解。并掌握在对程序设计语言源程序进行扫描过程中将其分解为各类单词的词法分析方法。
编制一个读单词过程,从输入的源程序中,识别出各个具有独立意义的单词,即基本保留字、标识符、常数、运算符、分隔符五大类。并依次输出各个单词的类型码及单词符号的自身值。(遇到错误时可显示“Error”,然后跳过错误部分继续显示)。
二、实验要求
本实验要求:①要求能熟练使用C或C++程序设计语言编程;②在上机之前要有详细的设计报告;③要编写出完成相应任务的程序并在计算机上准确地运行;完成一个简单的词法分析程序;④实验结束后要写出上机实验报告。
三、实验内容
#include
#include <stdlib.h>
#include <stdio.h>
using namespace std;
//关键字
string KEYWORD[15]={“if”,“else”,“void”,“return”,“while”,“then”,“for”,“do”,
“int”,“char”,“double”,“float”,“case”,“cin”,“cout”};
char SEPARATER[8]={’;’,’,’,’{’,’}’,’[’,’]’,’(’,’)’}; //分隔符
char OPERATOR[8]={’+’,’-’,’’,’/’,’>’,’<’,’=’,’!’}; //运算符
char FILTER[4]={’ ‘,’\t’,’\r’,’\n’}; //过滤符
const int IDENTIFIER=100; //标识符值
const int CONSTANT=101; //常数值
const int FILTER_VALUE=102; //过滤字符值
/判断是否为关键字/
bool IsKeyword(string word){
for(int i=0;i<15;i++){
if(KEYWORD[i]==word){
return true;
}
}
return false;}
/判断是否为分隔符/
bool