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

simplify includes in automata

parent d606ab61
No related branches found
No related tags found
No related merge requests found
Showing
with 108 additions and 79 deletions
...@@ -41,6 +41,26 @@ ...@@ -41,6 +41,26 @@
#include "string/LinearString.h" #include "string/LinearString.h"
#include "string/Epsilon.h" #include "string/Epsilon.h"
   
#include "automaton/FSM/EpsilonNFA.h"
#include "automaton/FSM/NFA.h"
#include "automaton/FSM/MultiInitialStateNFA.h"
#include "automaton/FSM/DFA.h"
#include "automaton/FSM/CompactNFA.h"
#include "automaton/FSM/ExtendedNFA.h"
#include "automaton/PDA/DPDA.h"
#include "automaton/PDA/SinglePopDPDA.h"
#include "automaton/PDA/InputDrivenDPDA.h"
#include "automaton/PDA/InputDrivenNPDA.h"
#include "automaton/PDA/VisiblyPushdownDPDA.h"
#include "automaton/PDA/VisiblyPushdownNPDA.h"
#include "automaton/PDA/RealTimeHeightDeterministicDPDA.h"
#include "automaton/PDA/RealTimeHeightDeterministicNPDA.h"
#include "automaton/PDA/NPDA.h"
#include "automaton/PDA/SinglePopNPDA.h"
#include "automaton/TM/OneTapeDTM.h"
#include "automaton/TA/DFTA.h"
#include "automaton/TA/NFTA.h"
namespace alib { namespace alib {
   
const label::LabelFromXMLParser FromXMLParsers::labelParser; const label::LabelFromXMLParser FromXMLParsers::labelParser;
......
...@@ -7,7 +7,6 @@ ...@@ -7,7 +7,6 @@
   
#include "Automaton.h" #include "Automaton.h"
#include "../label/NextLabel.h" #include "../label/NextLabel.h"
#include "../label/Label.h"
#include <climits> #include <climits>
#include "AutomatonException.h" #include "AutomatonException.h"
   
......
...@@ -13,14 +13,24 @@ ...@@ -13,14 +13,24 @@
   
#include "common/State.h" #include "common/State.h"
#include <set> #include <set>
#include <string>
   
namespace automaton { namespace automaton {
   
/** /**
* Wrapper around automata. * Wrapper around automata.
*/ */
typedef alib::wrapper<AutomatonBase> Automaton; class Automaton : public alib::wrapper<AutomatonBase> {
public:
explicit Automaton(AutomatonBase* data) : alib::wrapper<AutomatonBase>(data) {
}
explicit Automaton(const AutomatonBase& data) : alib::wrapper<AutomatonBase>(data.clone()) {
}
explicit Automaton(AutomatonBase&& data) : alib::wrapper<AutomatonBase>(std::move(data).plunder()) {
}
};
   
State createUniqueState(State base, const std::set<State>& other); State createUniqueState(State base, const std::set<State>& other);
   
......
/*
* AutomatonClasses.h
*
* Created on: Jun 19, 2014
* Author: Jan Travnicek
*/
#ifndef AUTOMATON_CLASSES_H_
#define AUTOMATON_CLASSES_H_
#include "FSM/EpsilonNFA.h"
#include "FSM/NFA.h"
#include "FSM/MultiInitialStateNFA.h"
#include "FSM/DFA.h"
#include "FSM/CompactNFA.h"
#include "FSM/ExtendedNFA.h"
#include "PDA/DPDA.h"
#include "PDA/SinglePopDPDA.h"
#include "PDA/InputDrivenDPDA.h"
#include "PDA/InputDrivenNPDA.h"
#include "PDA/VisiblyPushdownDPDA.h"
#include "PDA/VisiblyPushdownNPDA.h"
#include "PDA/RealTimeHeightDeterministicDPDA.h"
#include "PDA/RealTimeHeightDeterministicNPDA.h"
#include "PDA/NPDA.h"
#include "PDA/SinglePopNPDA.h"
#include "TM/OneTapeDTM.h"
#include "TA/DFTA.h"
#include "TA/NFTA.h"
#endif /* AUTOMATON_CLASSES_H_ */
...@@ -32,6 +32,28 @@ enum class FEATURES { ...@@ -32,6 +32,28 @@ enum class FEATURES {
NFTA NFTA
}; };
   
class Automaton;
class EpsilonNFA;
class NFA;
class MultiInitialStateNFA;
class DFA;
class CompactNFA;
class ExtendedNFA;
class DPDA;
class SinglePopDPDA;
class InputDrivenDPDA;
class InputDrivenNPDA;
class VisiblyPushdownDPDA;
class VisiblyPushdownNPDA;
class RealTimeHeightDeterministicDPDA;
class RealTimeHeightDeterministicNPDA;
class NPDA;
class SinglePopNPDA;
class OneTapeDTM;
class DFTA;
class NFTA;
} /* namespace automaton */ } /* namespace automaton */
   
#endif /* AUTOMATON_FEATURES_H_ */ #endif /* AUTOMATON_FEATURES_H_ */
...@@ -6,7 +6,6 @@ ...@@ -6,7 +6,6 @@
*/ */
   
#include "AutomatonFromStringLexer.h" #include "AutomatonFromStringLexer.h"
#include <istream>
   
namespace automaton { namespace automaton {
   
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
#define AUTOMATON_FROM_STRING_LEXER_H_ #define AUTOMATON_FROM_STRING_LEXER_H_
   
#include <string> #include <string>
#include <sstream> #include <istream>
   
namespace automaton { namespace automaton {
   
......
...@@ -10,7 +10,6 @@ ...@@ -10,7 +10,6 @@
   
#include "AutomatonFromStringLexer.h" #include "AutomatonFromStringLexer.h"
   
#include "Automaton.h"
#include "AutomatonFeatures.h" #include "AutomatonFeatures.h"
#include "common/State.h" #include "common/State.h"
   
......
...@@ -6,13 +6,12 @@ ...@@ -6,13 +6,12 @@
*/ */
   
#include "AutomatonFromXMLParser.h" #include "AutomatonFromXMLParser.h"
#include "../sax/ParserException.h" #include "../sax/ParserException.h"
#include "../alphabet/BlankSymbol.h"
#include "../label/Label.h"
#include "../XmlApi.hpp" #include "../XmlApi.hpp"
   
#include "Automaton.h"
#include "AutomatonClasses.h"
namespace automaton { namespace automaton {
   
Automaton AutomatonFromXMLParser::parseAutomaton(std::deque<sax::Token>::iterator& input) const { Automaton AutomatonFromXMLParser::parseAutomaton(std::deque<sax::Token>::iterator& input) const {
......
...@@ -9,32 +9,14 @@ ...@@ -9,32 +9,14 @@
#define AUTOMATON_FROM_XML_PARSER_H_ #define AUTOMATON_FROM_XML_PARSER_H_
   
#include "../sax/FromXMLParserHelper.h" #include "../sax/FromXMLParserHelper.h"
#include "Automaton.h"
#include "AutomatonFeatures.h"
#include "FSM/EpsilonNFA.h"
#include "FSM/NFA.h"
#include "FSM/MultiInitialStateNFA.h"
#include "FSM/DFA.h"
#include "FSM/CompactNFA.h"
#include "FSM/ExtendedNFA.h"
#include "PDA/DPDA.h"
#include "PDA/SinglePopDPDA.h"
#include "PDA/InputDrivenDPDA.h"
#include "PDA/InputDrivenNPDA.h"
#include "PDA/VisiblyPushdownDPDA.h"
#include "PDA/VisiblyPushdownNPDA.h"
#include "PDA/RealTimeHeightDeterministicDPDA.h"
#include "PDA/RealTimeHeightDeterministicNPDA.h"
#include "PDA/NPDA.h"
#include "PDA/SinglePopNPDA.h"
#include "TM/OneTapeDTM.h"
#include "TA/DFTA.h"
#include "TA/NFTA.h"
#include <deque>
#include <set> #include <set>
#include <vector>
#include <variant> #include <variant>
#include "../sax/Token.h" #include "AutomatonFeatures.h"
#include "common/State.h"
#include "common/Shift.h"
#include "../regexp/RegExp.h"
   
namespace alib { namespace alib {
   
......
...@@ -7,6 +7,10 @@ ...@@ -7,6 +7,10 @@
   
#include "AutomatonToStringComposer.h" #include "AutomatonToStringComposer.h"
#include "../exception/AlibException.h" #include "../exception/AlibException.h"
#include "FSM/DFA.h"
#include "FSM/NFA.h"
#include "FSM/MultiInitialStateNFA.h"
#include "FSM/EpsilonNFA.h"
   
#include "../StringApi.hpp" #include "../StringApi.hpp"
   
......
...@@ -10,10 +10,6 @@ ...@@ -10,10 +10,6 @@
   
#include <ostream> #include <ostream>
#include "Automaton.h" #include "Automaton.h"
#include "FSM/DFA.h"
#include "FSM/NFA.h"
#include "FSM/MultiInitialStateNFA.h"
#include "FSM/EpsilonNFA.h"
   
namespace automaton { namespace automaton {
   
......
...@@ -6,10 +6,11 @@ ...@@ -6,10 +6,11 @@
*/ */
   
#include "AutomatonToXMLComposer.h" #include "AutomatonToXMLComposer.h"
#include "../alphabet/BlankSymbol.h"
   
#include "../XmlApi.hpp" #include "../XmlApi.hpp"
   
#include "AutomatonClasses.h"
namespace automaton { namespace automaton {
   
void AutomatonToXMLComposer::composeStates(std::deque<sax::Token>& out, const std::set<State>& states) const { void AutomatonToXMLComposer::composeStates(std::deque<sax::Token>& out, const std::set<State>& states) const {
......
...@@ -10,25 +10,15 @@ ...@@ -10,25 +10,15 @@
   
#include <string> #include <string>
#include <deque> #include <deque>
#include <vector>
#include <set>
#include <variant>
#include "Automaton.h" #include "Automaton.h"
#include "FSM/EpsilonNFA.h"
#include "FSM/MultiInitialStateNFA.h"
#include "FSM/NFA.h"
#include "FSM/DFA.h"
#include "FSM/CompactNFA.h"
#include "FSM/ExtendedNFA.h"
#include "PDA/InputDrivenDPDA.h"
#include "PDA/InputDrivenNPDA.h"
#include "PDA/VisiblyPushdownDPDA.h"
#include "PDA/VisiblyPushdownNPDA.h"
#include "PDA/RealTimeHeightDeterministicDPDA.h"
#include "PDA/RealTimeHeightDeterministicNPDA.h"
#include "PDA/NPDA.h"
#include "PDA/SinglePopNPDA.h"
#include "TM/OneTapeDTM.h"
#include "TA/NFTA.h"
#include "../sax/Token.h" #include "../sax/Token.h"
   
#include "common/Shift.h"
#include "../regexp/RegExp.h"
namespace alib { namespace alib {
   
template<typename T> template<typename T>
......
...@@ -17,30 +17,7 @@ ...@@ -17,30 +17,7 @@
   
#include "ObjectFeatures.h" #include "ObjectFeatures.h"
#include "../exception/ExceptionFeatures.h" #include "../exception/ExceptionFeatures.h"
#include "../automaton/AutomatonFeatures.h"
namespace automaton {
class DFA;
class NFA;
class MultiInitialStateNFA;
class EpsilonNFA;
class CompactNFA;
class ExtendedNFA;
class DPDA;
class SinglePopDPDA;
class InputDrivenDPDA;
class VisiblyPushdownDPDA;
class RealTimeHeightDeterministicDPDA;
class NPDA;
class SinglePopNPDA;
class InputDrivenNPDA;
class VisiblyPushdownNPDA;
class RealTimeHeightDeterministicNPDA;
class OneTapeDTM;
class DFTA;
class NFTA;
}
   
namespace grammar { namespace grammar {
   
......
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