本文主要是介绍编译原理实验1——词法分割,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
这个实验我采用的方法是将字符(or数字)和运算符切割开来,代码很简单也不想解释了。
使用方法:新建三个文件keyword.in,operator.in,value.in
keyword.in里首先一个整数x表示关键字的个数
接下来x行每行一个字符串和一个整数分别表示一个关键字和对应键值
operator.in里首先一个整数x表示运算符的个数
接下来x行每行一个字符串和一个整数分别表示一个关键字和对应键值
value.in里有两个整数a,b,分别表示变量和数字的键值
直接输入对应代码即可
代码如下:
#include<cstdio>
#include<string>
#include<map>
#include<cstring>
#include<algorithm>
using namespace std;
const int N = 25;
const int M = 100005;
const int TSIZE = 105;
char Buffer[M];
char Keyword[N][N];
char Oper[N][N];
char tmp[N * 4][TSIZE];
int tail,tlen[N * 4];
int tcnt,Blen;
int Opernum,Kewdnum;
int val1[N],val2[N];
int Numval,Varval;
map<string,int> mp;
bool isblank(char c){if(c == ' ') return 1;if(c == &
这篇关于编译原理实验1——词法分割的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!