diff --git a/adeterminize2/src/adeterminize.cpp b/adeterminize2/src/adeterminize.cpp index 144431885aeddf85905bd238c56137312a2481f0..0a920ed23f378cb7fe8d6ff3ae19ca9559d59ba9 100644 --- a/adeterminize2/src/adeterminize.cpp +++ b/adeterminize2/src/adeterminize.cpp @@ -95,12 +95,22 @@ int main(int argc, char** argv) { type = getLowerCaseType(type); + std::list<sax::Token> tokens; + sax::SaxParseInterface::parseStdin(tokens); + try { if (type == TYPE_FSM) { - automaton::NFA nfa = alib::DataFactory::fromStdin<automaton::NFA>(); - automaton::DFA dfa = determinize::NFADeterminizer::determinize(nfa); - alib::DataFactory::toStdout(dfa); - return 0; + std::string xmlMark = tokens.front( ).getData( ); + if(xmlMark == "NFA") { + automaton::NFA nfa = alib::DataFactory::fromTokens<automaton::NFA>(tokens); + automaton::DFA dfa = determinize::NFADeterminizer::determinize(nfa); + alib::DataFactory::toStdout(dfa); + return 0; + } else if(xmlMark == "DFA") { + automaton::DFA automaton = alib::DataFactory::fromTokens<automaton::DFA>(tokens); + alib::DataFactory::toStdout(automaton); + return 0; + } } /* } else if (type == TYPE_IDPDA) {