编译原理—实验一(词法分析)

实验一 词法分析(2学时)
一、实验目的
1.熟悉词法分析的基本原理,词法分析的过程,以及词法分析中要注意的一些问题。
2. 复习高级语言,进一步加强用高级语言来解决实际问题的能力。
二、实验内容

有DFA如下图
编译原理—实验一(词法分析)_第1张图片

编程实现此自动机,并处理下面的字符串,按顺序输出识别后的各单词(以空格或换行符隔开)。要求实现错误检查处理,当出现非法字符时,提示出错字符位置,并且停止分析。
(1)bacbacdabbaccb
(2)acbbbacbbacb
(3)baccdabaccbadacb
思路:用了一个C++中的二位映射(map)

#include
using namespace std;
int f(char c)
{
	if(c=='a'||c=='b'||c=='c'||c=='d')
		return 1;
	else
		return 0;
}
int main()
{
	map >m;
	m[0]['a']=1;m[0]['b']=0;m[1]['c']=1;m[1]['b']=3;m[1]['d']=2;m[2]['a']=1;
	int cursta=0,state;
	string str="",ss="";
	string s;
	cout<<"请输入您要分析的字符串:";
	cin>>s;
	int cnt=0,i;
	int  index,flag=0;
	char indexf;
	for(i=0;i

你可能感兴趣的:(编译原理)