diff --git a/acast2/src/cast/TreeCastVisitor.cpp b/acast2/src/cast/TreeCastVisitor.cpp index 07d59c107339b734db12ece23e4b1b42715df553..df1aa8c0ae07bf371dbd4dd97ee8f78483df650c 100644 --- a/acast2/src/cast/TreeCastVisitor.cpp +++ b/acast2/src/cast/TreeCastVisitor.cpp @@ -6,6 +6,8 @@ */ #include "TreeCastVisitor.h" +#include "tree/TreeClasses.h" + #include "../CastVisitorBase.hpp" typedef cast_base_helper< tree::VisitableTreeBase::const_visitor_type, tree::TreeBase, alib::TreeTypes, tree::Tree, alib::TreeTypes > TreeCastVisitorType; diff --git a/acast2/src/cast/TreeToStringCastVisitor.cpp b/acast2/src/cast/TreeToStringCastVisitor.cpp index e3a1c1c2bd06c7c3667f918850f3e900ebffdc5e..90b45d1f3436fd59ad163e16a71f0e3c16676eda 100644 --- a/acast2/src/cast/TreeToStringCastVisitor.cpp +++ b/acast2/src/cast/TreeToStringCastVisitor.cpp @@ -7,6 +7,7 @@ #include "TreeToStringCastVisitor.h" #include "string/StringClasses.h" +#include "tree/TreeClasses.h" #include "../CastVisitorBase.hpp" diff --git a/alib2data/src/XmlApi.cpp b/alib2data/src/XmlApi.cpp index a1b1060270977732d1f3020e0909bc57c361530d..c329be3a3e41eca4523f5f0e06ae939bd07d8f33 100644 --- a/alib2data/src/XmlApi.cpp +++ b/alib2data/src/XmlApi.cpp @@ -17,6 +17,7 @@ #include "container/ContainerClasses.h" #include "grammar/GrammarClasses.h" #include "regexp/RegExpClasses.h" +#include "tree/TreeClasses.h" namespace alib { diff --git a/alib2data/src/object/ObjectBase.h b/alib2data/src/object/ObjectBase.h index 2af6fb36da8ac3742c9e957a22610181c3c9514a..00062148c4a5da8f5914aeb0414613cebce4b34c 100644 --- a/alib2data/src/object/ObjectBase.h +++ b/alib2data/src/object/ObjectBase.h @@ -33,19 +33,7 @@ class UndirectedGraph; #include "../alphabet/SymbolFeatures.h" #include "../container/ContainerFeatures.h" #include "../primitive/PrimitiveFeatures.h" - -namespace tree { - -class RankedTree; -class RankedPattern; -class PrefixRankedTree; -class PrefixRankedBarTree; -class PrefixRankedPattern; -class PrefixRankedBarPattern; -class UnrankedTree; -class UnrankedPattern; - -} +#include "../tree/TreeFeatures.h" namespace alib { @@ -83,6 +71,7 @@ typedef std::tuple< automaton::DFA, automaton::NFA, automaton::MultiInitialState typedef std::tuple< Void, exception::AlibException > OtherTypes; + // -------------------------------------------------------------------------------------------------------------------- template<typename ... Ts> diff --git a/alib2data/src/tree/Tree.h b/alib2data/src/tree/Tree.h index 5a9b9981e51c76338994266c4820cc6adb493c7e..7ccac890a129d9100fdb26162fbf90a5653fa337 100644 --- a/alib2data/src/tree/Tree.h +++ b/alib2data/src/tree/Tree.h @@ -16,7 +16,18 @@ namespace tree { /** * Wrapper around tree. */ -typedef alib::wrapper<TreeBase> Tree; +class Tree : public alib::wrapper<TreeBase> { +public: + explicit Tree(TreeBase* data) : alib::wrapper<TreeBase>(data) { + } + + explicit Tree(const TreeBase& data) : alib::wrapper<TreeBase>(data.clone()) { + } + + explicit Tree(TreeBase&& data) : alib::wrapper<TreeBase>(std::move(data).plunder()) { + } + +}; } /* namespace tree */ diff --git a/alib2data/src/tree/TreeBase.h b/alib2data/src/tree/TreeBase.h index 85198e5efb2412216ad2afee21ab9abca6033609..5f85a2a53a15850e1e97fa3a5af0549b3a4fb8ea 100644 --- a/alib2data/src/tree/TreeBase.h +++ b/alib2data/src/tree/TreeBase.h @@ -8,9 +8,7 @@ #ifndef TREE_BASE_H_ #define TREE_BASE_H_ -#include "../common/base.hpp" #include "../object/ObjectBase.h" -#include "../exception/AlibException.h" namespace tree { diff --git a/alib2data/src/tree/TreeClasses.h b/alib2data/src/tree/TreeClasses.h new file mode 100644 index 0000000000000000000000000000000000000000..213a49d4ed8dfaeee6e3e1ef97a7f0db4d6a9921 --- /dev/null +++ b/alib2data/src/tree/TreeClasses.h @@ -0,0 +1,20 @@ +/* + * TreeClasses.h + * + * Created on: Nov 16, 2014 + * Author: Jan Travnicek + */ + +#ifndef TREE_CLASSES_H_ +#define TREE_CLASSES_H_ + +#include "ranked/RankedTree.h" +#include "ranked/RankedPattern.h" +#include "ranked/PrefixRankedTree.h" +#include "ranked/PrefixRankedBarTree.h" +#include "ranked/PrefixRankedPattern.h" +#include "ranked/PrefixRankedBarPattern.h" +#include "unranked/UnrankedTree.h" +#include "unranked/UnrankedPattern.h" + +#endif /* TREE_CLASSES_H_ */ diff --git a/alib2data/src/tree/TreeFeatures.h b/alib2data/src/tree/TreeFeatures.h index ce2f78a82b872a26b872c0286d3233d70c72422a..ebc94bef348a1f72903ac1b3412d12055937bfb4 100644 --- a/alib2data/src/tree/TreeFeatures.h +++ b/alib2data/src/tree/TreeFeatures.h @@ -11,9 +11,30 @@ namespace tree { enum class FEATURES { - RANKED_TREE, RANKED_PATTERN, PREFIX_RANKED_TREE, PREFIX_RANKED_BAR_TREE, PREFIX_RANKED_PATTERN, PREFIX_RANKED_BAR_PATTERN, UNRANKED_TREE, UNRANKED_PATTERN + RANKED_TREE, + RANKED_PATTERN, + PREFIX_RANKED_TREE, + PREFIX_RANKED_BAR_TREE, + PREFIX_RANKED_PATTERN, + PREFIX_RANKED_BAR_PATTERN, + UNRANKED_TREE, + UNRANKED_PATTERN }; +class Tree; + +class RankedTree; +class RankedPattern; +class PrefixRankedTree; +class PrefixRankedBarTree; +class PrefixRankedPattern; +class PrefixRankedBarPattern; +class UnrankedTree; +class UnrankedPattern; + +class RankedNode; +class UnrankedNode; + } /* namespace tree */ #endif /* TREE_FEATURES_H_ */ diff --git a/alib2data/src/tree/TreeFromRawParser.cpp b/alib2data/src/tree/TreeFromRawParser.cpp index 94baa2943f0c734cdd8435c531b89c976422641e..ef227f0f4e2a1e25c9232c754642abf222e02ed6 100644 --- a/alib2data/src/tree/TreeFromRawParser.cpp +++ b/alib2data/src/tree/TreeFromRawParser.cpp @@ -6,6 +6,7 @@ */ #include "TreeFromRawParser.h" +#include "Tree.h" #include "TreeException.h" #include "ranked/RankedTree.h" #include "ranked/PrefixRankedTree.h" diff --git a/alib2data/src/tree/TreeFromRawParser.h b/alib2data/src/tree/TreeFromRawParser.h index 67339771944cef668820841726ead700ea84ea32..0e9b335405a4298f6593c8247027caa59da9e7cd 100644 --- a/alib2data/src/tree/TreeFromRawParser.h +++ b/alib2data/src/tree/TreeFromRawParser.h @@ -9,9 +9,7 @@ #define TREE_FROM_RAW_PARSER #include "../sax/FromXMLParserHelper.h" -#include "Tree.h" #include "TreeFeatures.h" -#include <deque> #include <set> #include "unranked/UnrankedNode.h" diff --git a/alib2data/src/tree/TreeFromXMLParser.cpp b/alib2data/src/tree/TreeFromXMLParser.cpp index 5a0752393e130d9c797b15dc0937a2b2b71d1227..a5e67f91ba56b7cb8fa8be0d150ae113c031e356 100644 --- a/alib2data/src/tree/TreeFromXMLParser.cpp +++ b/alib2data/src/tree/TreeFromXMLParser.cpp @@ -6,11 +6,12 @@ */ #include "TreeFromXMLParser.h" - #include "../sax/ParserException.h" - #include "../XmlApi.hpp" +#include "Tree.h" +#include "TreeClasses.h" + namespace tree { Tree TreeFromXMLParser::parseTree(std::deque<sax::Token>::iterator& input) const { diff --git a/alib2data/src/tree/TreeFromXMLParser.h b/alib2data/src/tree/TreeFromXMLParser.h index 208f6a764cbf2870cdb21b6026ba60b8a365d47e..5131a5be765f0708ba5fe5566622534e1709b791 100644 --- a/alib2data/src/tree/TreeFromXMLParser.h +++ b/alib2data/src/tree/TreeFromXMLParser.h @@ -9,15 +9,13 @@ #define TREE_FROM_XML_PARSER_H_ #include "../sax/FromXMLParserHelper.h" -#include "Tree.h" #include "TreeFeatures.h" -#include "ranked/RankedTree.h" -#include "unranked/UnrankedTree.h" -#include <deque> #include <set> #include <variant> -#include "../sax/Token.h" +#include <vector> + +#include "../alphabet/Symbol.h" namespace alib { diff --git a/alib2data/src/tree/TreeToRawComposer.cpp b/alib2data/src/tree/TreeToRawComposer.cpp index 56430c335f071547dd435b6ae4cf587c51dd6773..038d89faf5f067b2e1adb98108932b573c8c2982 100644 --- a/alib2data/src/tree/TreeToRawComposer.cpp +++ b/alib2data/src/tree/TreeToRawComposer.cpp @@ -7,8 +7,8 @@ #include "TreeToRawComposer.h" #include "TreeException.h" - #include "../XmlApi.hpp" +#include "TreeClasses.h" namespace tree { diff --git a/alib2data/src/tree/TreeToRawComposer.h b/alib2data/src/tree/TreeToRawComposer.h index 14c2f3cd7869d65175c5b7273b2ac2c0d476d769..483a36c3392640bb6084aa277dd3f7e020224abb 100644 --- a/alib2data/src/tree/TreeToRawComposer.h +++ b/alib2data/src/tree/TreeToRawComposer.h @@ -10,9 +10,8 @@ #include <deque> #include "Tree.h" -#include "ranked/RankedTree.h" -#include "unranked/UnrankedTree.h" #include "../sax/Token.h" +#include <vector> namespace alib { diff --git a/alib2data/src/tree/TreeToXMLComposer.cpp b/alib2data/src/tree/TreeToXMLComposer.cpp index 5cb8455434417bba492cfd8db741726c6d0c6910..340f2d439baa8b5e5088414b59ea07afac883e8d 100644 --- a/alib2data/src/tree/TreeToXMLComposer.cpp +++ b/alib2data/src/tree/TreeToXMLComposer.cpp @@ -6,8 +6,8 @@ */ #include "TreeToXMLComposer.h" - #include "../XmlApi.hpp" +#include "TreeClasses.h" namespace tree { diff --git a/alib2data/src/tree/TreeToXMLComposer.h b/alib2data/src/tree/TreeToXMLComposer.h index b5a978c6414c438ddaebdea146e49c5b624e0a31..c807678c58bdb48ae684c859d5179a31dcc69957 100644 --- a/alib2data/src/tree/TreeToXMLComposer.h +++ b/alib2data/src/tree/TreeToXMLComposer.h @@ -8,18 +8,10 @@ #ifndef TREE_TO_XML_COMPOSER_H_ #define TREE_TO_XML_COMPOSER_H_ -#include <string> #include <deque> #include "Tree.h" -#include "ranked/RankedTree.h" -#include "ranked/RankedPattern.h" -#include "ranked/PrefixRankedTree.h" -#include "ranked/PrefixRankedBarTree.h" -#include "ranked/PrefixRankedPattern.h" -#include "ranked/PrefixRankedBarPattern.h" -#include "unranked/UnrankedTree.h" -#include "unranked/UnrankedPattern.h" #include "../sax/Token.h" +#include <set> namespace alib { diff --git a/alib2data/test-src/tree/PatternTest.cpp b/alib2data/test-src/tree/PatternTest.cpp index 4af5a2369212fa97460c8b7d8987b594d1d8f863..9ade84aab4a809f7dba27e281d57f562bc6321ee 100644 --- a/alib2data/test-src/tree/PatternTest.cpp +++ b/alib2data/test-src/tree/PatternTest.cpp @@ -3,10 +3,14 @@ #include "sax/SaxParseInterface.h" #include "sax/SaxComposeInterface.h" +#include "tree/unranked/UnrankedPattern.h" #include "tree/ranked/RankedPattern.h" #include "tree/ranked/PrefixRankedPattern.h" #include "tree/ranked/PrefixRankedBarPattern.h" +#include "tree/ranked/RankedNode.h" +#include "tree/unranked/UnrankedNode.h" + #include "tree/TreeException.h" #include "factory/XmlDataFactory.hpp" diff --git a/alib2data/test-src/tree/TreeTest.cpp b/alib2data/test-src/tree/TreeTest.cpp index 698479fcfd5c34b58a264479ed017ce71bab9dcd..7d1ad8136d7b66e92f4ce5283443eb60c8d45bbf 100644 --- a/alib2data/test-src/tree/TreeTest.cpp +++ b/alib2data/test-src/tree/TreeTest.cpp @@ -4,10 +4,14 @@ #include "sax/SaxComposeInterface.h" #include "tree/ranked/RankedTree.h" +#include "tree/unranked/UnrankedTree.h" #include "tree/ranked/PrefixRankedTree.h" #include "tree/ranked/PrefixRankedBarTree.h" #include "tree/ranked/RankedPattern.h" +#include "tree/ranked/RankedNode.h" +#include "tree/unranked/UnrankedNode.h" + #include "tree/TreeException.h" #include "factory/XmlDataFactory.hpp" diff --git a/tniceprint/src/tniceprint.cpp b/tniceprint/src/tniceprint.cpp index 28d94650a8e78ec896cb2c15f800ef67d8e67669..6055e296d9e3f0dd3a13f98543daef7515e83679 100644 --- a/tniceprint/src/tniceprint.cpp +++ b/tniceprint/src/tniceprint.cpp @@ -12,6 +12,8 @@ #include <sax/SaxParseInterface.h> #include <sax/ParserException.h> #include <tree/Tree.h> +#include <tree/ranked/RankedTree.h> +#include <tree/unranked/UnrankedTree.h> int main(int argc, char** argv) { try {