⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 auto_machine.h

📁 很好用的词法分析器
💻 H
字号:
#pragma once
#include "state.h"
#include "State.h"
#include "set"
using namespace std;
class auto_machine
{
private:
	list<State*>StateCollect;
public:
	auto_machine(void);
	~auto_machine(void);
	void insert_map(State* HeadState, char InputChar, State* TailState);
	void insert_state(State* StateNode);
	bool inserted(State* &StateNode);	//return 0:无此状态.
	friend void CheckProgram(const auto_machine DFA, ifstream &program, ofstream &result);
private:
	list<State*> EndState;
	State* BeginState;
	void _$closure(State* I, set<State*> &closure);
	// 状态I通过输入字符InputChar所到状态
	set<State*> _closure(State* I, char InputChar);
public:
	void insert_endstate(State* endstate);
	// 有穷自动机的确定化.
	void NFA_TO_DFA(auto_machine &DFA);
private:
	set<char> InCharColl;
public:
	void insert_char(char Input);
private:
	void CombineState(set<State*> StateCol, State* Combined);
	void Define(set<State*> GenState, auto_machine *DFA, State* Combined );
public:
	// DFA最小化
	void Minimize(void);
	void insert_beginstate(State* begin);
private:
	set<char> DFAInCharColl;
public:
	bool constinserted(State* state);
	void Destroy(void);
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -