#include<bits/stdc++.h>
#include<cstring>
using namespace std;
//保留字表
static char reserve[32][20] = {
"auto", "break", "case", "char", "const", "continue",
"default", "do", "double", "else", "enum", "extern",
"float", "for", "goto", "if", "int", "long",
"register", "return", "short", "signed", "sizeof", "static",
"struct", "switch", "typedef", "union", "unsigned", "void",
"volatile", "while"
};
//界运算符表
static char operatorLimit[36][10] = {
"+", "-", "*", "/", "<", "<=", ">", ">=", "=", "==",
"!=", ";", "(", ")", "^", ",", "\"", "\'", "#", "&",
"&&", "|", "||", "%", "~", "<<", ">>", "[", "]", "{",
"}", "\\", ".", "\?", ":", "!"
};
char IdenOperator[10000][50] = {""};
/********查找保留字*****************/
int searchRev(char reserveWord[][20], char s[])
{
for (int i = 0; i < 32; i++)
{
if (strcmp(reserveWord[i], s) == 0)
{//若成功查找,则返回种别码
return i + 1;//返回种别码
}
}
return -1;//否则返回-1,代表查找不成功,即为标识符
}
/*编译预处理*/
void Filter(char r[],int source)
{
char cmptString[100000];
int count = 0;
for(int i = 0 ; i <= sourc
词法分析器 C++实现
最新推荐文章于 2024-07-02 22:22:32 发布
本文详细介绍了如何使用C++编程语言实现一个词法分析器,涵盖了词法分析的基本概念、步骤以及关键代码实现,帮助读者理解词法分析在编译原理中的重要性,并提供了一个实际的编程实践案例。
摘要由CSDN通过智能技术生成