From 1632e68a88468c628833b41504507c7e43ce96e6 Mon Sep 17 00:00:00 2001 From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz> Date: Wed, 10 Jun 2015 21:06:12 +0200 Subject: [PATCH] simplify includes in trees --- acast2/src/cast/TreeCastVisitor.cpp | 2 ++ acast2/src/cast/TreeToStringCastVisitor.cpp | 1 + alib2data/src/XmlApi.cpp | 1 + alib2data/src/object/ObjectBase.h | 15 ++------------ alib2data/src/tree/Tree.h | 13 +++++++++++- alib2data/src/tree/TreeBase.h | 2 -- alib2data/src/tree/TreeClasses.h | 20 ++++++++++++++++++ alib2data/src/tree/TreeFeatures.h | 23 ++++++++++++++++++++- alib2data/src/tree/TreeFromRawParser.cpp | 1 + alib2data/src/tree/TreeFromRawParser.h | 2 -- alib2data/src/tree/TreeFromXMLParser.cpp | 5 +++-- alib2data/src/tree/TreeFromXMLParser.h | 8 +++---- alib2data/src/tree/TreeToRawComposer.cpp | 2 +- alib2data/src/tree/TreeToRawComposer.h | 3 +-- alib2data/src/tree/TreeToXMLComposer.cpp | 2 +- alib2data/src/tree/TreeToXMLComposer.h | 10 +-------- alib2data/test-src/tree/PatternTest.cpp | 4 ++++ alib2data/test-src/tree/TreeTest.cpp | 4 ++++ tniceprint/src/tniceprint.cpp | 2 ++ 19 files changed, 81 insertions(+), 39 deletions(-) create mode 100644 alib2data/src/tree/TreeClasses.h diff --git a/acast2/src/cast/TreeCastVisitor.cpp b/acast2/src/cast/TreeCastVisitor.cpp index 07d59c1073..df1aa8c0ae 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 e3a1c1c2bd..90b45d1f34 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 a1b1060270..c329be3a3e 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 2af6fb36da..00062148c4 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 5a9b9981e5..7ccac890a1 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 85198e5efb..5f85a2a53a 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 0000000000..213a49d4ed --- /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 ce2f78a82b..ebc94bef34 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 94baa2943f..ef227f0f4e 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 6733977194..0e9b335405 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 5a0752393e..a5e67f91ba 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 208f6a764c..5131a5be76 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 56430c335f..038d89faf5 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 14c2f3cd78..483a36c339 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 5cb8455434..340f2d439b 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 b5a978c641..c807678c58 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 4af5a23692..9ade84aab4 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 698479fcfd..7d1ad8136d 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 28d94650a8..6055e296d9 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 { -- GitLab