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

📄 dfa.cpp

📁 这是一个编译原理中
💻 CPP
字号:

#include "DFA.h"

int  RULE_NUM = 13;
STATE_CHANGE StateChangeTable[] =
{
	Q0, SIGN,  Q1,
	Q0, DIGIT, Q2,
	Q1, DIGIT, Q2,

	Q2, DIGIT, Q2,
	Q2, DOT, Q3,
	Q2, EXP,   Q5,

	Q3, DIGIT, Q4,
	Q4, DIGIT, Q4,
	Q4, EXP,   Q5,

	Q5, SIGN,  Q6,
	Q5, DIGIT, Q7,
	Q6, DIGIT, Q7,
	Q7, DIGIT, Q7
};

int DFA::Input(SYMBOL input)
{
	int   i,num;
	STATE newstate;

	num = -1;
	if (state == MISTAKE) return num;

	newstate = MISTAKE;
	for(i = 0; i < RULE_NUM ; i++)	
		if (StateChangeTable[i].oldstate == state && 
			input == StateChangeTable[i].input)
		{
			newstate = StateChangeTable[i].newstate;			
			num = i;
			break;
		}
	state = newstate;
	return num;
}

⌨️ 快捷键说明

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