[fix] 删掉一部分无用函数
This commit is contained in:
parent
1af61d2eef
commit
5a11da7827
45
nfa/nfa.cpp
45
nfa/nfa.cpp
|
|
@ -89,51 +89,6 @@ NFA RexToNFA() {
|
|||
return NFA(startState, endStates, allStates);
|
||||
}
|
||||
|
||||
// 构造状态机
|
||||
NFA buildNFA(string filename) {
|
||||
ifstream ifs(filename);
|
||||
if (!ifs) {
|
||||
cerr << "Cannot open file: " << filename << endl;
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
int stateNum, inputNum;
|
||||
ifs >> stateNum >> inputNum;
|
||||
|
||||
vector<State*> states(stateNum);
|
||||
for (int i = 0; i < stateNum; i++) {
|
||||
states[i] = new State(i);
|
||||
}
|
||||
|
||||
State* startState = states[0];
|
||||
set<State*, StatePtrCompare> endStates;
|
||||
for (int i = 0; i < stateNum; i++) {
|
||||
for (int j = 0; j < inputNum; j++) {
|
||||
string targetStateIDs;
|
||||
ifs >> targetStateIDs;
|
||||
if (targetStateIDs.compare("#") != 0) {
|
||||
stringstream ss(targetStateIDs);
|
||||
string targetStateIDStr;
|
||||
while (getline(ss, targetStateIDStr, ',')) {
|
||||
int targetStateID = stoi(targetStateIDStr);
|
||||
states[i]->addTransition(static_cast<InputCharType>(j), states[targetStateID]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int endStateNum;
|
||||
ifs >> endStateNum;
|
||||
for (int i = 0; i < endStateNum; i++) {
|
||||
int endStateID, wordTypeID;
|
||||
ifs >> endStateID >> wordTypeID;
|
||||
states[endStateID]->setFinalState(true, static_cast<WordType>(wordTypeID));
|
||||
endStates.insert(states[endStateID]);
|
||||
}
|
||||
|
||||
return NFA(startState, endStates, set<State*, StatePtrCompare>(states.begin(), states.end()));
|
||||
}
|
||||
|
||||
void printNFA(const NFA& nfa) {
|
||||
cout << "Start state: " << nfa.startState->id << endl;
|
||||
cout << "End states: "<<endl;
|
||||
|
|
|
|||
|
|
@ -160,8 +160,6 @@ public:
|
|||
// 正则表达式构建状态机
|
||||
NFA RexToNFA();
|
||||
void printNFA(const NFA& nfa);
|
||||
NFA buildNFA(string filename);
|
||||
NFA RexToNFA();
|
||||
set<State*, StatePtrCompare> move(const set<State*, StatePtrCompare>& states, InputCharType input);
|
||||
set<State*, StatePtrCompare> epsilonClosure(const set<State*, StatePtrCompare>& states);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue