Skip to content
Snippets Groups Projects
Commit d5d1c61b authored by Jan Trávníček's avatar Jan Trávníček
Browse files

aepsilon accepts NFA and DFA as well

parent 332f2c5d
No related branches found
No related tags found
No related merge requests found
...@@ -44,15 +44,26 @@ int main(int argc, char** argv) { ...@@ -44,15 +44,26 @@ int main(int argc, char** argv) {
} }
   
if(alib::FromXMLParsers::automatonParser.first(tokens)) { if(alib::FromXMLParsers::automatonParser.first(tokens)) {
automaton::EpsilonNFA automaton = alib::DataFactory::fromTokens<automaton::EpsilonNFA>(tokens); std::string xmlMark = tokens.front( ).getData( );
if(xmlMark == "EpsilonNFA") {
automaton::NFA res = epsilon::EpsilonNFAEpsilonRemover::remove( automaton ); automaton::EpsilonNFA automaton = alib::DataFactory::fromTokens<automaton::EpsilonNFA>(tokens);
automaton::NFA res = epsilon::EpsilonNFAEpsilonRemover::remove( automaton );
alib::DataFactory::toStdout(res); alib::DataFactory::toStdout(res);
} else if(xmlMark == "NFA") {
automaton::NFA automaton = alib::DataFactory::fromTokens<automaton::NFA>(tokens);
alib::DataFactory::toStdout(automaton);
} else if(xmlMark == "DFA") {
automaton::DFA automaton = alib::DataFactory::fromTokens<automaton::DFA>(tokens);
alib::DataFactory::toStdout(automaton);
} else {
automaton::EpsilonNFA automaton = alib::DataFactory::fromTokens<automaton::EpsilonNFA>(tokens);
automaton::NFA res = epsilon::EpsilonNFAEpsilonRemover::remove( automaton );
alib::DataFactory::toStdout(res);
}
} else {
throw exception::AlibException("Invalid argument expected Epsilon NFA.");
} }
   
throw exception::AlibException("Invalid argument expected Epsilon NFA.");
} catch (const exception::AlibException& exception) { } catch (const exception::AlibException& exception) {
alib::DataFactory::toStdout(exception); alib::DataFactory::toStdout(exception);
return 1; return 1;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment