From 89d2d2ae9bbffe31f3b22718df93c0ee8f4d3bc8 Mon Sep 17 00:00:00 2001 From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz> Date: Sat, 20 Sep 2014 19:21:27 +0200 Subject: [PATCH] fix composing and parsing of various automata --- alib2data/src/automaton/AutomatonFromXMLParser.cpp | 12 ++++++------ alib2data/src/automaton/AutomatonToXMLComposer.cpp | 10 +++++----- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/alib2data/src/automaton/AutomatonFromXMLParser.cpp b/alib2data/src/automaton/AutomatonFromXMLParser.cpp index d781b89b51..0e0a5564b0 100644 --- a/alib2data/src/automaton/AutomatonFromXMLParser.cpp +++ b/alib2data/src/automaton/AutomatonFromXMLParser.cpp @@ -588,7 +588,7 @@ void AutomatonFromXMLParser::parseTransition(std::list<sax::Token>& input, DPDA& State from = parseTransitionFrom(input); std::variant<string::Epsilon, alphabet::Symbol> inputSymbol = parseTransitionInputEpsilonSymbol(input); std::vector<alphabet::Symbol> pop = parseTransitionPop(input); - State to = parseTransitionFrom(input); + State to = parseTransitionTo(input); std::vector<alphabet::Symbol> push = parseTransitionPush(input); automaton.addTransition(from, inputSymbol, pop, to, push); @@ -598,7 +598,7 @@ void AutomatonFromXMLParser::parseTransition(std::list<sax::Token>& input, Singl State from = parseTransitionFrom(input); std::variant<string::Epsilon, alphabet::Symbol> inputSymbol = parseTransitionInputEpsilonSymbol(input); alphabet::Symbol pop = parseTransitionSinglePop(input); - State to = parseTransitionFrom(input); + State to = parseTransitionTo(input); std::vector<alphabet::Symbol> push = parseTransitionPush(input); automaton.addTransition(from, inputSymbol, pop, to, push); @@ -646,7 +646,7 @@ void AutomatonFromXMLParser::parseTransition(std::list<sax::Token>& input, NPDA& State from = parseTransitionFrom(input); std::variant<string::Epsilon, alphabet::Symbol> inputSymbol = parseTransitionInputEpsilonSymbol(input); std::vector<alphabet::Symbol> pop = parseTransitionPop(input); - State to = parseTransitionFrom(input); + State to = parseTransitionTo(input); std::vector<alphabet::Symbol> push = parseTransitionPush(input); automaton.addTransition(from, inputSymbol, pop, to, push); @@ -656,7 +656,7 @@ void AutomatonFromXMLParser::parseTransition(std::list<sax::Token>& input, Singl State from = parseTransitionFrom(input); std::variant<string::Epsilon, alphabet::Symbol> inputSymbol = parseTransitionInputEpsilonSymbol(input); alphabet::Symbol pop = parseTransitionSinglePop(input); - State to = parseTransitionFrom(input); + State to = parseTransitionTo(input); std::vector<alphabet::Symbol> push = parseTransitionPush(input); automaton.addTransition(from, inputSymbol, pop, to, push); @@ -665,7 +665,7 @@ void AutomatonFromXMLParser::parseTransition(std::list<sax::Token>& input, Singl void AutomatonFromXMLParser::parseTransition(std::list<sax::Token>& input, OneTapeDTM& automaton) const { State from = parseTransitionFrom(input); alphabet::Symbol inputSymbol = parseTransitionInputSymbol(input); - State to = parseTransitionFrom(input); + State to = parseTransitionTo(input); alphabet::Symbol outputSymbol = parseTransitionOutputSymbol(input); Shift shift = parseTransitionShift(input); @@ -681,7 +681,7 @@ void AutomatonFromXMLParser::parseTransition(std::list<sax::Token>& input, Unkno } else if (isToken(input, sax::Token::TokenType::START_ELEMENT, "input")) { transition.setInput(parseTransitionInputEpsilonSymbol(input)); } else if (isToken(input, sax::Token::TokenType::START_ELEMENT, "to")) { - transition.setTo(parseTransitionFrom(input)); + transition.setTo(parseTransitionTo(input)); } else if (isToken(input, sax::Token::TokenType::START_ELEMENT, "pop")) { transition.setPop(parseTransitionPop(input)); } else if (isToken(input, sax::Token::TokenType::START_ELEMENT, "push")) { diff --git a/alib2data/src/automaton/AutomatonToXMLComposer.cpp b/alib2data/src/automaton/AutomatonToXMLComposer.cpp index c30d83139e..1cd4bb121d 100644 --- a/alib2data/src/automaton/AutomatonToXMLComposer.cpp +++ b/alib2data/src/automaton/AutomatonToXMLComposer.cpp @@ -612,8 +612,8 @@ std::list<sax::Token> AutomatonToXMLComposer::compose(const DPDA& automaton) con composeInputAlphabet(out, automaton.getInputAlphabet()); composeStackAlphabet(out, automaton.getStackAlphabet()); composeInitialState(out, automaton.getInitialState()); - composeFinalStates(out, automaton.getFinalStates()); composeInitialStackSymbol(out, automaton.getInitialSymbol()); + composeFinalStates(out, automaton.getFinalStates()); composeTransitions(out, automaton); out.push_back(sax::Token("DPDA", sax::Token::TokenType::END_ELEMENT)); @@ -628,8 +628,8 @@ std::list<sax::Token> AutomatonToXMLComposer::compose(const SinglePopDPDA& autom composeInputAlphabet(out, automaton.getInputAlphabet()); composeStackAlphabet(out, automaton.getStackAlphabet()); composeInitialState(out, automaton.getInitialState()); - composeFinalStates(out, automaton.getFinalStates()); composeInitialStackSymbol(out, automaton.getInitialSymbol()); + composeFinalStates(out, automaton.getFinalStates()); composeTransitions(out, automaton); out.push_back(sax::Token("SinglePopDPDA", sax::Token::TokenType::END_ELEMENT)); @@ -663,8 +663,8 @@ std::list<sax::Token> AutomatonToXMLComposer::compose(const VisiblyPushdownNPDA& composeLocalInputAlphabet(out, automaton.getLocalInputAlphabet()); composeStackAlphabet(out, automaton.getStackAlphabet()); composeInitialStates(out, automaton.getInitialStates()); - composeFinalStates(out, automaton.getFinalStates()); composeBottomOfTheStackSymbol(out, automaton.getBottomOfTheStackSymbol()); + composeFinalStates(out, automaton.getFinalStates()); composeTransitions(out, automaton); out.push_back(sax::Token("VisiblyPushdownNPDA", sax::Token::TokenType::END_ELEMENT)); @@ -679,8 +679,8 @@ std::list<sax::Token> AutomatonToXMLComposer::compose(const NPDA& automaton) con composeInputAlphabet(out, automaton.getInputAlphabet()); composeStackAlphabet(out, automaton.getStackAlphabet()); composeInitialStates(out, automaton.getInitialStates()); - composeFinalStates(out, automaton.getFinalStates()); composeInitialStackSymbols(out, automaton.getInitialSymbols()); + composeFinalStates(out, automaton.getFinalStates()); composeTransitions(out, automaton); out.push_back(sax::Token("NPDA", sax::Token::TokenType::END_ELEMENT)); @@ -695,8 +695,8 @@ std::list<sax::Token> AutomatonToXMLComposer::compose(const SinglePopNPDA& autom composeInputAlphabet(out, automaton.getInputAlphabet()); composeStackAlphabet(out, automaton.getStackAlphabet()); composeInitialStates(out, automaton.getInitialStates()); - composeFinalStates(out, automaton.getFinalStates()); composeInitialStackSymbols(out, automaton.getInitialSymbols()); + composeFinalStates(out, automaton.getFinalStates()); composeTransitions(out, automaton); out.push_back(sax::Token("SinglePopNPDA", sax::Token::TokenType::END_ELEMENT)); -- GitLab