diff --git a/alib2data/src/XmlApi.cpp b/alib2data/src/XmlApi.cpp index 21a28d361ed292c1f14934e7e082987793b5c993..41a741a47fd6437ca5c7c58b527ba158ee31d0f7 100644 --- a/alib2data/src/XmlApi.cpp +++ b/alib2data/src/XmlApi.cpp @@ -7,17 +7,27 @@ #include "XmlApi.hpp" +#include "alphabet/Symbol.h" #include "alphabet/SymbolClasses.h" +#include "label/Label.h" #include "label/LabelClasses.h" +#include "primitive/Primitive.h" #include "primitive/PrimitiveClasses.h" #include "object/ObjectClasses.h" #include "exception/ExceptionClasses.h" +#include "string/String.h" #include "string/StringClasses.h" +#include "automaton/Automaton.h" #include "automaton/AutomatonClasses.h" +#include "container/Container.h" #include "container/ContainerClasses.h" +#include "grammar/Grammar.h" #include "grammar/GrammarClasses.h" +#include "regexp/RegExp.h" #include "regexp/RegExpClasses.h" +#include "tree/Tree.h" #include "tree/TreeClasses.h" +#include "graph/Graph.h" #include "graph/GraphClasses.h" namespace alib { diff --git a/alib2data/src/alphabet/SymbolFeatures.h b/alib2data/src/alphabet/SymbolFeatures.h index 65c3e03060798302fa82441e542cc159eb2b852b..6d6ff7cb6bdb32626f640355f1899f5bb3c6f1a4 100644 --- a/alib2data/src/alphabet/SymbolFeatures.h +++ b/alib2data/src/alphabet/SymbolFeatures.h @@ -26,6 +26,7 @@ enum class FEATURES { }; class Symbol; +class SymbolBase; class LabeledSymbol; class BlankSymbol; diff --git a/alib2data/src/alphabet/SymbolToXMLComposer.h b/alib2data/src/alphabet/SymbolToXMLComposer.h index fb254e4450f758f24bc84aa9feafefb2a55c0a8d..6dedb4ad587f9e66c28a0b9255f363ee39000315 100644 --- a/alib2data/src/alphabet/SymbolToXMLComposer.h +++ b/alib2data/src/alphabet/SymbolToXMLComposer.h @@ -9,7 +9,7 @@ #define SYMBOL_TO_XML_COMPOSER_H_ #include <deque> -#include "Symbol.h" +#include "SymbolFeatures.h" #include "../sax/Token.h" namespace alib { diff --git a/alib2data/src/automaton/AutomatonFeatures.h b/alib2data/src/automaton/AutomatonFeatures.h index 2981c4bf32689b7b6debe2e8b81e951a267e0cc3..83cb35dce053d098d4ff44345d83fc15317ab53a 100644 --- a/alib2data/src/automaton/AutomatonFeatures.h +++ b/alib2data/src/automaton/AutomatonFeatures.h @@ -33,6 +33,9 @@ enum class FEATURES { }; class Automaton; +class AutomatonBase; +class State; +enum class Shift; class EpsilonNFA; class NFA; diff --git a/alib2data/src/automaton/AutomatonFromStringParser.h b/alib2data/src/automaton/AutomatonFromStringParser.h index 7a6fbb5a5868d9bd235ae24a39803b4160d1da93..717e0cc51779381693e05abc9f0398a20d973c21 100644 --- a/alib2data/src/automaton/AutomatonFromStringParser.h +++ b/alib2data/src/automaton/AutomatonFromStringParser.h @@ -11,11 +11,13 @@ #include "AutomatonFromStringLexer.h" #include "AutomatonFeatures.h" -#include "common/State.h" +#include "../string/StringFeatures.h" +#include "../alphabet/SymbolFeatures.h" +#include <set> +#include <vector> #include <tuple> #include <variant> -#include "../string/Epsilon.h" namespace alib { diff --git a/alib2data/src/automaton/AutomatonFromXMLParser.cpp b/alib2data/src/automaton/AutomatonFromXMLParser.cpp index 6005709e06dde7c2af7ab81f757ee2ecd24ad4a5..7efdfcd348e7c0c10d578a173a64690c8c45ad36 100644 --- a/alib2data/src/automaton/AutomatonFromXMLParser.cpp +++ b/alib2data/src/automaton/AutomatonFromXMLParser.cpp @@ -997,11 +997,11 @@ Shift AutomatonFromXMLParser::parseTransitionShift(std::deque<sax::Token>::itera popToken(input, sax::Token::TokenType::START_ELEMENT, "shift"); if (isToken(input, sax::Token::TokenType::CHARACTER, "left")) { - shift = LEFT; + shift = Shift::LEFT; } else if (isToken(input, sax::Token::TokenType::CHARACTER, "right")) { - shift = RIGHT; + shift = Shift::RIGHT; } else if (isToken(input, sax::Token::TokenType::CHARACTER, "none")) { - shift = NONE; + shift = Shift::NONE; } else { throw sax::ParserException(sax::Token("", sax::Token::TokenType::CHARACTER), *input); } diff --git a/alib2data/src/automaton/AutomatonFromXMLParser.h b/alib2data/src/automaton/AutomatonFromXMLParser.h index f625ba9d9bdbaf5d8f888726ae7fa65cc75f90f9..9d000c0d810bade9f281ed86c6c3f09905c924c8 100644 --- a/alib2data/src/automaton/AutomatonFromXMLParser.h +++ b/alib2data/src/automaton/AutomatonFromXMLParser.h @@ -13,10 +13,9 @@ #include <vector> #include <variant> #include "AutomatonFeatures.h" - -#include "common/State.h" -#include "common/Shift.h" -#include "../regexp/RegExp.h" +#include "../regexp/RegExpFeatures.h" +#include "../alphabet/SymbolFeatures.h" +#include "../string/StringFeatures.h" namespace alib { diff --git a/alib2data/src/automaton/AutomatonToXMLComposer.cpp b/alib2data/src/automaton/AutomatonToXMLComposer.cpp index af9978167d421fa80ad974f312d1a0e3c78ae124..f6b192c73d425a9874544d5d6276e769fd9cdead 100644 --- a/alib2data/src/automaton/AutomatonToXMLComposer.cpp +++ b/alib2data/src/automaton/AutomatonToXMLComposer.cpp @@ -9,6 +9,7 @@ #include "../XmlApi.hpp" +#include "Automaton.h" #include "AutomatonClasses.h" namespace automaton { @@ -576,9 +577,9 @@ void AutomatonToXMLComposer::composeTransitionFrom(std::deque<sax::Token>& out, out.emplace_back(sax::Token("from", sax::Token::TokenType::END_ELEMENT)); } -void AutomatonToXMLComposer::composeTransitionShift(std::deque<sax::Token>& out, const Shift shift) const { +void AutomatonToXMLComposer::composeTransitionShift(std::deque<sax::Token>& out, Shift shift) const { out.emplace_back("shift", sax::Token::TokenType::START_ELEMENT); - out.emplace_back(SHIFT_NAMES [shift], sax::Token::TokenType::CHARACTER); + out.emplace_back(SHIFT_NAMES [shiftToInt(shift)], sax::Token::TokenType::CHARACTER); out.emplace_back("shift", sax::Token::TokenType::END_ELEMENT); } diff --git a/alib2data/src/automaton/AutomatonToXMLComposer.h b/alib2data/src/automaton/AutomatonToXMLComposer.h index 39ce199a2ba9eb7d51f395e245ed1ef65e5b96f9..313c67e395f5662f29fb62ad5372a71fdb4e9448 100644 --- a/alib2data/src/automaton/AutomatonToXMLComposer.h +++ b/alib2data/src/automaton/AutomatonToXMLComposer.h @@ -13,12 +13,12 @@ #include <vector> #include <set> #include <variant> -#include "Automaton.h" +#include "AutomatonFeatures.h" +#include "../regexp/RegExpFeatures.h" +#include "../alphabet/SymbolFeatures.h" +#include "../string/StringFeatures.h" #include "../sax/Token.h" -#include "common/Shift.h" -#include "../regexp/RegExp.h" - namespace alib { template<typename T> @@ -77,7 +77,7 @@ private: void composeTransitionTo(std::deque<sax::Token>&, const State& state) const; void composeTransitionFrom(std::deque<sax::Token>&, const State& state) const; void composeTransitionFrom(std::deque<sax::Token>&, const std::vector<State> & states) const; - void composeTransitionShift(std::deque<sax::Token>&, const Shift shift) const; + void composeTransitionShift(std::deque<sax::Token>&, Shift shift) const; void composeTransitionPop(std::deque<sax::Token>&, const std::vector<alphabet::Symbol>& symbols) const; void composeTransitionSinglePop(std::deque<sax::Token>&, const alphabet::Symbol& symbol) const; void composeTransitionPush(std::deque<sax::Token>&, const std::vector<alphabet::Symbol>& symbols) const; diff --git a/alib2data/src/automaton/common/Shift.cpp b/alib2data/src/automaton/common/Shift.cpp index 8ca3a6be4ba9df86d42cf874e13a997f092e84bf..fbc79dad58f8241726ea43d503860f270f8a14b5 100644 --- a/alib2data/src/automaton/common/Shift.cpp +++ b/alib2data/src/automaton/common/Shift.cpp @@ -11,4 +11,37 @@ namespace automaton { std::string SHIFT_NAMES[] = {"LEFT", "RIGHT", "NONE", "NOT_SET" }; +int shiftToInt(const automaton::Shift& shift) { + switch(shift) { + case automaton::Shift::LEFT: + return 0; + case automaton::Shift::RIGHT: + return 1; + case automaton::Shift::NONE: + return 2; + case automaton::Shift::NOT_SET: + return 3; + } + return 3; +} + +automaton::Shift intToShift(int value) { + switch(value) { + case 0: + return automaton::Shift::LEFT; + case 1: + return automaton::Shift::RIGHT; + case 2: + return automaton::Shift::NONE; + case 3: + return automaton::Shift::NOT_SET; + } + return automaton::Shift::NOT_SET; +} + +std::ostream& operator<<(std::ostream& out, const automaton::Shift&) { + + return out; +} + } /* namepsace automaton */ diff --git a/alib2data/src/automaton/common/Shift.h b/alib2data/src/automaton/common/Shift.h index 9bd37b10f1868c0b7a98b24806c1191b4f2c03b0..5f9c033bf5fdd8c1c0a2fbf86f10b4988a958b11 100644 --- a/alib2data/src/automaton/common/Shift.h +++ b/alib2data/src/automaton/common/Shift.h @@ -16,12 +16,17 @@ namespace automaton { /** * Represent movement of the reading head in the Turing machine. */ -enum Shift { +enum class Shift { LEFT, RIGHT, NONE, NOT_SET }; +int shiftToInt(const automaton::Shift& shift); +automaton::Shift intToShift(int value); + extern std::string SHIFT_NAMES[4]; +std::ostream& operator<<(std::ostream& out, const automaton::Shift&); + } /* namespace automaton */ namespace std { @@ -29,7 +34,7 @@ namespace std { template<> struct compare<automaton::Shift> { int operator()(const automaton::Shift& first, const automaton::Shift& second) { - return first - second; + return automaton::shiftToInt(first) - automaton::shiftToInt(second); } }; diff --git a/alib2data/src/container/ContainerFeatures.h b/alib2data/src/container/ContainerFeatures.h index 49a1a35f4117c09a96504c629fc45a6e651f2924..b98acd20480ffa4314417fb60f82f0ce0c7366fa 100644 --- a/alib2data/src/container/ContainerFeatures.h +++ b/alib2data/src/container/ContainerFeatures.h @@ -18,6 +18,7 @@ enum class FEATURES { }; class Container; +class ContainerBase; class ObjectsSet; class ObjectsVector; diff --git a/alib2data/src/container/ContainerToXMLComposer.cpp b/alib2data/src/container/ContainerToXMLComposer.cpp index c8d9f65915eeac56abf2f32ec4fe82428957bdf1..d7dc9c31161c7bafc60dcf93905f7f989af7d75c 100644 --- a/alib2data/src/container/ContainerToXMLComposer.cpp +++ b/alib2data/src/container/ContainerToXMLComposer.cpp @@ -9,6 +9,7 @@ #include "../XmlApi.hpp" +#include "Container.h" #include "ContainerClasses.h" namespace container { diff --git a/alib2data/src/container/ContainerToXMLComposer.hpp b/alib2data/src/container/ContainerToXMLComposer.hpp index 7214b89ee0a7a962720ad510a56258a23c20eedb..07502e1b53bcefa2652477bbbfb8c76eaad3a244 100644 --- a/alib2data/src/container/ContainerToXMLComposer.hpp +++ b/alib2data/src/container/ContainerToXMLComposer.hpp @@ -9,7 +9,7 @@ #define CONTAINER_TO_XML_COMPOSER_H_ #include <deque> -#include "Container.h" +#include "ContainerFeatures.h" #include <variant> #include <set> #include <vector> diff --git a/alib2data/src/exception/ExceptionToXMLComposer.h b/alib2data/src/exception/ExceptionToXMLComposer.h index a8529ab0ff1949dfc5089e0da024d7aa8c533742..611085e8136e4bc3e564e155896860842ceb57de 100644 --- a/alib2data/src/exception/ExceptionToXMLComposer.h +++ b/alib2data/src/exception/ExceptionToXMLComposer.h @@ -9,7 +9,7 @@ #define EXCEPTION_TO_XML_COMPOSER_H_ #include <deque> -#include "AlibException.h" +#include "ExceptionFeatures.h" #include "../sax/Token.h" namespace alib { diff --git a/alib2data/src/grammar/GrammarFeatures.h b/alib2data/src/grammar/GrammarFeatures.h index 4533db988b2af174386d6e630635b8c72cefc5cb..919b3d2cd95379a04a6f54d3475b4d64054d36af 100644 --- a/alib2data/src/grammar/GrammarFeatures.h +++ b/alib2data/src/grammar/GrammarFeatures.h @@ -27,6 +27,7 @@ enum class FEATURES { }; class Grammar; +class GrammarBase; class LeftLG; class LeftRG; diff --git a/alib2data/src/grammar/GrammarFromXMLParser.h b/alib2data/src/grammar/GrammarFromXMLParser.h index 30eb28e887d53686bdbdadd4631a160a6921415d..9919933bbe377b5259c0094191cf432caf61846b 100644 --- a/alib2data/src/grammar/GrammarFromXMLParser.h +++ b/alib2data/src/grammar/GrammarFromXMLParser.h @@ -14,7 +14,7 @@ #include <variant> #include <vector> #include "GrammarFeatures.h" -#include "../alphabet/Symbol.h" +#include "../alphabet/SymbolFeatures.h" namespace alib { diff --git a/alib2data/src/grammar/GrammarToXMLComposer.cpp b/alib2data/src/grammar/GrammarToXMLComposer.cpp index 7785030f4ea695464479c0476c06305727d78616..38df7374cef142993830b4f53ce9211a60997291 100644 --- a/alib2data/src/grammar/GrammarToXMLComposer.cpp +++ b/alib2data/src/grammar/GrammarToXMLComposer.cpp @@ -9,6 +9,7 @@ #include "../XmlApi.hpp" +#include "Grammar.h" #include "GrammarClasses.h" namespace grammar { diff --git a/alib2data/src/grammar/GrammarToXMLComposer.h b/alib2data/src/grammar/GrammarToXMLComposer.h index b48f971fe56b9ce2d00e456349ecce9a8d416ab1..7d90a1adcdd2e7fc1ea029cba4ef2028d21c96a4 100644 --- a/alib2data/src/grammar/GrammarToXMLComposer.h +++ b/alib2data/src/grammar/GrammarToXMLComposer.h @@ -15,7 +15,8 @@ #include <map> #include <set> #include <variant> -#include "Grammar.h" +#include "GrammarFeatures.h" +#include "../alphabet/SymbolFeatures.h" #include "../sax/Token.h" namespace alib { diff --git a/alib2data/src/graph/GraphFeatures.h b/alib2data/src/graph/GraphFeatures.h index 0a5e5e8f7734553dfe650f201cccd65870863493..20924e0a5aa128929a3b9cd336ca5590c8c327e8 100644 --- a/alib2data/src/graph/GraphFeatures.h +++ b/alib2data/src/graph/GraphFeatures.h @@ -16,9 +16,15 @@ enum class FEATURES { }; class Graph; +class GraphBase; + +class Node; +enum class REPRESENTATION; class DirectedGraph; +class DirectedEdge; class UndirectedGraph; +class UndirectedEdge; } // namespace graph diff --git a/alib2data/src/graph/GraphFromXMLParser.h b/alib2data/src/graph/GraphFromXMLParser.h index 877154b5b672c48c7bcf0f3698285ffed7272a21..bb415006a7527781a3e67bc0b6367c19ce6a810b 100644 --- a/alib2data/src/graph/GraphFromXMLParser.h +++ b/alib2data/src/graph/GraphFromXMLParser.h @@ -10,9 +10,7 @@ #include "../sax/FromXMLParserHelper.h" #include "GraphFeatures.h" -#include "common/Node.h" -#include "../alphabet/Symbol.h" -#include "GraphRepresentation.h" +#include "../alphabet/SymbolFeatures.h" namespace alib { diff --git a/alib2data/src/graph/GraphToXMLComposer.cpp b/alib2data/src/graph/GraphToXMLComposer.cpp index af4e64f09c751f850daabf5bcc496af4440d3d82..3dc0210634ec5732e114524b1b93d2750e40d257 100644 --- a/alib2data/src/graph/GraphToXMLComposer.cpp +++ b/alib2data/src/graph/GraphToXMLComposer.cpp @@ -9,6 +9,7 @@ #include "../XmlApi.hpp" #include "GraphRepresentation.h" +#include "Graph.h" #include "GraphClasses.h" namespace graph { diff --git a/alib2data/src/graph/GraphToXMLComposer.h b/alib2data/src/graph/GraphToXMLComposer.h index a7a3411f77071997f26f08de9a07aaac72d660bf..1e7c1b136ea0445247f1feaf7ad55d2b22937743 100644 --- a/alib2data/src/graph/GraphToXMLComposer.h +++ b/alib2data/src/graph/GraphToXMLComposer.h @@ -11,7 +11,7 @@ #include <set> #include <deque> -#include "Graph.h" +#include "GraphFeatures.h" #include "common/GraphElement.h" #include "../sax/Token.h" diff --git a/alib2data/src/label/LabelFeatures.h b/alib2data/src/label/LabelFeatures.h index 8f6721c75722a7b482a937836e22d585fbe80ff3..33eb238f4450fa83ffd3744a37c2eac01ce40d18 100644 --- a/alib2data/src/label/LabelFeatures.h +++ b/alib2data/src/label/LabelFeatures.h @@ -20,6 +20,7 @@ enum class FEATURES { }; class Label; +class LabelBase; class PrimitiveLabel; class HexavigesimalLabel; diff --git a/alib2data/src/label/LabelToXMLComposer.cpp b/alib2data/src/label/LabelToXMLComposer.cpp index c316f6033c1a6b0792f5d7cacdd1e489b32b6c40..dbd0a3ed8176eecdcdadee6c35dd4e51d7ee6373 100644 --- a/alib2data/src/label/LabelToXMLComposer.cpp +++ b/alib2data/src/label/LabelToXMLComposer.cpp @@ -9,6 +9,7 @@ #include "../XmlApi.hpp" +#include "Label.h" #include "LabelClasses.h" namespace label { diff --git a/alib2data/src/label/LabelToXMLComposer.h b/alib2data/src/label/LabelToXMLComposer.h index d3cc0d1ff74803f7656a71a3a0f1d39b3ac8b04d..868d103d8849663d2be280065e1f60a17956b04e 100644 --- a/alib2data/src/label/LabelToXMLComposer.h +++ b/alib2data/src/label/LabelToXMLComposer.h @@ -9,7 +9,7 @@ #define LABEL_TO_XML_COMPOSER_H_ #include <deque> -#include "Label.h" +#include "LabelFeatures.h" #include "../sax/Token.h" namespace alib { diff --git a/alib2data/src/object/ObjectFeatures.h b/alib2data/src/object/ObjectFeatures.h index a0361a23c16f2913a1f7b6521b8a6dd0eeb6b56a..a57aa1f84321b9efed48d3fa7d87bb318886d285 100644 --- a/alib2data/src/object/ObjectFeatures.h +++ b/alib2data/src/object/ObjectFeatures.h @@ -15,6 +15,7 @@ enum class FEATURES { }; class Object; +class ObjectBase; class Void; diff --git a/alib2data/src/object/ObjectFromXMLParser.cpp b/alib2data/src/object/ObjectFromXMLParser.cpp index 38b2cef5584b453f1b3a49ccf30b98d6ddb9a7f2..e9575438b2eee90f8b2d6aadcabeb9a8eeb8d5b9 100644 --- a/alib2data/src/object/ObjectFromXMLParser.cpp +++ b/alib2data/src/object/ObjectFromXMLParser.cpp @@ -12,6 +12,16 @@ #include "Object.h" #include "ObjectClasses.h" +#include "../alphabet/Symbol.h" +#include "../automaton/Automaton.h" +#include "../container/Container.h" +#include "../grammar/Grammar.h" +#include "../label/Label.h" +#include "../primitive/Primitive.h" +#include "../regexp/RegExp.h" +#include "../string/String.h" +#include "../tree/Tree.h" + namespace alib { Object ObjectFromXMLParser::parseObject(std::deque<sax::Token>::iterator& input) const { diff --git a/alib2data/src/object/ObjectToXMLComposer.h b/alib2data/src/object/ObjectToXMLComposer.h index a00e3917d9932a0ae9c8ea28de36377dad96be94..a6ff6ee3376d5cf5418c32d7ee66908e7611a324 100644 --- a/alib2data/src/object/ObjectToXMLComposer.h +++ b/alib2data/src/object/ObjectToXMLComposer.h @@ -9,7 +9,7 @@ #define OBJECT_TO_XML_COMPOSER_H_ #include <deque> -#include "Object.h" +#include "ObjectFeatures.h" #include "../sax/Token.h" namespace alib { diff --git a/alib2data/src/primitive/PrimitiveFeatures.h b/alib2data/src/primitive/PrimitiveFeatures.h index 3fdbc4a8d363731b4a3df43a98f584e01a878ea5..e66479e7a78aef43f2497a5f6273d433ad1b0275 100644 --- a/alib2data/src/primitive/PrimitiveFeatures.h +++ b/alib2data/src/primitive/PrimitiveFeatures.h @@ -19,6 +19,7 @@ enum class FEATURES { }; class Primitive; +class PrimitiveBase; class String; class Integer; diff --git a/alib2data/src/primitive/PrimitiveToXMLComposer.h b/alib2data/src/primitive/PrimitiveToXMLComposer.h index fab4070830ad445670baf1ac000c061fab033644..328c533fe63a3aeef59f07aa2349dd1bf62e9135 100644 --- a/alib2data/src/primitive/PrimitiveToXMLComposer.h +++ b/alib2data/src/primitive/PrimitiveToXMLComposer.h @@ -9,7 +9,7 @@ #define PRIMITIVE_TO_XML_COMPOSER_H_ #include <deque> -#include "Primitive.h" +#include "PrimitiveFeatures.h" #include "../sax/Token.h" namespace alib { diff --git a/alib2data/src/regexp/RegExpFeatures.h b/alib2data/src/regexp/RegExpFeatures.h index 71d3d5e6875bc81f021b127c8394c59741d79c87..cd1c24f8fa4e3c681f46a13721ded931fd9794f0 100644 --- a/alib2data/src/regexp/RegExpFeatures.h +++ b/alib2data/src/regexp/RegExpFeatures.h @@ -16,6 +16,7 @@ enum class FEATURES { }; class RegExp; +class RegExpBase; class UnboundedRegExp; diff --git a/alib2data/src/regexp/RegExpToXMLComposer.cpp b/alib2data/src/regexp/RegExpToXMLComposer.cpp index 3d76f2705075588f38fecc225f333f27bb3c65c9..d9b6ccb8c2cd60936f82ffa07dc9f0787679c1ce 100644 --- a/alib2data/src/regexp/RegExpToXMLComposer.cpp +++ b/alib2data/src/regexp/RegExpToXMLComposer.cpp @@ -8,6 +8,7 @@ #include "RegExpToXMLComposer.h" #include "../XmlApi.hpp" +#include "RegExp.h" #include "RegExpClasses.h" #include "unbounded/UnboundedRegExpElements.h" diff --git a/alib2data/src/regexp/RegExpToXMLComposer.h b/alib2data/src/regexp/RegExpToXMLComposer.h index 314cf322efa796a3207fc83d21fb813b7c322489..00b98c422ea88c8c4ff3363c75b566f5ec620e45 100644 --- a/alib2data/src/regexp/RegExpToXMLComposer.h +++ b/alib2data/src/regexp/RegExpToXMLComposer.h @@ -9,7 +9,7 @@ #define REG_EXP_TO_XML_COMPOSER_H_ #include <deque> -#include "RegExp.h" +#include "RegExpFeatures.h" #include "unbounded/UnboundedRegExpElement.h" #include "formal/FormalRegExpElement.h" #include "../sax/Token.h" diff --git a/alib2data/src/string/StringFeatures.h b/alib2data/src/string/StringFeatures.h index c1f954e132d7c1145176aa6f64ccd982b8734573..e8187b712a59b8820f7a5e0b593903807ce6a6e8 100644 --- a/alib2data/src/string/StringFeatures.h +++ b/alib2data/src/string/StringFeatures.h @@ -17,6 +17,7 @@ enum class FEATURES { }; class String; +class StringBase; class Epsilon; class LinearString; diff --git a/alib2data/src/string/StringFromXMLParser.h b/alib2data/src/string/StringFromXMLParser.h index 0903832daa73424c0fce4c5ea44eefe34416dbd2..78e655c6fe067c6db5a95a3e019a8dbae336eab7 100644 --- a/alib2data/src/string/StringFromXMLParser.h +++ b/alib2data/src/string/StringFromXMLParser.h @@ -12,7 +12,7 @@ #include <vector> #include <set> #include "StringFeatures.h" -#include "../alphabet/Symbol.h" +#include "../alphabet/SymbolFeatures.h" namespace alib { diff --git a/alib2data/src/string/StringToXMLComposer.cpp b/alib2data/src/string/StringToXMLComposer.cpp index 23dd1f74e45f8a90e062a9a62de9e12f4b707e76..7508195a1f6c7cd87406e11001401f8c46995069 100644 --- a/alib2data/src/string/StringToXMLComposer.cpp +++ b/alib2data/src/string/StringToXMLComposer.cpp @@ -8,6 +8,7 @@ #include "StringToXMLComposer.h" #include "../XmlApi.hpp" +#include "String.h" #include "StringClasses.h" namespace string { diff --git a/alib2data/src/string/StringToXMLComposer.h b/alib2data/src/string/StringToXMLComposer.h index aba820c43797e57908970e252f93ca530a06f6d0..6c4ab396ba718b3eacc9ee26728f016a2733bf1f 100644 --- a/alib2data/src/string/StringToXMLComposer.h +++ b/alib2data/src/string/StringToXMLComposer.h @@ -9,7 +9,7 @@ #define STRING_TO_XML_COMPOSER_H_ #include <deque> -#include "String.h" +#include "StringFeatures.h" #include "../sax/Token.h" namespace alib { diff --git a/alib2data/src/tree/TreeFeatures.h b/alib2data/src/tree/TreeFeatures.h index ebc94bef348a1f72903ac1b3412d12055937bfb4..8c7e94ac7b63080d5fee745db896723d7699d87f 100644 --- a/alib2data/src/tree/TreeFeatures.h +++ b/alib2data/src/tree/TreeFeatures.h @@ -22,6 +22,7 @@ enum class FEATURES { }; class Tree; +class TreeBase; class RankedTree; class RankedPattern; diff --git a/alib2data/src/tree/TreeFromXMLParser.h b/alib2data/src/tree/TreeFromXMLParser.h index 5131a5be765f0708ba5fe5566622534e1709b791..3b14bffcecf469f058a5727a0726f0228b6fdb39 100644 --- a/alib2data/src/tree/TreeFromXMLParser.h +++ b/alib2data/src/tree/TreeFromXMLParser.h @@ -15,7 +15,7 @@ #include <variant> #include <vector> -#include "../alphabet/Symbol.h" +#include "../alphabet/SymbolFeatures.h" namespace alib { diff --git a/alib2data/src/tree/TreeToXMLComposer.cpp b/alib2data/src/tree/TreeToXMLComposer.cpp index 340f2d439baa8b5e5088414b59ea07afac883e8d..ba1b5e4cdac26503f3d3908f8ce73b39a617c6c6 100644 --- a/alib2data/src/tree/TreeToXMLComposer.cpp +++ b/alib2data/src/tree/TreeToXMLComposer.cpp @@ -7,6 +7,7 @@ #include "TreeToXMLComposer.h" #include "../XmlApi.hpp" +#include "Tree.h" #include "TreeClasses.h" namespace tree { diff --git a/alib2data/src/tree/TreeToXMLComposer.h b/alib2data/src/tree/TreeToXMLComposer.h index c807678c58bdb48ae684c859d5179a31dcc69957..4204168175982a70fd9d46b420928c36bd576305 100644 --- a/alib2data/src/tree/TreeToXMLComposer.h +++ b/alib2data/src/tree/TreeToXMLComposer.h @@ -9,7 +9,8 @@ #define TREE_TO_XML_COMPOSER_H_ #include <deque> -#include "Tree.h" +#include "TreeFeatures.h" +#include "../alphabet/SymbolFeatures.h" #include "../sax/Token.h" #include <set> diff --git a/astat2/src/AutomataSettings.h b/astat2/src/AutomataSettings.h index 3e39f9596a1a2cbcbdd94d1b9bb75def51a55eed..97b59fe0d7bbd73bab3ac0d769dda039978d5fa1 100644 --- a/astat2/src/AutomataSettings.h +++ b/astat2/src/AutomataSettings.h @@ -1,5 +1,5 @@ /* - * Settings.h + * AutomataSettings.h * * Created on: 26. 3. 2014 * Author: Jan Travnicek @@ -18,4 +18,4 @@ struct AutomataSettings { PrintingOptions transitions; }; -#endif /* __AUTOMATA_SETTINGS_H_ */ +#endif /* __AUTOMATA_SETTINGS_H__ */ diff --git a/astat2/src/GrammarSettings.h b/astat2/src/GrammarSettings.h new file mode 100644 index 0000000000000000000000000000000000000000..ece01e5b7a53658fcbd099fd9322b3b997413d71 --- /dev/null +++ b/astat2/src/GrammarSettings.h @@ -0,0 +1,20 @@ +/* + * GrammarSettings.h + * + * Created on: 26. 3. 2014 + * Author: Jan Travnicek + */ + +#ifndef __GRAMMAR_SETTINGS_H__ +#define __GRAMMAR_SETTINGS_H__ + +#include "PrintingOptions.h" + +struct GrammarSettings { + PrintingOptions nonterminals; + PrintingOptions terminals; + PrintingOptions initialNonterminal; + PrintingOptions rules; +}; + +#endif /* __GRAMMAR_SETTINGS_H__ */ diff --git a/astat2/src/GrammarStat.h b/astat2/src/GrammarStat.h new file mode 100644 index 0000000000000000000000000000000000000000..690dbbab8f09470df92d53589439f8fe166acac1 --- /dev/null +++ b/astat2/src/GrammarStat.h @@ -0,0 +1,16 @@ +/* + * GrammarStat.h + * + * Created on: 20. 9. 2014 + * Author: Jan Travnicek + */ + +#ifndef GRAMMAR_STAT_H_ +#define GRAMMAR_STAT_H_ + +#include "grammar/Grammar.h" + +#include "GrammarSettings.h" + + +#endif /* GRAMMAR_STAT_H_ */ diff --git a/astat2/src/RegExpSettings.h b/astat2/src/RegExpSettings.h new file mode 100644 index 0000000000000000000000000000000000000000..6c888c86ffb001eb702daceb426612bea4689a6c --- /dev/null +++ b/astat2/src/RegExpSettings.h @@ -0,0 +1,18 @@ +/* + * RegExpSettings.h + * + * Created on: 26. 3. 2014 + * Author: Jan Travnicek + */ + +#ifndef __REG_EXP_SETTINGS_H__ +#define __REG_EXP_SETTINGS_H__ + +#include "PrintingOptions.h" + +struct RegExpSettings { + PrintingOptions nodes; + PrintingOptions alphabet; +}; + +#endif /* __REG_EXP_SETTINGS_H__ */ diff --git a/astat2/src/RegExpStat.h b/astat2/src/RegExpStat.h new file mode 100644 index 0000000000000000000000000000000000000000..be57cf81e5e495bbe4a937dae79aea40a3fe8da9 --- /dev/null +++ b/astat2/src/RegExpStat.h @@ -0,0 +1,16 @@ +/* + * RegExpStat.h + * + * Created on: 20. 9. 2014 + * Author: Jan Travnicek + */ + +#ifndef REG_EXP_STATS_H_ +#define REG_EXP_STATS_H_ + +#include "regexp/RegExp.h" + +#include "RegExpSettings.h" + + +#endif /* REG_EXP_STATS_H_ */ diff --git a/astat2/src/astat.cpp b/astat2/src/astat.cpp index 9e40a770befc63393199c0e91efa1898e1176485..0570db9ed967b4e89107657b6bf8afc46cd985c0 100644 --- a/astat2/src/astat.cpp +++ b/astat2/src/astat.cpp @@ -11,10 +11,9 @@ #include <factory/XmlDataFactory.hpp> #include <exception/AlibException.h> -#include "AutomataSettings.h" #include "AutomataStat.h" - -#include "SetSettings.h" +#include "GrammarStat.h" +#include "RegExpStat.h" #include "SetStat.h" PrintingOptions translatePrintingOptions(std::string value) {