dfa.cpp
来自「这是一个编译原理中」· C++ 代码 · 共 45 行
CPP
45 行
#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 + =
减小字号Ctrl + -
显示快捷键?