From 6f1da8f9f6f9a89cf0fae9ea9bd46b6be10e36a9 Mon Sep 17 00:00:00 2001 From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz> Date: Thu, 17 May 2018 15:30:27 +0200 Subject: [PATCH] decouple tree xmlApi from tree data structures --- .../src/tree/generate/RandomTreeFactory.cpp | 2 + alib2data/src/tree/TreeBase.h | 26 ----- .../src/tree/ranked/PostfixRankedTree.cpp | 7 -- alib2data/src/tree/ranked/PostfixRankedTree.h | 52 ---------- .../PrefixRankedBarNonlinearPattern.cpp | 7 -- .../ranked/PrefixRankedBarNonlinearPattern.h | 60 ------------ .../tree/ranked/PrefixRankedBarPattern.cpp | 7 -- .../src/tree/ranked/PrefixRankedBarPattern.h | 58 ----------- .../src/tree/ranked/PrefixRankedBarTree.cpp | 7 -- .../src/tree/ranked/PrefixRankedBarTree.h | 54 ----------- .../ranked/PrefixRankedNonlinearPattern.cpp | 7 -- .../ranked/PrefixRankedNonlinearPattern.h | 56 ----------- .../src/tree/ranked/PrefixRankedPattern.cpp | 7 -- .../src/tree/ranked/PrefixRankedPattern.h | 54 ----------- .../src/tree/ranked/PrefixRankedTree.cpp | 7 -- alib2data/src/tree/ranked/PrefixRankedTree.h | 52 ---------- .../tree/ranked/RankedNonlinearPattern.cpp | 7 -- .../src/tree/ranked/RankedNonlinearPattern.h | 57 ----------- alib2data/src/tree/ranked/RankedPattern.cpp | 7 -- alib2data/src/tree/ranked/RankedPattern.h | 55 ----------- alib2data/src/tree/ranked/RankedTree.cpp | 7 -- alib2data/src/tree/ranked/RankedTree.h | 53 ---------- alib2data/src/tree/unranked/PrefixBarTree.cpp | 7 -- alib2data/src/tree/unranked/PrefixBarTree.h | 53 ---------- .../unranked/UnrankedNonlinearPattern.cpp | 7 -- .../tree/unranked/UnrankedNonlinearPattern.h | 56 ----------- .../src/tree/unranked/UnrankedPattern.cpp | 7 -- alib2data/src/tree/unranked/UnrankedPattern.h | 54 ----------- alib2data/src/tree/unranked/UnrankedTree.cpp | 7 -- alib2data/src/tree/unranked/UnrankedTree.h | 52 ---------- .../tree/{ => xml}/common/TreeFromXMLParser.h | 0 .../tree/{ => xml}/common/TreeToXMLComposer.h | 0 .../src/tree/xml/ranked/PostfixRankedTree.cpp | 22 +++++ .../src/tree/xml/ranked/PostfixRankedTree.h | 88 +++++++++++++++++ .../PrefixRankedBarNonlinearPattern.cpp | 22 +++++ .../ranked/PrefixRankedBarNonlinearPattern.h | 96 +++++++++++++++++++ .../xml/ranked/PrefixRankedBarPattern.cpp | 22 +++++ .../tree/xml/ranked/PrefixRankedBarPattern.h | 94 ++++++++++++++++++ .../tree/xml/ranked/PrefixRankedBarTree.cpp | 22 +++++ .../src/tree/xml/ranked/PrefixRankedBarTree.h | 90 +++++++++++++++++ .../ranked/PrefixRankedNonlinearPattern.cpp | 22 +++++ .../xml/ranked/PrefixRankedNonlinearPattern.h | 92 ++++++++++++++++++ .../tree/xml/ranked/PrefixRankedPattern.cpp | 22 +++++ .../src/tree/xml/ranked/PrefixRankedPattern.h | 90 +++++++++++++++++ .../src/tree/xml/ranked/PrefixRankedTree.cpp | 22 +++++ .../src/tree/xml/ranked/PrefixRankedTree.h | 88 +++++++++++++++++ .../xml/ranked/RankedNonlinearPattern.cpp | 22 +++++ .../tree/xml/ranked/RankedNonlinearPattern.h | 93 ++++++++++++++++++ .../src/tree/xml/ranked/RankedPattern.cpp | 22 +++++ alib2data/src/tree/xml/ranked/RankedPattern.h | 91 ++++++++++++++++++ alib2data/src/tree/xml/ranked/RankedTree.cpp | 22 +++++ alib2data/src/tree/xml/ranked/RankedTree.h | 93 ++++++++++++++++++ .../src/tree/xml/unranked/PrefixBarTree.cpp | 22 +++++ .../src/tree/xml/unranked/PrefixBarTree.h | 89 +++++++++++++++++ .../xml/unranked/UnrankedNonlinearPattern.cpp | 22 +++++ .../xml/unranked/UnrankedNonlinearPattern.h | 92 ++++++++++++++++++ .../src/tree/xml/unranked/UnrankedPattern.cpp | 22 +++++ .../src/tree/xml/unranked/UnrankedPattern.h | 90 +++++++++++++++++ .../src/tree/xml/unranked/UnrankedTree.cpp | 22 +++++ .../src/tree/xml/unranked/UnrankedTree.h | 92 ++++++++++++++++++ alib2data/test-src/tree/PatternTest.cpp | 4 + alib2data/test-src/tree/TreeTest.cpp | 5 + tniceprint/src/tniceprint.cpp | 2 + 63 files changed, 1599 insertions(+), 890 deletions(-) rename alib2data/src/tree/{ => xml}/common/TreeFromXMLParser.h (100%) rename alib2data/src/tree/{ => xml}/common/TreeToXMLComposer.h (100%) create mode 100644 alib2data/src/tree/xml/ranked/PostfixRankedTree.cpp create mode 100644 alib2data/src/tree/xml/ranked/PostfixRankedTree.h create mode 100644 alib2data/src/tree/xml/ranked/PrefixRankedBarNonlinearPattern.cpp create mode 100644 alib2data/src/tree/xml/ranked/PrefixRankedBarNonlinearPattern.h create mode 100644 alib2data/src/tree/xml/ranked/PrefixRankedBarPattern.cpp create mode 100644 alib2data/src/tree/xml/ranked/PrefixRankedBarPattern.h create mode 100644 alib2data/src/tree/xml/ranked/PrefixRankedBarTree.cpp create mode 100644 alib2data/src/tree/xml/ranked/PrefixRankedBarTree.h create mode 100644 alib2data/src/tree/xml/ranked/PrefixRankedNonlinearPattern.cpp create mode 100644 alib2data/src/tree/xml/ranked/PrefixRankedNonlinearPattern.h create mode 100644 alib2data/src/tree/xml/ranked/PrefixRankedPattern.cpp create mode 100644 alib2data/src/tree/xml/ranked/PrefixRankedPattern.h create mode 100644 alib2data/src/tree/xml/ranked/PrefixRankedTree.cpp create mode 100644 alib2data/src/tree/xml/ranked/PrefixRankedTree.h create mode 100644 alib2data/src/tree/xml/ranked/RankedNonlinearPattern.cpp create mode 100644 alib2data/src/tree/xml/ranked/RankedNonlinearPattern.h create mode 100644 alib2data/src/tree/xml/ranked/RankedPattern.cpp create mode 100644 alib2data/src/tree/xml/ranked/RankedPattern.h create mode 100644 alib2data/src/tree/xml/ranked/RankedTree.cpp create mode 100644 alib2data/src/tree/xml/ranked/RankedTree.h create mode 100644 alib2data/src/tree/xml/unranked/PrefixBarTree.cpp create mode 100644 alib2data/src/tree/xml/unranked/PrefixBarTree.h create mode 100644 alib2data/src/tree/xml/unranked/UnrankedNonlinearPattern.cpp create mode 100644 alib2data/src/tree/xml/unranked/UnrankedNonlinearPattern.h create mode 100644 alib2data/src/tree/xml/unranked/UnrankedPattern.cpp create mode 100644 alib2data/src/tree/xml/unranked/UnrankedPattern.h create mode 100644 alib2data/src/tree/xml/unranked/UnrankedTree.cpp create mode 100644 alib2data/src/tree/xml/unranked/UnrankedTree.h diff --git a/alib2algo/src/tree/generate/RandomTreeFactory.cpp b/alib2algo/src/tree/generate/RandomTreeFactory.cpp index 4501479837..45d109c3c4 100644 --- a/alib2algo/src/tree/generate/RandomTreeFactory.cpp +++ b/alib2algo/src/tree/generate/RandomTreeFactory.cpp @@ -26,6 +26,8 @@ #include <registration/AlgoRegistration.hpp> +#include <global/GlobalData.h> + namespace tree { namespace generate { diff --git a/alib2data/src/tree/TreeBase.h b/alib2data/src/tree/TreeBase.h index 6431792ad8..ccdedd35cb 100644 --- a/alib2data/src/tree/TreeBase.h +++ b/alib2data/src/tree/TreeBase.h @@ -10,8 +10,6 @@ #include <object/ObjectBase.h> -#include <core/xmlApi.hpp> - namespace tree { /** @@ -25,28 +23,4 @@ public: } /* namespace tree */ -namespace core { - -template < typename Type > -struct xmlApi < Type, typename std::enable_if < std::is_base_of < tree::TreeBase, Type >::value >::type > { - static Type parse ( ext::deque < sax::Token >::iterator & input ) { - return Type::parse ( input ); - } - - static bool first ( const ext::deque < sax::Token >::const_iterator & input ) { - return sax::FromXMLParserHelper::isToken ( input, sax::Token::TokenType::START_ELEMENT, xmlTagName() ); - } - - static std::string xmlTagName ( ) { - return Type::getXmlTagName(); - } - - static void compose ( ext::deque < sax::Token > & output, const Type & data ) { - Type::compose ( output, data ); - } - -}; - -} /* namespace core */ - #endif /* TREE_BASE_H_ */ diff --git a/alib2data/src/tree/ranked/PostfixRankedTree.cpp b/alib2data/src/tree/ranked/PostfixRankedTree.cpp index 5b5ee74ffe..b02ff6bf6a 100644 --- a/alib2data/src/tree/ranked/PostfixRankedTree.cpp +++ b/alib2data/src/tree/ranked/PostfixRankedTree.cpp @@ -10,7 +10,6 @@ #include <object/Object.h> #include <registration/ValuePrinterRegistration.hpp> -#include <registration/XmlRegistration.hpp> #include <registration/CastRegistration.hpp> #include <registration/ComponentRegistration.hpp> @@ -20,12 +19,6 @@ static auto components = registration::ComponentRegister < tree::PostfixRankedTr static auto valuePrinter = registration::ValuePrinterRegister < tree::PostfixRankedTree < > > ( ); -static auto xmlWrite = registration::XmlWriterRegister < tree::PostfixRankedTree < > > ( ); -static auto xmlRead = registration::XmlReaderRegister < tree::PostfixRankedTree < > > ( ); - -static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::PostfixRankedTree < > > ( ); -static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, tree::PostfixRankedTree < > > ( ); - static auto PostfixRankedTreeFromRankedTree = registration::CastRegister < tree::PostfixRankedTree < >, tree::RankedTree < > > ( ); static auto LinearStringFromPostfixRankedTree = registration::CastRegister < string::LinearString < common::ranked_symbol < > >, tree::PostfixRankedTree < > > ( ); diff --git a/alib2data/src/tree/ranked/PostfixRankedTree.h b/alib2data/src/tree/ranked/PostfixRankedTree.h index c56dbad687..1dc8e04963 100644 --- a/alib2data/src/tree/ranked/PostfixRankedTree.h +++ b/alib2data/src/tree/ranked/PostfixRankedTree.h @@ -32,16 +32,12 @@ #include <alib/deque> #include <core/components.hpp> -#include <sax/FromXMLParserHelper.h> #include <object/UniqueObject.h> #include <common/ranked_symbol.hpp> -#include <alphabet/xml/RankedSymbol.h> #include "../TreeFeatures.h" #include "../TreeException.h" #include "../TreeBase.h" -#include "../common/TreeFromXMLParser.h" -#include "../common/TreeToXMLComposer.h" #include "../common/TreeAuxiliary.h" #include <tree/common/TreeNormalize.h> @@ -195,36 +191,6 @@ public: */ virtual explicit operator std::string ( ) const override; - /** - * \brief The XML tag name of class. - * - * \details Intentionaly a static member function to be safe in the initialisation before the main function starts. - * - * \returns string representing the XML tag name of the class - */ - static const std::string & getXmlTagName ( ) { - static std::string xmlTagName = "PostfixRankedTree"; - - return xmlTagName; - } - - /** - * Parsing from a sequence of xml tokens helper. - * - * \params input the iterator to sequence of xml tokens to parse from - * - * \returns the new instance of the tree - */ - static PostfixRankedTree parse ( ext::deque < sax::Token >::iterator & input ); - - /** - * Composing to a sequence of xml tokens helper. - * - * \param out the sink for new xml tokens representing the tree - * \param tree the tree to compose - */ - static void compose ( ext::deque < sax::Token > & out, const PostfixRankedTree & tree ); - /** * @copydoc object::ObjectBase::inc() */ @@ -342,24 +308,6 @@ PostfixRankedTree < SymbolType, RankType >::operator std::string ( ) const { return std::move ( ss ).str ( ); } -template < class SymbolType, class RankType > -PostfixRankedTree < SymbolType, RankType > PostfixRankedTree < SymbolType, RankType >::parse ( ext::deque < sax::Token >::iterator & input ) { - sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::START_ELEMENT, PostfixRankedTree::getXmlTagName ( ) ); - ext::set < common::ranked_symbol < SymbolType, RankType > > rankedAlphabet = TreeFromXMLParser::parseAlphabet < common::ranked_symbol < SymbolType, RankType > > ( input ); - ext::vector < common::ranked_symbol < SymbolType, RankType > > data = TreeFromXMLParser::parseLinearContent < common::ranked_symbol < SymbolType, RankType > > ( input ); - sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::END_ELEMENT, PostfixRankedTree::getXmlTagName ( ) ); - - return PostfixRankedTree < SymbolType, RankType > ( std::move ( rankedAlphabet ), std::move ( data ) ); -} - -template < class SymbolType, class RankType > -void PostfixRankedTree < SymbolType, RankType >::compose ( ext::deque < sax::Token > & out, const PostfixRankedTree & tree ) { - out.emplace_back ( PostfixRankedTree::getXmlTagName ( ), sax::Token::TokenType::START_ELEMENT ); - TreeToXMLComposer::composeAlphabet ( out, tree.getAlphabet ( ) ); - TreeToXMLComposer::composeContent ( out, tree.m_Data ); - out.emplace_back ( PostfixRankedTree::getXmlTagName ( ), sax::Token::TokenType::END_ELEMENT ); -} - template < class SymbolType, class RankType > object::ObjectBase * PostfixRankedTree < SymbolType, RankType >::inc ( ) && { return new object::UniqueObject ( object::Object ( std::move ( * this ) ), primitive::Integer ( 0 ) ); diff --git a/alib2data/src/tree/ranked/PrefixRankedBarNonlinearPattern.cpp b/alib2data/src/tree/ranked/PrefixRankedBarNonlinearPattern.cpp index 6103320e72..9b37188911 100644 --- a/alib2data/src/tree/ranked/PrefixRankedBarNonlinearPattern.cpp +++ b/alib2data/src/tree/ranked/PrefixRankedBarNonlinearPattern.cpp @@ -10,7 +10,6 @@ #include <object/Object.h> #include <registration/ValuePrinterRegistration.hpp> -#include <registration/XmlRegistration.hpp> #include <registration/CastRegistration.hpp> #include <registration/ComponentRegistration.hpp> @@ -20,12 +19,6 @@ static auto components = registration::ComponentRegister < tree::PrefixRankedBar static auto valuePrinter = registration::ValuePrinterRegister < tree::PrefixRankedBarNonlinearPattern < > > ( ); -static auto xmlWrite = registration::XmlWriterRegister < tree::PrefixRankedBarNonlinearPattern < > > ( ); -static auto xmlRead = registration::XmlReaderRegister < tree::PrefixRankedBarNonlinearPattern < > > ( ); - -static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::PrefixRankedBarNonlinearPattern < > > ( ); -static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, tree::PrefixRankedBarNonlinearPattern < > > ( ); - static auto PrefixRankedBarNonlinearPatternFromRankedTree = registration::CastRegister < tree::PrefixRankedBarNonlinearPattern < >, tree::RankedTree < > > ( ); static auto PrefixRankedBarNonlinearPatternFromRankedPattern = registration::CastRegister < tree::PrefixRankedBarNonlinearPattern < >, tree::RankedPattern < > > ( ); static auto PrefixRankedBarNonlinearPatternFromRankedNonlinearPattern = registration::CastRegister < tree::PrefixRankedBarNonlinearPattern < >, tree::RankedNonlinearPattern < > > ( ); diff --git a/alib2data/src/tree/ranked/PrefixRankedBarNonlinearPattern.h b/alib2data/src/tree/ranked/PrefixRankedBarNonlinearPattern.h index 7aeb633d54..fbe4ea5311 100644 --- a/alib2data/src/tree/ranked/PrefixRankedBarNonlinearPattern.h +++ b/alib2data/src/tree/ranked/PrefixRankedBarNonlinearPattern.h @@ -31,17 +31,13 @@ #include <alib/algorithm> #include <alib/deque> -#include <sax/FromXMLParserHelper.h> #include <core/components.hpp> #include <object/UniqueObject.h> #include <common/ranked_symbol.hpp> -#include <alphabet/xml/RankedSymbol.h> #include "../TreeFeatures.h" #include "../TreeException.h" #include "../TreeBase.h" -#include "../common/TreeFromXMLParser.h" -#include "../common/TreeToXMLComposer.h" #include "../common/TreeAuxiliary.h" #include <tree/common/TreeNormalize.h> @@ -363,36 +359,6 @@ public: */ virtual explicit operator std::string ( ) const override; - /** - * \brief The XML tag name of class. - * - * \details Intentionaly a static member function to be safe in the initialisation before the main function starts. - * - * \returns string representing the XML tag name of the class - */ - static const std::string & getXmlTagName ( ) { - static std::string xmlTagName = "PrefixRankedBarNonlinearPattern"; - - return xmlTagName; - } - - /** - * Parsing from a sequence of xml tokens helper. - * - * \params input the iterator to sequence of xml tokens to parse from - * - * \returns the new instance of the pattern - */ - static PrefixRankedBarNonlinearPattern parse ( ext::deque < sax::Token >::iterator & input ); - - /** - * Composing to a sequence of xml tokens helper. - * - * \param out the sink for new xml tokens representing the pattern - * \param pattern the pattern to compose - */ - static void compose ( ext::deque < sax::Token > & out, const PrefixRankedBarNonlinearPattern & pattern ); - /** * @copydoc object::ObjectBase::inc() */ @@ -564,32 +530,6 @@ PrefixRankedBarNonlinearPattern < SymbolType, RankType >::operator std::string ( return std::move ( ss ).str ( ); } -template < class SymbolType, class RankType > -PrefixRankedBarNonlinearPattern < SymbolType, RankType > PrefixRankedBarNonlinearPattern < SymbolType, RankType >::parse ( ext::deque < sax::Token >::iterator & input ) { - sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::START_ELEMENT, PrefixRankedBarNonlinearPattern::getXmlTagName ( ) ); - ext::set < common::ranked_symbol < SymbolType, RankType > > bars = TreeFromXMLParser::parseBars < common::ranked_symbol < SymbolType, RankType > > ( input ); - common::ranked_symbol < SymbolType, RankType > variablesBarSymbol = TreeFromXMLParser::parseVariablesBar < common::ranked_symbol < SymbolType, RankType > > ( input ); - common::ranked_symbol < SymbolType, RankType > subtreeWildcardSymbol = TreeFromXMLParser::parseWildcardSymbol < common::ranked_symbol < SymbolType, RankType > > ( input ); - ext::set < common::ranked_symbol < SymbolType, RankType > > nonlinearVariables = TreeFromXMLParser::parseNonlinearVariables < common::ranked_symbol < SymbolType, RankType > > ( input ); - ext::set < common::ranked_symbol < SymbolType, RankType > > rankedAlphabet = TreeFromXMLParser::parseAlphabet < common::ranked_symbol < SymbolType, RankType > > ( input ); - ext::vector < common::ranked_symbol < SymbolType, RankType > > data = TreeFromXMLParser::parseLinearContent < common::ranked_symbol < SymbolType, RankType > > ( input ); - sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::END_ELEMENT, PrefixRankedBarNonlinearPattern::getXmlTagName ( ) ); - - return PrefixRankedBarNonlinearPattern < SymbolType, RankType > ( std::move ( bars ), std::move ( variablesBarSymbol ), std::move ( subtreeWildcardSymbol ), std::move ( nonlinearVariables ), std::move ( rankedAlphabet ), std::move ( data ) ); -} - -template < class SymbolType, class RankType > -void PrefixRankedBarNonlinearPattern < SymbolType, RankType >::compose ( ext::deque < sax::Token > & out, const PrefixRankedBarNonlinearPattern & pattern ) { - out.emplace_back ( PrefixRankedBarNonlinearPattern::getXmlTagName ( ), sax::Token::TokenType::START_ELEMENT ); - TreeToXMLComposer::composeBars ( out, pattern.getBars ( ) ); - TreeToXMLComposer::composeVariablesBar ( out, pattern.getVariablesBar ( ) ); - TreeToXMLComposer::composeSubtreeWildcard ( out, pattern.getSubtreeWildcard ( ) ); - TreeToXMLComposer::composeNonlinearVariables ( out, pattern.getNonlinearVariables ( ) ); - TreeToXMLComposer::composeAlphabet ( out, pattern.getAlphabet ( ) ); - TreeToXMLComposer::composeContent ( out, pattern.m_Data ); - out.emplace_back ( PrefixRankedBarNonlinearPattern::getXmlTagName ( ), sax::Token::TokenType::END_ELEMENT ); -} - template < class SymbolType, class RankType > object::ObjectBase* PrefixRankedBarNonlinearPattern < SymbolType, RankType >::inc() && { return new object::UniqueObject(object::Object(std::move(*this)), primitive::Integer(0)); diff --git a/alib2data/src/tree/ranked/PrefixRankedBarPattern.cpp b/alib2data/src/tree/ranked/PrefixRankedBarPattern.cpp index fe72f8c473..aef03991fd 100644 --- a/alib2data/src/tree/ranked/PrefixRankedBarPattern.cpp +++ b/alib2data/src/tree/ranked/PrefixRankedBarPattern.cpp @@ -10,7 +10,6 @@ #include <object/Object.h> #include <registration/ValuePrinterRegistration.hpp> -#include <registration/XmlRegistration.hpp> #include <registration/CastRegistration.hpp> #include <registration/ComponentRegistration.hpp> @@ -20,12 +19,6 @@ static auto components = registration::ComponentRegister < tree::PrefixRankedBar static auto valuePrinter = registration::ValuePrinterRegister < tree::PrefixRankedBarPattern < > > ( ); -static auto xmlWrite = registration::XmlWriterRegister < tree::PrefixRankedBarPattern < > > ( ); -static auto xmlRead = registration::XmlReaderRegister < tree::PrefixRankedBarPattern < > > ( ); - -static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::PrefixRankedBarPattern < > > ( ); -static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, tree::PrefixRankedBarPattern < > > ( ); - static auto PrefixRankedBarPatternFromRankedPattern = registration::CastRegister < tree::PrefixRankedBarPattern < >, tree::RankedPattern < > > ( ); static auto PrefixRankedBarPatternFromPrefixRankedBarTree = registration::CastRegister < tree::PrefixRankedBarPattern < >, tree::PrefixRankedBarTree < > > ( ); diff --git a/alib2data/src/tree/ranked/PrefixRankedBarPattern.h b/alib2data/src/tree/ranked/PrefixRankedBarPattern.h index 27435ceb78..342800c38c 100644 --- a/alib2data/src/tree/ranked/PrefixRankedBarPattern.h +++ b/alib2data/src/tree/ranked/PrefixRankedBarPattern.h @@ -32,16 +32,12 @@ #include <alib/deque> #include <core/components.hpp> -#include <sax/FromXMLParserHelper.h> #include <object/UniqueObject.h> #include <common/ranked_symbol.hpp> -#include <alphabet/xml/RankedSymbol.h> #include "../TreeFeatures.h" #include "../TreeException.h" #include "../TreeBase.h" -#include "../common/TreeFromXMLParser.h" -#include "../common/TreeToXMLComposer.h" #include "../common/TreeAuxiliary.h" #include <tree/common/TreeNormalize.h> @@ -292,36 +288,6 @@ public: */ virtual explicit operator std::string ( ) const override; - /** - * \brief The XML tag name of class. - * - * \details Intentionaly a static member function to be safe in the initialisation before the main function starts. - * - * \returns string representing the XML tag name of the class - */ - static const std::string & getXmlTagName() { - static std::string xmlTagName = "PrefixRankedBarPattern"; - - return xmlTagName; - } - - /** - * Parsing from a sequence of xml tokens helper. - * - * \params input the iterator to sequence of xml tokens to parse from - * - * \returns the new instance of the pattern - */ - static PrefixRankedBarPattern parse ( ext::deque < sax::Token >::iterator & input ); - - /** - * Composing to a sequence of xml tokens helper. - * - * \param out the sink for new xml tokens representing the pattern - * \param pattern the pattern to compose - */ - static void compose ( ext::deque < sax::Token > & out, const PrefixRankedBarPattern & pattern ); - /** * @copydoc object::ObjectBase::inc() */ @@ -462,30 +428,6 @@ PrefixRankedBarPattern < SymbolType, RankType >::operator std::string ( ) const return std::move ( ss ).str ( ); } -template < class SymbolType, class RankType > -PrefixRankedBarPattern < SymbolType, RankType > PrefixRankedBarPattern < SymbolType, RankType >::parse ( ext::deque < sax::Token >::iterator & input ) { - sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::START_ELEMENT, PrefixRankedBarPattern::getXmlTagName() ); - ext::set < common::ranked_symbol < SymbolType, RankType > > bars = TreeFromXMLParser::parseBars < common::ranked_symbol < SymbolType, RankType > > ( input ); - common::ranked_symbol < SymbolType, RankType > variablesBarSymbol = TreeFromXMLParser::parseVariablesBar < common::ranked_symbol < SymbolType, RankType > > ( input ); - common::ranked_symbol < SymbolType, RankType > subtreeWildcardSymbol = TreeFromXMLParser::parseWildcardSymbol < common::ranked_symbol < SymbolType, RankType > > ( input ); - ext::set < common::ranked_symbol < SymbolType, RankType > > rankedAlphabet = TreeFromXMLParser::parseAlphabet < common::ranked_symbol < SymbolType, RankType > > ( input ); - ext::vector < common::ranked_symbol < SymbolType, RankType > > data = TreeFromXMLParser::parseLinearContent < common::ranked_symbol < SymbolType, RankType > > ( input ); - sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::END_ELEMENT, PrefixRankedBarPattern::getXmlTagName() ); - - return PrefixRankedBarPattern < SymbolType, RankType > ( std::move ( bars ), std::move ( variablesBarSymbol ), std::move ( subtreeWildcardSymbol ), std::move ( rankedAlphabet ), std::move ( data ) ); -} - -template < class SymbolType, class RankType > -void PrefixRankedBarPattern < SymbolType, RankType >::compose ( ext::deque < sax::Token > & out, const PrefixRankedBarPattern & pattern ) { - out.emplace_back ( PrefixRankedBarPattern::getXmlTagName(), sax::Token::TokenType::START_ELEMENT ); - TreeToXMLComposer::composeBars ( out, pattern.getBars() ); - TreeToXMLComposer::composeVariablesBar ( out, pattern.getVariablesBar() ); - TreeToXMLComposer::composeSubtreeWildcard ( out, pattern.getSubtreeWildcard() ); - TreeToXMLComposer::composeAlphabet ( out, pattern.getAlphabet() ); - TreeToXMLComposer::composeContent ( out, pattern.m_Data ); - out.emplace_back ( PrefixRankedBarPattern::getXmlTagName(), sax::Token::TokenType::END_ELEMENT ); -} - template < class SymbolType, class RankType > object::ObjectBase* PrefixRankedBarPattern < SymbolType, RankType >::inc() && { return new object::UniqueObject(object::Object(std::move(*this)), primitive::Integer(0)); diff --git a/alib2data/src/tree/ranked/PrefixRankedBarTree.cpp b/alib2data/src/tree/ranked/PrefixRankedBarTree.cpp index 9d416167ab..ce1d344b24 100644 --- a/alib2data/src/tree/ranked/PrefixRankedBarTree.cpp +++ b/alib2data/src/tree/ranked/PrefixRankedBarTree.cpp @@ -10,7 +10,6 @@ #include <object/Object.h> #include <registration/ValuePrinterRegistration.hpp> -#include <registration/XmlRegistration.hpp> #include <registration/CastRegistration.hpp> #include <registration/ComponentRegistration.hpp> @@ -20,12 +19,6 @@ static auto components = registration::ComponentRegister < tree::PrefixRankedBar static auto valuePrinter = registration::ValuePrinterRegister < tree::PrefixRankedBarTree < > > ( ); -static auto xmlWrite = registration::XmlWriterRegister < tree::PrefixRankedBarTree < > > ( ); -static auto xmlRead = registration::XmlReaderRegister < tree::PrefixRankedBarTree < > > ( ); - -static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::PrefixRankedBarTree < > > ( ); -static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, tree::PrefixRankedBarTree < > > ( ); - static auto PrefixRankedBarTreeFromRankedTree = registration::CastRegister < tree::PrefixRankedBarTree < >, tree::RankedTree < > > ( ); static auto LinearStringFromPrefixRankedBarTree = registration::CastRegister < string::LinearString < common::ranked_symbol < > >, tree::PrefixRankedBarTree < > > ( ); diff --git a/alib2data/src/tree/ranked/PrefixRankedBarTree.h b/alib2data/src/tree/ranked/PrefixRankedBarTree.h index 8d62a3ba30..8273f36475 100644 --- a/alib2data/src/tree/ranked/PrefixRankedBarTree.h +++ b/alib2data/src/tree/ranked/PrefixRankedBarTree.h @@ -32,16 +32,12 @@ #include <alib/deque> #include <core/components.hpp> -#include <sax/FromXMLParserHelper.h> #include <object/UniqueObject.h> #include <common/ranked_symbol.hpp> -#include <alphabet/xml/RankedSymbol.h> #include "../TreeFeatures.h" #include "../TreeException.h" #include "../TreeBase.h" -#include "../common/TreeFromXMLParser.h" -#include "../common/TreeToXMLComposer.h" #include "../common/TreeAuxiliary.h" #include <tree/common/TreeNormalize.h> @@ -238,36 +234,6 @@ public: */ virtual explicit operator std::string ( ) const override; - /** - * \brief The XML tag name of class. - * - * \details Intentionaly a static member function to be safe in the initialisation before the main function starts. - * - * \returns string representing the XML tag name of the class - */ - static const std::string & getXmlTagName() { - static std::string xmlTagName = "PrefixRankedBarTree"; - - return xmlTagName; - } - - /** - * Parsing from a sequence of xml tokens helper. - * - * \params input the iterator to sequence of xml tokens to parse from - * - * \returns the new instance of the tree - */ - static PrefixRankedBarTree parse ( ext::deque < sax::Token >::iterator & input ); - - /** - * Composing to a sequence of xml tokens helper. - * - * \param out the sink for new xml tokens representing the tree - * \param tree the tree to compose - */ - static void compose ( ext::deque < sax::Token > & out, const PrefixRankedBarTree & tree ); - /** * @copydoc object::ObjectBase::inc() */ @@ -398,26 +364,6 @@ PrefixRankedBarTree < SymbolType, RankType >::operator std::string ( ) const { return std::move ( ss ).str ( ); } -template < class SymbolType, class RankType > -PrefixRankedBarTree < SymbolType, RankType > PrefixRankedBarTree < SymbolType, RankType >::parse ( ext::deque < sax::Token >::iterator & input ) { - sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::START_ELEMENT, PrefixRankedBarTree::getXmlTagName() ); - ext::set < common::ranked_symbol < SymbolType, RankType > > bars = TreeFromXMLParser::parseBars < common::ranked_symbol < SymbolType, RankType > > ( input ); - ext::set < common::ranked_symbol < SymbolType, RankType > > rankedAlphabet = TreeFromXMLParser::parseAlphabet < common::ranked_symbol < SymbolType, RankType > > ( input ); - ext::vector < common::ranked_symbol < SymbolType, RankType > > data = TreeFromXMLParser::parseLinearContent < common::ranked_symbol < SymbolType, RankType > > ( input ); - sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::END_ELEMENT, PrefixRankedBarTree::getXmlTagName() ); - - return PrefixRankedBarTree < SymbolType, RankType > ( std::move ( bars ), std::move ( rankedAlphabet ), std::move ( data ) ); -} - -template < class SymbolType, class RankType > -void PrefixRankedBarTree < SymbolType, RankType >::compose ( ext::deque < sax::Token > & out, const PrefixRankedBarTree & tree ) { - out.emplace_back ( PrefixRankedBarTree::getXmlTagName(), sax::Token::TokenType::START_ELEMENT ); - TreeToXMLComposer::composeBars ( out, tree.getBars() ); - TreeToXMLComposer::composeAlphabet ( out, tree.getAlphabet() ); - TreeToXMLComposer::composeContent ( out, tree.m_Data ); - out.emplace_back ( PrefixRankedBarTree::getXmlTagName(), sax::Token::TokenType::END_ELEMENT ); -} - template < class SymbolType, class RankType > object::ObjectBase* PrefixRankedBarTree < SymbolType, RankType >::inc() && { return new object::UniqueObject(object::Object(std::move(*this)), primitive::Integer(0)); diff --git a/alib2data/src/tree/ranked/PrefixRankedNonlinearPattern.cpp b/alib2data/src/tree/ranked/PrefixRankedNonlinearPattern.cpp index 4d0edd86a6..8041e5203a 100644 --- a/alib2data/src/tree/ranked/PrefixRankedNonlinearPattern.cpp +++ b/alib2data/src/tree/ranked/PrefixRankedNonlinearPattern.cpp @@ -10,7 +10,6 @@ #include <object/Object.h> #include <registration/ValuePrinterRegistration.hpp> -#include <registration/XmlRegistration.hpp> #include <registration/CastRegistration.hpp> #include <registration/ComponentRegistration.hpp> @@ -20,12 +19,6 @@ static auto components = registration::ComponentRegister < tree::PrefixRankedNon static auto valuePrinter = registration::ValuePrinterRegister < tree::PrefixRankedNonlinearPattern < > > ( ); -static auto xmlWrite = registration::XmlWriterRegister < tree::PrefixRankedNonlinearPattern < > > ( ); -static auto xmlRead = registration::XmlReaderRegister < tree::PrefixRankedNonlinearPattern < > > ( ); - -static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::PrefixRankedNonlinearPattern < > > ( ); -static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, tree::PrefixRankedNonlinearPattern < > > ( ); - static auto PrefixRankedNonlinearPatternFromRankedTree = registration::CastRegister < tree::PrefixRankedNonlinearPattern < >, tree::RankedTree < > > ( ); static auto PrefixRankedNonlinearPatternFromRankedPattern = registration::CastRegister < tree::PrefixRankedNonlinearPattern < >, tree::RankedPattern < > > ( ); static auto PrefixRankedNonlinearPatternFromRankedNonlinearPattern = registration::CastRegister < tree::PrefixRankedNonlinearPattern < >, tree::RankedNonlinearPattern < > > ( ); diff --git a/alib2data/src/tree/ranked/PrefixRankedNonlinearPattern.h b/alib2data/src/tree/ranked/PrefixRankedNonlinearPattern.h index abe6c55f9e..c9fc012a9a 100644 --- a/alib2data/src/tree/ranked/PrefixRankedNonlinearPattern.h +++ b/alib2data/src/tree/ranked/PrefixRankedNonlinearPattern.h @@ -32,16 +32,12 @@ #include <alib/deque> #include <core/components.hpp> -#include <sax/FromXMLParserHelper.h> #include <object/UniqueObject.h> #include <common/ranked_symbol.hpp> -#include <alphabet/xml/RankedSymbol.h> #include "../TreeFeatures.h" #include "../TreeException.h" #include "../TreeBase.h" -#include "../common/TreeFromXMLParser.h" -#include "../common/TreeToXMLComposer.h" #include "../common/TreeAuxiliary.h" #include <tree/common/TreeNormalize.h> @@ -277,36 +273,6 @@ public: */ virtual explicit operator std::string ( ) const override; - /** - * \brief The XML tag name of class. - * - * \details Intentionaly a static member function to be safe in the initialisation before the main function starts. - * - * \returns string representing the XML tag name of the class - */ - static const std::string & getXmlTagName ( ) { - static std::string xmlTagName = "PrefixRankedNonlinearPattern"; - - return xmlTagName; - } - - /** - * Parsing from a sequence of xml tokens helper. - * - * \params input the iterator to sequence of xml tokens to parse from - * - * \returns the new instance of the pattern - */ - static PrefixRankedNonlinearPattern parse ( ext::deque < sax::Token >::iterator & input ); - - /** - * Composing to a sequence of xml tokens helper. - * - * \param out the sink for new xml tokens representing the pattern - * \param pattern the pattern to compose - */ - static void compose ( ext::deque < sax::Token > & out, const PrefixRankedNonlinearPattern & pattern ); - /** * @copydoc object::ObjectBase::inc() */ @@ -448,28 +414,6 @@ PrefixRankedNonlinearPattern < SymbolType, RankType >::operator std::string ( ) return std::move ( ss ).str ( ); } -template < class SymbolType, class RankType > -PrefixRankedNonlinearPattern < SymbolType, RankType > PrefixRankedNonlinearPattern < SymbolType, RankType >::parse ( ext::deque < sax::Token >::iterator & input ) { - sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::START_ELEMENT, PrefixRankedNonlinearPattern::getXmlTagName ( ) ); - common::ranked_symbol < SymbolType, RankType > subtreeWildcardSymbol = TreeFromXMLParser::parseWildcardSymbol < common::ranked_symbol < SymbolType, RankType > > ( input ); - ext::set < common::ranked_symbol < SymbolType, RankType > > nonlinearVariables = TreeFromXMLParser::parseNonlinearVariables < common::ranked_symbol < SymbolType, RankType > > ( input ); - ext::set < common::ranked_symbol < SymbolType, RankType > > rankedAlphabet = TreeFromXMLParser::parseAlphabet < common::ranked_symbol < SymbolType, RankType > > ( input ); - ext::vector < common::ranked_symbol < SymbolType, RankType > > data = TreeFromXMLParser::parseLinearContent < common::ranked_symbol < SymbolType, RankType > > ( input ); - sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::END_ELEMENT, PrefixRankedNonlinearPattern::getXmlTagName ( ) ); - - return PrefixRankedNonlinearPattern < SymbolType, RankType > ( std::move ( subtreeWildcardSymbol ), std::move ( nonlinearVariables ), std::move ( rankedAlphabet ), std::move ( data ) ); -} - -template < class SymbolType, class RankType > -void PrefixRankedNonlinearPattern < SymbolType, RankType >::compose ( ext::deque < sax::Token > & out, const PrefixRankedNonlinearPattern & pattern ) { - out.emplace_back ( PrefixRankedNonlinearPattern::getXmlTagName ( ), sax::Token::TokenType::START_ELEMENT ); - TreeToXMLComposer::composeSubtreeWildcard ( out, pattern.getSubtreeWildcard ( ) ); - TreeToXMLComposer::composeNonlinearVariables ( out, pattern.getNonlinearVariables ( ) ); - TreeToXMLComposer::composeAlphabet ( out, pattern.getAlphabet ( ) ); - TreeToXMLComposer::composeContent ( out, pattern.m_Data ); - out.emplace_back ( PrefixRankedNonlinearPattern::getXmlTagName ( ), sax::Token::TokenType::END_ELEMENT ); -} - template < class SymbolType, class RankType > object::ObjectBase* PrefixRankedNonlinearPattern < SymbolType, RankType >::inc() && { return new object::UniqueObject(object::Object(std::move(*this)), primitive::Integer(0)); diff --git a/alib2data/src/tree/ranked/PrefixRankedPattern.cpp b/alib2data/src/tree/ranked/PrefixRankedPattern.cpp index fc190f77e1..4628b46a55 100644 --- a/alib2data/src/tree/ranked/PrefixRankedPattern.cpp +++ b/alib2data/src/tree/ranked/PrefixRankedPattern.cpp @@ -10,7 +10,6 @@ #include <object/Object.h> #include <registration/ValuePrinterRegistration.hpp> -#include <registration/XmlRegistration.hpp> #include <registration/CastRegistration.hpp> #include <registration/ComponentRegistration.hpp> @@ -20,12 +19,6 @@ static auto components = registration::ComponentRegister < tree::PrefixRankedPat static auto valuePrinter = registration::ValuePrinterRegister < tree::PrefixRankedPattern < > > ( ); -static auto xmlWrite = registration::XmlWriterRegister < tree::PrefixRankedPattern < > > ( ); -static auto xmlRead = registration::XmlReaderRegister < tree::PrefixRankedPattern < > > ( ); - -static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::PrefixRankedPattern < > > ( ); -static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, tree::PrefixRankedPattern < > > ( ); - static auto PrefixRankedPatternFromRankedPattern = registration::CastRegister < tree::PrefixRankedPattern < >, tree::RankedPattern < > > ( ); static auto PrefixRankedPatternFromPrefixRankedTree = registration::CastRegister < tree::PrefixRankedPattern < >, tree::PrefixRankedTree < > > ( ); diff --git a/alib2data/src/tree/ranked/PrefixRankedPattern.h b/alib2data/src/tree/ranked/PrefixRankedPattern.h index cbcae7842a..4336b3c93a 100644 --- a/alib2data/src/tree/ranked/PrefixRankedPattern.h +++ b/alib2data/src/tree/ranked/PrefixRankedPattern.h @@ -32,16 +32,12 @@ #include <alib/deque> #include <core/components.hpp> -#include <sax/FromXMLParserHelper.h> #include <object/UniqueObject.h> #include <common/ranked_symbol.hpp> -#include <alphabet/xml/RankedSymbol.h> #include "../TreeFeatures.h" #include "../TreeException.h" #include "../TreeBase.h" -#include "../common/TreeFromXMLParser.h" -#include "../common/TreeToXMLComposer.h" #include "../common/TreeAuxiliary.h" #include <tree/common/TreeNormalize.h> @@ -226,36 +222,6 @@ public: */ virtual explicit operator std::string ( ) const override; - /** - * \brief The XML tag name of class. - * - * \details Intentionaly a static member function to be safe in the initialisation before the main function starts. - * - * \returns string representing the XML tag name of the class - */ - static const std::string & getXmlTagName() { - static std::string xmlTagName = "PrefixRankedPattern"; - - return xmlTagName; - } - - /** - * Parsing from a sequence of xml tokens helper. - * - * \params input the iterator to sequence of xml tokens to parse from - * - * \returns the new instance of the pattern - */ - static PrefixRankedPattern parse ( ext::deque < sax::Token >::iterator & input ); - - /** - * Composing to a sequence of xml tokens helper. - * - * \param out the sink for new xml tokens representing the pattern - * \param pattern the pattern to compose - */ - static void compose ( ext::deque < sax::Token > & out, const PrefixRankedPattern & pattern ); - /** * @copydoc object::ObjectBase::inc() */ @@ -378,26 +344,6 @@ PrefixRankedPattern < SymbolType, RankType >::operator std::string ( ) const { return std::move ( ss ).str ( ); } -template < class SymbolType, class RankType > -PrefixRankedPattern < SymbolType, RankType > PrefixRankedPattern < SymbolType, RankType >::parse ( ext::deque < sax::Token >::iterator & input ) { - sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::START_ELEMENT, PrefixRankedPattern::getXmlTagName() ); - common::ranked_symbol < SymbolType, RankType > subtreeWildcardSymbol = TreeFromXMLParser::parseWildcardSymbol < common::ranked_symbol < SymbolType, RankType > > ( input ); - ext::set < common::ranked_symbol < SymbolType, RankType > > rankedAlphabet = TreeFromXMLParser::parseAlphabet < common::ranked_symbol < SymbolType, RankType > > ( input ); - ext::vector < common::ranked_symbol < SymbolType, RankType > > data = TreeFromXMLParser::parseLinearContent < common::ranked_symbol < SymbolType, RankType > > ( input ); - sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::END_ELEMENT, PrefixRankedPattern::getXmlTagName() ); - - return PrefixRankedPattern < SymbolType, RankType > ( std::move ( subtreeWildcardSymbol ), std::move ( rankedAlphabet ), std::move ( data ) ); -} - -template < class SymbolType, class RankType > -void PrefixRankedPattern < SymbolType, RankType >::compose ( ext::deque < sax::Token > & out, const PrefixRankedPattern & pattern ) { - out.emplace_back ( PrefixRankedPattern::getXmlTagName(), sax::Token::TokenType::START_ELEMENT ); - TreeToXMLComposer::composeSubtreeWildcard ( out, pattern.getSubtreeWildcard() ); - TreeToXMLComposer::composeAlphabet ( out, pattern.getAlphabet() ); - TreeToXMLComposer::composeContent ( out, pattern.m_Data ); - out.emplace_back ( PrefixRankedPattern::getXmlTagName(), sax::Token::TokenType::END_ELEMENT ); -} - template < class SymbolType, class RankType > object::ObjectBase* PrefixRankedPattern < SymbolType, RankType >::inc() && { return new object::UniqueObject(object::Object(std::move(*this)), primitive::Integer(0)); diff --git a/alib2data/src/tree/ranked/PrefixRankedTree.cpp b/alib2data/src/tree/ranked/PrefixRankedTree.cpp index c4e805b4be..1ec0466b74 100644 --- a/alib2data/src/tree/ranked/PrefixRankedTree.cpp +++ b/alib2data/src/tree/ranked/PrefixRankedTree.cpp @@ -10,7 +10,6 @@ #include <object/Object.h> #include <registration/ValuePrinterRegistration.hpp> -#include <registration/XmlRegistration.hpp> #include <registration/CastRegistration.hpp> #include <registration/ComponentRegistration.hpp> @@ -20,12 +19,6 @@ static auto components = registration::ComponentRegister < tree::PrefixRankedTre static auto valuePrinter = registration::ValuePrinterRegister < tree::PrefixRankedTree < > > ( ); -static auto xmlWrite = registration::XmlWriterRegister < tree::PrefixRankedTree < > > ( ); -static auto xmlRead = registration::XmlReaderRegister < tree::PrefixRankedTree < > > ( ); - -static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::PrefixRankedTree < > > ( ); -static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, tree::PrefixRankedTree < > > ( ); - static auto PrefixRankedTreeFromRankedTree = registration::CastRegister < tree::PrefixRankedTree < >, tree::RankedTree < > > ( ); static auto PrefixRankedTreeFromPostfixRankedTree = registration::CastRegister < tree::PrefixRankedTree < >, tree::PostfixRankedTree < > > ( ); diff --git a/alib2data/src/tree/ranked/PrefixRankedTree.h b/alib2data/src/tree/ranked/PrefixRankedTree.h index 86ef80109f..a53b660469 100644 --- a/alib2data/src/tree/ranked/PrefixRankedTree.h +++ b/alib2data/src/tree/ranked/PrefixRankedTree.h @@ -32,16 +32,12 @@ #include <alib/deque> #include <core/components.hpp> -#include <sax/FromXMLParserHelper.h> #include <object/UniqueObject.h> #include <common/ranked_symbol.hpp> -#include <alphabet/xml/RankedSymbol.h> #include "../TreeFeatures.h" #include "../TreeException.h" #include "../TreeBase.h" -#include "../common/TreeFromXMLParser.h" -#include "../common/TreeToXMLComposer.h" #include <tree/common/TreeNormalize.h> #include <core/normalize.hpp> @@ -201,36 +197,6 @@ public: */ virtual explicit operator std::string ( ) const override; - /** - * \brief The XML tag name of class. - * - * \details Intentionaly a static member function to be safe in the initialisation before the main function starts. - * - * \returns string representing the XML tag name of the class - */ - static const std::string & getXmlTagName() { - static std::string xmlTagName = "PrefixRankedTree"; - - return xmlTagName; - } - - /** - * Parsing from a sequence of xml tokens helper. - * - * \params input the iterator to sequence of xml tokens to parse from - * - * \returns the new instance of the tree - */ - static PrefixRankedTree parse ( ext::deque < sax::Token >::iterator & input ); - - /** - * Composing to a sequence of xml tokens helper. - * - * \param out the sink for new xml tokens representing the tree - * \param tree the tree to compose - */ - static void compose ( ext::deque < sax::Token > & out, const PrefixRankedTree & tree ); - /** * @copydoc object::ObjectBase::inc() */ @@ -352,24 +318,6 @@ PrefixRankedTree < SymbolType, RankType >::operator std::string ( ) const { return std::move ( ss ).str ( ); } -template < class SymbolType, class RankType > -PrefixRankedTree < SymbolType, RankType > PrefixRankedTree < SymbolType, RankType >::parse ( ext::deque < sax::Token >::iterator & input ) { - sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::START_ELEMENT, PrefixRankedTree::getXmlTagName() ); - ext::set < common::ranked_symbol < SymbolType, RankType > > rankedAlphabet = TreeFromXMLParser::parseAlphabet < common::ranked_symbol < SymbolType, RankType > > ( input ); - ext::vector < common::ranked_symbol < SymbolType, RankType > > data = TreeFromXMLParser::parseLinearContent < common::ranked_symbol < SymbolType, RankType > > ( input ); - sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::END_ELEMENT, PrefixRankedTree::getXmlTagName() ); - - return PrefixRankedTree < SymbolType, RankType > ( std::move ( rankedAlphabet ), std::move ( data ) ); -} - -template < class SymbolType, class RankType > -void PrefixRankedTree < SymbolType, RankType >::compose ( ext::deque < sax::Token > & out, const PrefixRankedTree & tree ) { - out.emplace_back ( PrefixRankedTree::getXmlTagName(), sax::Token::TokenType::START_ELEMENT ); - TreeToXMLComposer::composeAlphabet ( out, tree.getAlphabet() ); - TreeToXMLComposer::composeContent ( out, tree.m_Data ); - out.emplace_back ( PrefixRankedTree::getXmlTagName(), sax::Token::TokenType::END_ELEMENT ); -} - template < class SymbolType, class RankType > object::ObjectBase* PrefixRankedTree < SymbolType, RankType >::inc() && { return new object::UniqueObject(object::Object(std::move(*this)), primitive::Integer(0)); diff --git a/alib2data/src/tree/ranked/RankedNonlinearPattern.cpp b/alib2data/src/tree/ranked/RankedNonlinearPattern.cpp index 60dced13ad..3c3be98add 100644 --- a/alib2data/src/tree/ranked/RankedNonlinearPattern.cpp +++ b/alib2data/src/tree/ranked/RankedNonlinearPattern.cpp @@ -10,7 +10,6 @@ #include <object/Object.h> #include <registration/ValuePrinterRegistration.hpp> -#include <registration/XmlRegistration.hpp> #include <registration/CastRegistration.hpp> #include <registration/ComponentRegistration.hpp> @@ -20,10 +19,4 @@ static auto components = registration::ComponentRegister < tree::RankedNonlinear static auto valuePrinter = registration::ValuePrinterRegister < tree::RankedNonlinearPattern < > > ( ); -static auto xmlWrite = registration::XmlWriterRegister < tree::RankedNonlinearPattern < > > ( ); -static auto xmlRead = registration::XmlReaderRegister < tree::RankedNonlinearPattern < > > ( ); - -static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::RankedNonlinearPattern < > > ( ); -static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, tree::RankedNonlinearPattern < > > ( ); - } /* namespace */ diff --git a/alib2data/src/tree/ranked/RankedNonlinearPattern.h b/alib2data/src/tree/ranked/RankedNonlinearPattern.h index d096f7aa2a..85e7b80cbf 100644 --- a/alib2data/src/tree/ranked/RankedNonlinearPattern.h +++ b/alib2data/src/tree/ranked/RankedNonlinearPattern.h @@ -32,16 +32,12 @@ #include <sstream> #include <core/components.hpp> -#include <sax/FromXMLParserHelper.h> #include <object/UniqueObject.h> #include <common/ranked_symbol.hpp> -#include <alphabet/xml/RankedSymbol.h> #include "../TreeFeatures.h" #include "../TreeException.h" #include "../TreeBase.h" -#include "../common/TreeFromXMLParser.h" -#include "../common/TreeToXMLComposer.h" #include "../common/TreeAuxiliary.h" #include <tree/common/TreeNormalize.h> @@ -251,36 +247,6 @@ public: */ virtual explicit operator std::string ( ) const override; - /** - * \brief The XML tag name of class. - * - * \details Intentionaly a static member function to be safe in the initialisation before the main function starts. - * - * \returns string representing the XML tag name of the class - */ - static const std::string & getXmlTagName() { - static std::string xmlTagName = "RankedNonlinearPattern"; - - return xmlTagName; - } - - /** - * Parsing from a sequence of xml tokens helper. - * - * \params input the iterator to sequence of xml tokens to parse from - * - * \returns the new instance of the pattern - */ - static RankedNonlinearPattern parse ( ext::deque < sax::Token >::iterator & input ); - - /** - * Composing to a sequence of xml tokens helper. - * - * \param out the sink for new xml tokens representing the pattern - * \param pattern the pattern to compose - */ - static void compose ( ext::deque < sax::Token > & out, const RankedNonlinearPattern & pattern ); - /** * @copydoc object::ObjectBase::inc() */ @@ -392,29 +358,6 @@ RankedNonlinearPattern < SymbolType, RankType >::operator std::string ( ) const return ss.str ( ); } -template < class SymbolType, class RankType > -RankedNonlinearPattern < SymbolType, RankType > RankedNonlinearPattern < SymbolType, RankType >::parse ( ext::deque < sax::Token >::iterator & input ) { - sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::START_ELEMENT, RankedNonlinearPattern::getXmlTagName() ); - common::ranked_symbol < SymbolType, RankType > subtreeWildcardSymbol = TreeFromXMLParser::parseWildcardSymbol < common::ranked_symbol < SymbolType, RankType > > ( input ); - ext::set < common::ranked_symbol < SymbolType, RankType > > nonlinearVariables = TreeFromXMLParser::parseNonlinearVariables < common::ranked_symbol < SymbolType, RankType > > ( input ); - ext::set < common::ranked_symbol < SymbolType, RankType > > rankedAlphabet = TreeFromXMLParser::parseAlphabet < common::ranked_symbol < SymbolType, RankType > > ( input ); - ext::tree < common::ranked_symbol < SymbolType, RankType > > root = TreeFromXMLParser::parseTreeContent < common::ranked_symbol < SymbolType, RankType > > ( input ); - RankedNonlinearPattern < SymbolType, RankType > tree ( std::move ( subtreeWildcardSymbol ), std::move ( nonlinearVariables ), std::move ( rankedAlphabet ), std::move ( root ) ); - - sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::END_ELEMENT, RankedNonlinearPattern::getXmlTagName() ); - return tree; -} - -template < class SymbolType, class RankType > -void RankedNonlinearPattern < SymbolType, RankType >::compose ( ext::deque < sax::Token > & out, const RankedNonlinearPattern & pattern ) { - out.emplace_back ( RankedNonlinearPattern::getXmlTagName(), sax::Token::TokenType::START_ELEMENT ); - TreeToXMLComposer::composeSubtreeWildcard ( out, pattern.getSubtreeWildcard() ); - TreeToXMLComposer::composeNonlinearVariables ( out, pattern.getNonlinearVariables() ); - TreeToXMLComposer::composeAlphabet ( out, pattern.getAlphabet() ); - TreeToXMLComposer::composeContent ( out, pattern.getContent ( ) ); - out.emplace_back ( RankedNonlinearPattern::getXmlTagName(), sax::Token::TokenType::END_ELEMENT ); -} - template < class SymbolType, class RankType > object::ObjectBase* RankedNonlinearPattern < SymbolType, RankType >::inc() && { return new object::UniqueObject(object::Object(std::move(*this)), primitive::Integer(0)); diff --git a/alib2data/src/tree/ranked/RankedPattern.cpp b/alib2data/src/tree/ranked/RankedPattern.cpp index 7dd5aa0284..e51075d3fd 100644 --- a/alib2data/src/tree/ranked/RankedPattern.cpp +++ b/alib2data/src/tree/ranked/RankedPattern.cpp @@ -10,7 +10,6 @@ #include <object/Object.h> #include <registration/ValuePrinterRegistration.hpp> -#include <registration/XmlRegistration.hpp> #include <registration/CastRegistration.hpp> #include <registration/ComponentRegistration.hpp> @@ -20,12 +19,6 @@ static auto components = registration::ComponentRegister < tree::RankedPattern < static auto valuePrinter = registration::ValuePrinterRegister < tree::RankedPattern < > > ( ); -static auto xmlWrite = registration::XmlWriterRegister < tree::RankedPattern < > > ( ); -static auto xmlRead = registration::XmlReaderRegister < tree::RankedPattern < > > ( ); - -static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::RankedPattern < > > ( ); -static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, tree::RankedPattern < > > ( ); - static auto RankedPatternFromUnrankedPattern = registration::CastRegister < tree::RankedPattern < >, tree::UnrankedPattern < > > ( ); } /* namespace */ diff --git a/alib2data/src/tree/ranked/RankedPattern.h b/alib2data/src/tree/ranked/RankedPattern.h index 7c82483342..20cf26a314 100644 --- a/alib2data/src/tree/ranked/RankedPattern.h +++ b/alib2data/src/tree/ranked/RankedPattern.h @@ -32,16 +32,12 @@ #include <sstream> #include <core/components.hpp> -#include <sax/FromXMLParserHelper.h> #include <object/UniqueObject.h> #include <common/ranked_symbol.hpp> -#include <alphabet/xml/RankedSymbol.h> #include "../TreeFeatures.h" #include "../TreeException.h" #include "../TreeBase.h" -#include "../common/TreeFromXMLParser.h" -#include "../common/TreeToXMLComposer.h" #include "../common/TreeAuxiliary.h" #include <tree/common/TreeNormalize.h> @@ -221,36 +217,6 @@ public: */ virtual explicit operator std::string ( ) const override; - /** - * \brief The XML tag name of class. - * - * \details Intentionaly a static member function to be safe in the initialisation before the main function starts. - * - * \returns string representing the XML tag name of the class - */ - static const std::string & getXmlTagName() { - static std::string xmlTagName = "RankedPattern"; - - return xmlTagName; - } - - /** - * Parsing from a sequence of xml tokens helper. - * - * \params input the iterator to sequence of xml tokens to parse from - * - * \returns the new instance of the pattern - */ - static RankedPattern parse ( ext::deque < sax::Token >::iterator & input ); - - /** - * Composing to a sequence of xml tokens helper. - * - * \param out the sink for new xml tokens representing the pattern - * \param pattern the pattern to compose - */ - static void compose ( ext::deque < sax::Token > & out, const RankedPattern & pattern ); - /** * @copydoc object::ObjectBase::inc() */ @@ -358,27 +324,6 @@ RankedPattern < SymbolType, RankType >::operator std::string ( ) const { return ss.str ( ); } -template < class SymbolType, class RankType > -RankedPattern < SymbolType, RankType > RankedPattern < SymbolType, RankType >::parse ( ext::deque < sax::Token >::iterator & input ) { - sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::START_ELEMENT, RankedPattern::getXmlTagName() ); - common::ranked_symbol < SymbolType, RankType > subtreeWildcardSymbol = TreeFromXMLParser::parseWildcardSymbol < common::ranked_symbol < SymbolType, RankType > > ( input ); - ext::set < common::ranked_symbol < SymbolType, RankType > > rankedAlphabet = TreeFromXMLParser::parseAlphabet < common::ranked_symbol < SymbolType, RankType > > ( input ); - ext::tree < common::ranked_symbol < SymbolType, RankType > > root = TreeFromXMLParser::parseTreeContent < common::ranked_symbol < SymbolType, RankType > > ( input ); - RankedPattern < SymbolType, RankType > tree ( std::move ( subtreeWildcardSymbol ), std::move ( rankedAlphabet ), std::move ( root ) ); - - sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::END_ELEMENT, RankedPattern::getXmlTagName() ); - return tree; -} - -template < class SymbolType, class RankType > -void RankedPattern < SymbolType, RankType >::compose ( ext::deque < sax::Token > & out, const RankedPattern & pattern ) { - out.emplace_back ( RankedPattern::getXmlTagName(), sax::Token::TokenType::START_ELEMENT ); - TreeToXMLComposer::composeSubtreeWildcard ( out, pattern.getSubtreeWildcard() ); - TreeToXMLComposer::composeAlphabet ( out, pattern.getAlphabet() ); - TreeToXMLComposer::composeContent ( out, pattern.getContent ( ) ); - out.emplace_back ( RankedPattern::getXmlTagName(), sax::Token::TokenType::END_ELEMENT ); -} - template < class SymbolType, class RankType > object::ObjectBase* RankedPattern < SymbolType, RankType >::inc() && { return new object::UniqueObject(object::Object(std::move(*this)), primitive::Integer(0)); diff --git a/alib2data/src/tree/ranked/RankedTree.cpp b/alib2data/src/tree/ranked/RankedTree.cpp index 9b015b2920..0d48b48f16 100644 --- a/alib2data/src/tree/ranked/RankedTree.cpp +++ b/alib2data/src/tree/ranked/RankedTree.cpp @@ -10,7 +10,6 @@ #include <object/Object.h> #include <registration/ValuePrinterRegistration.hpp> -#include <registration/XmlRegistration.hpp> #include <registration/CastRegistration.hpp> #include <registration/ComponentRegistration.hpp> @@ -20,12 +19,6 @@ static auto components = registration::ComponentRegister < tree::RankedTree < > static auto valuePrinter = registration::ValuePrinterRegister < tree::RankedTree < > > ( ); -static auto xmlWrite = registration::XmlWriterRegister < tree::RankedTree < > > ( ); -static auto xmlRead = registration::XmlReaderRegister < tree::RankedTree < > > ( ); - -static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::RankedTree < > > ( ); -static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, tree::RankedTree < > > ( ); - static auto RankedTreeFromUnrankedTree = registration::CastRegister < tree::RankedTree < >, tree::UnrankedTree < > > ( ); static auto RankedTreeFromPostfixRankedTree = registration::CastRegister < tree::RankedTree < >, tree::PostfixRankedTree < > > ( ); diff --git a/alib2data/src/tree/ranked/RankedTree.h b/alib2data/src/tree/ranked/RankedTree.h index 960f7b331c..f9a09bc1c3 100644 --- a/alib2data/src/tree/ranked/RankedTree.h +++ b/alib2data/src/tree/ranked/RankedTree.h @@ -32,16 +32,12 @@ #include <sstream> #include <core/components.hpp> -#include <sax/FromXMLParserHelper.h> #include <object/UniqueObject.h> #include <common/ranked_symbol.hpp> -#include <alphabet/xml/RankedSymbol.h> #include "../TreeFeatures.h" #include "../TreeBase.h" #include "../TreeException.h" -#include "../common/TreeFromXMLParser.h" -#include "../common/TreeToXMLComposer.h" #include "../common/TreeAuxiliary.h" #include <tree/common/TreeNormalize.h> @@ -207,36 +203,6 @@ public: */ virtual explicit operator std::string ( ) const override; - /** - * \brief The XML tag name of class. - * - * \details Intentionaly a static member function to be safe in the initialisation before the main function starts. - * - * \returns string representing the XML tag name of the class - */ - static const std::string & getXmlTagName() { - static std::string xmlTagName = "RankedTree"; - - return xmlTagName; - } - - /** - * Parsing from a sequence of xml tokens helper. - * - * \params input the iterator to sequence of xml tokens to parse from - * - * \returns the new instance of the tree - */ - static RankedTree parse ( ext::deque < sax::Token >::iterator & input ); - - /** - * Composing to a sequence of xml tokens helper. - * - * \param out the sink for new xml tokens representing the tree - * \param tree the tree to compose - */ - static void compose ( ext::deque < sax::Token > & out, const RankedTree & tree ); - /** * @copydoc object::ObjectBase::inc() */ @@ -349,25 +315,6 @@ RankedTree < SymbolType, RankType >::operator std::string ( ) const { return ss.str ( ); } -template < class SymbolType, class RankType > -RankedTree < SymbolType, RankType > RankedTree < SymbolType, RankType >::parse ( ext::deque < sax::Token >::iterator & input ) { - sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::START_ELEMENT, RankedTree::getXmlTagName() ); - ext::set < common::ranked_symbol < SymbolType, RankType > > rankedAlphabet = TreeFromXMLParser::parseAlphabet < common::ranked_symbol < SymbolType, RankType > > ( input ); - ext::tree < common::ranked_symbol < SymbolType, RankType > > root = TreeFromXMLParser::parseTreeContent < common::ranked_symbol < SymbolType, RankType > > ( input ); - RankedTree < SymbolType, RankType > tree ( std::move ( rankedAlphabet ), std::move ( root ) ); - - sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::END_ELEMENT, RankedTree::getXmlTagName() ); - return tree; -} - -template < class SymbolType, class RankType > -void RankedTree < SymbolType, RankType >::compose ( ext::deque < sax::Token > & out, const RankedTree & tree ) { - out.emplace_back ( RankedTree::getXmlTagName(), sax::Token::TokenType::START_ELEMENT ); - TreeToXMLComposer::composeAlphabet ( out, tree.getAlphabet ( ) ); - TreeToXMLComposer::composeContent ( out, tree.getContent ( ) ); - out.emplace_back ( RankedTree::getXmlTagName(), sax::Token::TokenType::END_ELEMENT ); -} - template < class SymbolType, class RankType > object::ObjectBase* RankedTree < SymbolType, RankType >::inc() && { return new object::UniqueObject(object::Object(std::move(*this)), primitive::Integer(0)); diff --git a/alib2data/src/tree/unranked/PrefixBarTree.cpp b/alib2data/src/tree/unranked/PrefixBarTree.cpp index 19b1c14024..69a0f8f668 100644 --- a/alib2data/src/tree/unranked/PrefixBarTree.cpp +++ b/alib2data/src/tree/unranked/PrefixBarTree.cpp @@ -10,7 +10,6 @@ #include <object/Object.h> #include <registration/ValuePrinterRegistration.hpp> -#include <registration/XmlRegistration.hpp> #include <registration/CastRegistration.hpp> #include <registration/ComponentRegistration.hpp> @@ -20,12 +19,6 @@ static auto components = registration::ComponentRegister < tree::PrefixBarTree < static auto valuePrinter = registration::ValuePrinterRegister < tree::PrefixBarTree < > > ( ); -static auto xmlWrite = registration::XmlWriterRegister < tree::PrefixBarTree < > > ( ); -static auto xmlRead = registration::XmlReaderRegister < tree::PrefixBarTree < > > ( ); - -static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::PrefixBarTree < > > ( ); -static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, tree::PrefixBarTree < > > ( ); - static auto PrefixBarTreeFromUnrankedTree = registration::CastRegister < tree::PrefixBarTree < >, tree::UnrankedTree < > > ( ); static auto LinearStringFromPrefixBarTree = registration::CastRegister < string::LinearString < >, tree::PrefixBarTree < > > ( ); diff --git a/alib2data/src/tree/unranked/PrefixBarTree.h b/alib2data/src/tree/unranked/PrefixBarTree.h index 036981d71f..f1c803cb02 100644 --- a/alib2data/src/tree/unranked/PrefixBarTree.h +++ b/alib2data/src/tree/unranked/PrefixBarTree.h @@ -31,15 +31,12 @@ #include <alib/vector> #include <alib/tree> -#include <sax/FromXMLParserHelper.h> #include <core/components.hpp> #include <object/UniqueObject.h> #include "../TreeFeatures.h" #include "../TreeBase.h" #include "../TreeException.h" -#include "../common/TreeFromXMLParser.h" -#include "../common/TreeToXMLComposer.h" #include "../common/TreeAuxiliary.h" #include <tree/common/TreeNormalize.h> @@ -226,36 +223,6 @@ public: */ virtual explicit operator std::string ( ) const override; - /** - * \brief The XML tag name of class. - * - * \details Intentionaly a static member function to be safe in the initialisation before the main function starts. - * - * \returns string representing the XML tag name of the class - */ - static const std::string & getXmlTagName() { - static std::string xmlTagName = "PrefixBarTree"; - - return xmlTagName; - } - - /** - * Parsing from a sequence of xml tokens helper. - * - * \params input the iterator to sequence of xml tokens to parse from - * - * \returns the new instance of the tree - */ - static PrefixBarTree parse ( ext::deque < sax::Token >::iterator & input ); - - /** - * Composing to a sequence of xml tokens helper. - * - * \param out the sink for new xml tokens representing the tree - * \param tree the tree to compose - */ - static void compose ( ext::deque < sax::Token > & out, const PrefixBarTree & tree ); - /** * @copydoc object::ObjectBase::inc() */ @@ -379,26 +346,6 @@ PrefixBarTree < SymbolType >::operator std::string ( ) const { return std::move ( ss ).str ( ); } -template < class SymbolType > -PrefixBarTree < SymbolType > PrefixBarTree < SymbolType >::parse ( ext::deque < sax::Token >::iterator & input ) { - sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::START_ELEMENT, PrefixBarTree::getXmlTagName() ); - SymbolType bar = TreeFromXMLParser::parseBar < SymbolType > ( input ); - ext::set < SymbolType > unrankedAlphabet = TreeFromXMLParser::parseAlphabet < SymbolType > ( input ); - ext::vector < SymbolType > data = TreeFromXMLParser::parseLinearContent < SymbolType > ( input ); - sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::END_ELEMENT, PrefixBarTree::getXmlTagName() ); - - return PrefixBarTree < SymbolType > ( std::move ( bar ), std::move ( unrankedAlphabet ), std::move ( data ) ); -} - -template < class SymbolType > -void PrefixBarTree < SymbolType >::compose ( ext::deque < sax::Token > & out, const PrefixBarTree & tree ) { - out.emplace_back ( PrefixBarTree::getXmlTagName(), sax::Token::TokenType::START_ELEMENT ); - TreeToXMLComposer::composeBar ( out, tree.getBar ( ) ); - TreeToXMLComposer::composeAlphabet ( out, tree.getAlphabet ( ) ); - TreeToXMLComposer::composeContent ( out, tree.m_Data ); - out.emplace_back ( PrefixBarTree::getXmlTagName(), sax::Token::TokenType::END_ELEMENT ); -} - template < class SymbolType > object::ObjectBase* PrefixBarTree < SymbolType >::inc() && { return new object::UniqueObject(object::Object(std::move(*this)), primitive::Integer(0)); diff --git a/alib2data/src/tree/unranked/UnrankedNonlinearPattern.cpp b/alib2data/src/tree/unranked/UnrankedNonlinearPattern.cpp index 0c70d87e93..d33e21caff 100644 --- a/alib2data/src/tree/unranked/UnrankedNonlinearPattern.cpp +++ b/alib2data/src/tree/unranked/UnrankedNonlinearPattern.cpp @@ -10,7 +10,6 @@ #include <object/Object.h> #include <registration/ValuePrinterRegistration.hpp> -#include <registration/XmlRegistration.hpp> #include <registration/CastRegistration.hpp> #include <registration/ComponentRegistration.hpp> @@ -20,10 +19,4 @@ static auto components = registration::ComponentRegister < tree::UnrankedNonline static auto valuePrinter = registration::ValuePrinterRegister < tree::UnrankedNonlinearPattern < > > ( ); -static auto xmlWrite = registration::XmlWriterRegister < tree::UnrankedNonlinearPattern < > > ( ); -static auto xmlRead = registration::XmlReaderRegister < tree::UnrankedNonlinearPattern < > > ( ); - -static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::UnrankedNonlinearPattern < > > ( ); -static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, tree::UnrankedNonlinearPattern < > > ( ); - } /* namespace */ diff --git a/alib2data/src/tree/unranked/UnrankedNonlinearPattern.h b/alib2data/src/tree/unranked/UnrankedNonlinearPattern.h index ae8d1f2ccf..7321f6db9b 100644 --- a/alib2data/src/tree/unranked/UnrankedNonlinearPattern.h +++ b/alib2data/src/tree/unranked/UnrankedNonlinearPattern.h @@ -32,14 +32,11 @@ #include <sstream> #include <core/components.hpp> -#include <sax/FromXMLParserHelper.h> #include <object/UniqueObject.h> #include "../TreeFeatures.h" #include "../TreeException.h" #include "../TreeBase.h" -#include "../common/TreeFromXMLParser.h" -#include "../common/TreeToXMLComposer.h" #include "../common/TreeAuxiliary.h" #include <tree/common/TreeNormalize.h> @@ -240,36 +237,6 @@ public: */ virtual explicit operator std::string ( ) const override; - /** - * \brief The XML tag name of class. - * - * \details Intentionaly a static member function to be safe in the initialisation before the main function starts. - * - * \returns string representing the XML tag name of the class - */ - static const std::string & getXmlTagName() { - static std::string xmlTagName = "UnrankedNonlinearPattern"; - - return xmlTagName; - } - - /** - * Parsing from a sequence of xml tokens helper. - * - * \params input the iterator to sequence of xml tokens to parse from - * - * \returns the new instance of the pattern - */ - static UnrankedNonlinearPattern parse ( ext::deque < sax::Token >::iterator & input ); - - /** - * Composing to a sequence of xml tokens helper. - * - * \param out the sink for new xml tokens representing the pattern - * \param pattern the pattern to compose - */ - static void compose ( ext::deque < sax::Token > & out, const UnrankedNonlinearPattern & pattern ); - /** * @copydoc object::ObjectBase::inc() */ @@ -371,29 +338,6 @@ UnrankedNonlinearPattern < SymbolType >::operator std::string ( ) const { return ss.str ( ); } -template < class SymbolType > -UnrankedNonlinearPattern < SymbolType > UnrankedNonlinearPattern < SymbolType >::parse ( ext::deque < sax::Token >::iterator & input ) { - sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::START_ELEMENT, UnrankedNonlinearPattern::getXmlTagName() ); - SymbolType subtreeWildcardSymbol = TreeFromXMLParser::parseWildcardSymbol < SymbolType > ( input ); - ext::set < SymbolType > nonlinearVariables = TreeFromXMLParser::parseNonlinearVariables < SymbolType > ( input ); - ext::set < SymbolType > rankedAlphabet = TreeFromXMLParser::parseAlphabet < SymbolType > ( input ); - ext::tree < SymbolType > root = TreeFromXMLParser::parseTreeContent < SymbolType > ( input ); - UnrankedNonlinearPattern < SymbolType > tree ( std::move ( subtreeWildcardSymbol ), std::move ( nonlinearVariables ), std::move ( rankedAlphabet ), std::move ( root ) ); - - sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::END_ELEMENT, UnrankedNonlinearPattern::getXmlTagName() ); - return tree; -} - -template < class SymbolType > -void UnrankedNonlinearPattern < SymbolType >::compose ( ext::deque < sax::Token > & out, const UnrankedNonlinearPattern & pattern ) { - out.emplace_back ( UnrankedNonlinearPattern::getXmlTagName(), sax::Token::TokenType::START_ELEMENT ); - TreeToXMLComposer::composeSubtreeWildcard ( out, pattern.getSubtreeWildcard ( ) ); - TreeToXMLComposer::composeNonlinearVariables ( out, pattern.getNonlinearVariables ( ) ); - TreeToXMLComposer::composeAlphabet ( out, pattern.getAlphabet ( ) ); - TreeToXMLComposer::composeContent ( out, pattern.getContent ( ) ); - out.emplace_back ( UnrankedNonlinearPattern::getXmlTagName(), sax::Token::TokenType::END_ELEMENT ); -} - template < class SymbolType > object::ObjectBase* UnrankedNonlinearPattern < SymbolType >::inc() && { return new object::UniqueObject(object::Object(std::move(*this)), primitive::Integer(0)); diff --git a/alib2data/src/tree/unranked/UnrankedPattern.cpp b/alib2data/src/tree/unranked/UnrankedPattern.cpp index 2ef1e6d7ed..66d60543ee 100644 --- a/alib2data/src/tree/unranked/UnrankedPattern.cpp +++ b/alib2data/src/tree/unranked/UnrankedPattern.cpp @@ -10,7 +10,6 @@ #include <object/Object.h> #include <registration/ValuePrinterRegistration.hpp> -#include <registration/XmlRegistration.hpp> #include <registration/CastRegistration.hpp> #include <registration/ComponentRegistration.hpp> @@ -20,12 +19,6 @@ static auto components = registration::ComponentRegister < tree::UnrankedPattern static auto valuePrinter = registration::ValuePrinterRegister < tree::UnrankedPattern < > > ( ); -static auto xmlWrite = registration::XmlWriterRegister < tree::UnrankedPattern < > > ( ); -static auto xmlRead = registration::XmlReaderRegister < tree::UnrankedPattern < > > ( ); - -static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::UnrankedPattern < > > ( ); -static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, tree::UnrankedPattern < > > ( ); - static auto UnrankedPatternFromRankedPattern = registration::CastRegister < tree::UnrankedPattern < >, tree::RankedPattern < > > ( ); } /* namespace */ diff --git a/alib2data/src/tree/unranked/UnrankedPattern.h b/alib2data/src/tree/unranked/UnrankedPattern.h index 4c2d9fa98b..1fd8290864 100644 --- a/alib2data/src/tree/unranked/UnrankedPattern.h +++ b/alib2data/src/tree/unranked/UnrankedPattern.h @@ -32,14 +32,11 @@ #include <sstream> #include <core/components.hpp> -#include <sax/FromXMLParserHelper.h> #include <object/UniqueObject.h> #include "../TreeFeatures.h" #include "../TreeException.h" #include "../TreeBase.h" -#include "../common/TreeFromXMLParser.h" -#include "../common/TreeToXMLComposer.h" #include "../common/TreeAuxiliary.h" #include <tree/common/TreeNormalize.h> @@ -211,36 +208,6 @@ public: */ virtual explicit operator std::string ( ) const override; - /** - * \brief The XML tag name of class. - * - * \details Intentionaly a static member function to be safe in the initialisation before the main function starts. - * - * \returns string representing the XML tag name of the class - */ - static const std::string & getXmlTagName() { - static std::string xmlTagName = "UnrankedPattern"; - - return xmlTagName; - } - - /** - * Parsing from a sequence of xml tokens helper. - * - * \params input the iterator to sequence of xml tokens to parse from - * - * \returns the new instance of the pattern - */ - static UnrankedPattern parse ( ext::deque < sax::Token >::iterator & input ); - - /** - * Composing to a sequence of xml tokens helper. - * - * \param out the sink for new xml tokens representing the pattern - * \param pattern the pattern to compose - */ - static void compose ( ext::deque < sax::Token > & out, const UnrankedPattern & pattern ); - /** * @copydoc object::ObjectBase::inc() */ @@ -338,27 +305,6 @@ UnrankedPattern < SymbolType >::operator std::string ( ) const { return ss.str ( ); } -template < class SymbolType > -UnrankedPattern < SymbolType > UnrankedPattern < SymbolType >::parse ( ext::deque < sax::Token >::iterator & input ) { - sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::START_ELEMENT, UnrankedPattern::getXmlTagName() ); - SymbolType subtreeWildcardSymbol = TreeFromXMLParser::parseWildcardSymbol < SymbolType > ( input ); - ext::set < SymbolType > rankedAlphabet = TreeFromXMLParser::parseAlphabet < SymbolType > ( input ); - ext::tree < SymbolType > root = TreeFromXMLParser::parseTreeContent < SymbolType > ( input ); - UnrankedPattern < SymbolType > tree ( std::move ( subtreeWildcardSymbol ), std::move ( rankedAlphabet ), std::move ( root ) ); - - sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::END_ELEMENT, UnrankedPattern::getXmlTagName() ); - return tree; -} - -template < class SymbolType > -void UnrankedPattern < SymbolType >::compose ( ext::deque < sax::Token > & out, const UnrankedPattern & pattern ) { - out.emplace_back ( UnrankedPattern::getXmlTagName(), sax::Token::TokenType::START_ELEMENT ); - TreeToXMLComposer::composeSubtreeWildcard ( out, pattern.getSubtreeWildcard ( ) ); - TreeToXMLComposer::composeAlphabet ( out, pattern.getAlphabet ( ) ); - TreeToXMLComposer::composeContent ( out, pattern.getContent ( ) ); - out.emplace_back ( UnrankedPattern::getXmlTagName(), sax::Token::TokenType::END_ELEMENT ); -} - template < class SymbolType > object::ObjectBase* UnrankedPattern < SymbolType >::inc() && { return new object::UniqueObject(object::Object(std::move(*this)), primitive::Integer(0)); diff --git a/alib2data/src/tree/unranked/UnrankedTree.cpp b/alib2data/src/tree/unranked/UnrankedTree.cpp index c54d0ffad9..360bd4f3b0 100644 --- a/alib2data/src/tree/unranked/UnrankedTree.cpp +++ b/alib2data/src/tree/unranked/UnrankedTree.cpp @@ -10,7 +10,6 @@ #include <object/Object.h> #include <registration/ValuePrinterRegistration.hpp> -#include <registration/XmlRegistration.hpp> #include <registration/CastRegistration.hpp> #include <registration/ComponentRegistration.hpp> @@ -20,12 +19,6 @@ static auto components = registration::ComponentRegister < tree::UnrankedTree < static auto valuePrinter = registration::ValuePrinterRegister < tree::UnrankedTree < > > ( ); -static auto xmlWrite = registration::XmlWriterRegister < tree::UnrankedTree < > > ( ); -static auto xmlRead = registration::XmlReaderRegister < tree::UnrankedTree < > > ( ); - -static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::UnrankedTree < > > ( ); -static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, tree::UnrankedTree < > > ( ); - static auto UnrankedTreeFromRankedTree = registration::CastRegister < tree::UnrankedTree < >, tree::RankedTree < > > ( ); } /* namespace */ diff --git a/alib2data/src/tree/unranked/UnrankedTree.h b/alib2data/src/tree/unranked/UnrankedTree.h index 3aef8ffa36..35c77d48d6 100644 --- a/alib2data/src/tree/unranked/UnrankedTree.h +++ b/alib2data/src/tree/unranked/UnrankedTree.h @@ -31,15 +31,12 @@ #include <alib/algorithm> #include <sstream> -#include <sax/FromXMLParserHelper.h> #include <core/components.hpp> #include <object/UniqueObject.h> #include "../TreeFeatures.h" #include "../TreeBase.h" #include "../TreeException.h" -#include "../common/TreeFromXMLParser.h" -#include "../common/TreeToXMLComposer.h" #include "../common/TreeAuxiliary.h" #include <tree/common/TreeNormalize.h> @@ -189,36 +186,6 @@ public: */ virtual explicit operator std::string ( ) const override; - /** - * \brief The XML tag name of class. - * - * \details Intentionaly a static member function to be safe in the initialisation before the main function starts. - * - * \returns string representing the XML tag name of the class - */ - static const std::string & getXmlTagName() { - static std::string xmlTagName = "UnrankedTree"; - - return xmlTagName; - } - - /** - * Parsing from a sequence of xml tokens helper. - * - * \params input the iterator to sequence of xml tokens to parse from - * - * \returns the new instance of the pattern - */ - static UnrankedTree parse ( ext::deque < sax::Token >::iterator & input ); - - /** - * Composing to a sequence of xml tokens helper. - * - * \param out the sink for new xml tokens representing the pattern - * \param pattern the pattern to compose - */ - static void compose ( ext::deque < sax::Token > & out, const UnrankedTree & tree ); - /** * @copydoc object::ObjectBase::inc() */ @@ -316,25 +283,6 @@ UnrankedTree < SymbolType >::operator std::string ( ) const { return ss.str ( ); } -template < class SymbolType > -UnrankedTree < SymbolType > UnrankedTree < SymbolType >::parse ( ext::deque < sax::Token >::iterator & input ) { - sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::START_ELEMENT, UnrankedTree::getXmlTagName() ); - ext::set < SymbolType > rankedAlphabet = TreeFromXMLParser::parseAlphabet < SymbolType > ( input ); - ext::tree < SymbolType > root = TreeFromXMLParser::parseTreeContent < SymbolType > ( input ); - UnrankedTree < SymbolType > tree ( std::move ( rankedAlphabet ), std::move ( root ) ); - - sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::END_ELEMENT, UnrankedTree::getXmlTagName() ); - return tree; -} - -template < class SymbolType > -void UnrankedTree < SymbolType >::compose ( ext::deque < sax::Token > & out, const UnrankedTree & tree ) { - out.emplace_back ( UnrankedTree::getXmlTagName(), sax::Token::TokenType::START_ELEMENT ); - TreeToXMLComposer::composeAlphabet ( out, tree.getAlphabet ( ) ); - TreeToXMLComposer::composeContent ( out, tree.getContent ( ) ); - out.emplace_back ( UnrankedTree::getXmlTagName(), sax::Token::TokenType::END_ELEMENT ); -} - template < class SymbolType > object::ObjectBase* UnrankedTree < SymbolType >::inc() && { return new object::UniqueObject(object::Object(std::move(*this)), primitive::Integer(0)); diff --git a/alib2data/src/tree/common/TreeFromXMLParser.h b/alib2data/src/tree/xml/common/TreeFromXMLParser.h similarity index 100% rename from alib2data/src/tree/common/TreeFromXMLParser.h rename to alib2data/src/tree/xml/common/TreeFromXMLParser.h diff --git a/alib2data/src/tree/common/TreeToXMLComposer.h b/alib2data/src/tree/xml/common/TreeToXMLComposer.h similarity index 100% rename from alib2data/src/tree/common/TreeToXMLComposer.h rename to alib2data/src/tree/xml/common/TreeToXMLComposer.h diff --git a/alib2data/src/tree/xml/ranked/PostfixRankedTree.cpp b/alib2data/src/tree/xml/ranked/PostfixRankedTree.cpp new file mode 100644 index 0000000000..36f09c7a28 --- /dev/null +++ b/alib2data/src/tree/xml/ranked/PostfixRankedTree.cpp @@ -0,0 +1,22 @@ +/* + * PostfixRankedTree.cpp + * + * Created on: May 4, 2017 + * Author: Aleksandr Shatrovskii + */ + +#include "PostfixRankedTree.h" +#include <tree/Tree.h> +#include <object/Object.h> + +#include <registration/XmlRegistration.hpp> + +namespace { + +static auto xmlWrite = registration::XmlWriterRegister < tree::PostfixRankedTree < > > ( ); +static auto xmlRead = registration::XmlReaderRegister < tree::PostfixRankedTree < > > ( ); + +static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::PostfixRankedTree < > > ( ); +static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, tree::PostfixRankedTree < > > ( ); + +} /* namespace */ diff --git a/alib2data/src/tree/xml/ranked/PostfixRankedTree.h b/alib2data/src/tree/xml/ranked/PostfixRankedTree.h new file mode 100644 index 0000000000..a3cded10b4 --- /dev/null +++ b/alib2data/src/tree/xml/ranked/PostfixRankedTree.h @@ -0,0 +1,88 @@ +/* + * PostfixRankedTree.h + * + * This file is part of Algorithms library toolkit. + * Copyright (C) 2017 Jan Travnicek (jan.travnicek@fit.cvut.cz) + + * Algorithms library toolkit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + + * Algorithms library toolkit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with Algorithms library toolkit. If not, see <http://www.gnu.org/licenses/>. + * + * Created on: May 4, 2017 + * Author: Aleksandr Shatrovskii + */ + +#ifndef _XML_POSTFIX_RANKED_TREE_H_ +#define _XML_POSTFIX_RANKED_TREE_H_ + +#include <tree/ranked/PostfixRankedTree.h> +#include <sax/FromXMLParserHelper.h> +#include <alphabet/xml/RankedSymbol.h> +#include "../common/TreeFromXMLParser.h" +#include "../common/TreeToXMLComposer.h" + +namespace core { + +template < class SymbolType, class RankType > +struct xmlApi < tree::PostfixRankedTree < SymbolType, RankType > > { + /** + * \brief The XML tag name of class. + * + * \details Intentionaly a static member function to be safe in the initialisation before the main function starts. + * + * \returns string representing the XML tag name of the class + */ + static const std::string & xmlTagName ( ) { + static std::string xmlTagName = "PostfixRankedTree"; + + return xmlTagName; + } + + /** + * Parsing from a sequence of xml tokens helper. + * + * \params input the iterator to sequence of xml tokens to parse from + * + * \returns the new instance of the tree + */ + static tree::PostfixRankedTree < SymbolType, RankType > parse ( ext::deque < sax::Token >::iterator & input ); + + /** + * Composing to a sequence of xml tokens helper. + * + * \param out the sink for new xml tokens representing the tree + * \param tree the tree to compose + */ + static void compose ( ext::deque < sax::Token > & out, const tree::PostfixRankedTree < SymbolType, RankType > & tree ); +}; + +template < class SymbolType, class RankType > +tree::PostfixRankedTree < SymbolType, RankType > xmlApi < tree::PostfixRankedTree < SymbolType, RankType > >::parse ( ext::deque < sax::Token >::iterator & input ) { + sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::START_ELEMENT, xmlTagName ( ) ); + ext::set < common::ranked_symbol < SymbolType, RankType > > rankedAlphabet = tree::TreeFromXMLParser::parseAlphabet < common::ranked_symbol < SymbolType, RankType > > ( input ); + ext::vector < common::ranked_symbol < SymbolType, RankType > > data = tree::TreeFromXMLParser::parseLinearContent < common::ranked_symbol < SymbolType, RankType > > ( input ); + sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::END_ELEMENT, xmlTagName ( ) ); + + return tree::PostfixRankedTree < SymbolType, RankType > ( std::move ( rankedAlphabet ), std::move ( data ) ); +} + +template < class SymbolType, class RankType > +void xmlApi < tree::PostfixRankedTree < SymbolType, RankType > >::compose ( ext::deque < sax::Token > & out, const tree::PostfixRankedTree < SymbolType, RankType > & tree ) { + out.emplace_back ( xmlTagName ( ), sax::Token::TokenType::START_ELEMENT ); + tree::TreeToXMLComposer::composeAlphabet ( out, tree.getAlphabet ( ) ); + tree::TreeToXMLComposer::composeContent ( out, tree.getContent ( ) ); + out.emplace_back ( xmlTagName ( ), sax::Token::TokenType::END_ELEMENT ); +} + +} /* namespace core */ + +#endif /* _XML_POSTFIX_RANKED_TREE_H_ */ diff --git a/alib2data/src/tree/xml/ranked/PrefixRankedBarNonlinearPattern.cpp b/alib2data/src/tree/xml/ranked/PrefixRankedBarNonlinearPattern.cpp new file mode 100644 index 0000000000..5c0c40ae29 --- /dev/null +++ b/alib2data/src/tree/xml/ranked/PrefixRankedBarNonlinearPattern.cpp @@ -0,0 +1,22 @@ +/* + * PrefixRankedBarNonlinearPattern.cpp + * + * Created on: Jul 20, 2016 + * Author: Jan Travnicek + */ + +#include "PrefixRankedBarNonlinearPattern.h" +#include <tree/Tree.h> +#include <object/Object.h> + +#include <registration/XmlRegistration.hpp> + +namespace { + +static auto xmlWrite = registration::XmlWriterRegister < tree::PrefixRankedBarNonlinearPattern < > > ( ); +static auto xmlRead = registration::XmlReaderRegister < tree::PrefixRankedBarNonlinearPattern < > > ( ); + +static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::PrefixRankedBarNonlinearPattern < > > ( ); +static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, tree::PrefixRankedBarNonlinearPattern < > > ( ); + +} /* namespace */ diff --git a/alib2data/src/tree/xml/ranked/PrefixRankedBarNonlinearPattern.h b/alib2data/src/tree/xml/ranked/PrefixRankedBarNonlinearPattern.h new file mode 100644 index 0000000000..bd5bcdf5c1 --- /dev/null +++ b/alib2data/src/tree/xml/ranked/PrefixRankedBarNonlinearPattern.h @@ -0,0 +1,96 @@ +/* + * PrefixRankedBarNonlinearPattern.h + * + * This file is part of Algorithms library toolkit. + * Copyright (C) 2017 Jan Travnicek (jan.travnicek@fit.cvut.cz) + + * Algorithms library toolkit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + + * Algorithms library toolkit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with Algorithms library toolkit. If not, see <http://www.gnu.org/licenses/>. + * + * Created on: Jul 20, 2016 + * Author: Jan Travnicek + */ + +#ifndef _XML_PREFIX_RANKED_BAR_NONLINEAR_PATTERN_H_ +#define _XML_PREFIX_RANKED_BAR_NONLINEAR_PATTERN_H_ + +#include <tree/ranked/PrefixRankedBarNonlinearPattern.h> +#include <sax/FromXMLParserHelper.h> +#include <alphabet/xml/RankedSymbol.h> +#include "../common/TreeFromXMLParser.h" +#include "../common/TreeToXMLComposer.h" + +namespace core { + +template < class SymbolType, class RankType > +struct xmlApi < tree::PrefixRankedBarNonlinearPattern < SymbolType, RankType > > { + /** + * \brief The XML tag name of class. + * + * \details Intentionaly a static member function to be safe in the initialisation before the main function starts. + * + * \returns string representing the XML tag name of the class + */ + static const std::string & xmlTagName ( ) { + static std::string xmlTagName = "PrefixRankedBarNonlinearPattern"; + + return xmlTagName; + } + + /** + * Parsing from a sequence of xml tokens helper. + * + * \params input the iterator to sequence of xml tokens to parse from + * + * \returns the new instance of the pattern + */ + static tree::PrefixRankedBarNonlinearPattern < SymbolType, RankType > parse ( ext::deque < sax::Token >::iterator & input ); + + /** + * Composing to a sequence of xml tokens helper. + * + * \param out the sink for new xml tokens representing the pattern + * \param pattern the pattern to compose + */ + static void compose ( ext::deque < sax::Token > & out, const tree::PrefixRankedBarNonlinearPattern < SymbolType, RankType > & pattern ); +}; + +template < class SymbolType, class RankType > +tree::PrefixRankedBarNonlinearPattern < SymbolType, RankType > xmlApi < tree::PrefixRankedBarNonlinearPattern < SymbolType, RankType > >::parse ( ext::deque < sax::Token >::iterator & input ) { + sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::START_ELEMENT, xmlTagName ( ) ); + ext::set < common::ranked_symbol < SymbolType, RankType > > bars = tree::TreeFromXMLParser::parseBars < common::ranked_symbol < SymbolType, RankType > > ( input ); + common::ranked_symbol < SymbolType, RankType > variablesBarSymbol = tree::TreeFromXMLParser::parseVariablesBar < common::ranked_symbol < SymbolType, RankType > > ( input ); + common::ranked_symbol < SymbolType, RankType > subtreeWildcardSymbol = tree::TreeFromXMLParser::parseWildcardSymbol < common::ranked_symbol < SymbolType, RankType > > ( input ); + ext::set < common::ranked_symbol < SymbolType, RankType > > nonlinearVariables = tree::TreeFromXMLParser::parseNonlinearVariables < common::ranked_symbol < SymbolType, RankType > > ( input ); + ext::set < common::ranked_symbol < SymbolType, RankType > > rankedAlphabet = tree::TreeFromXMLParser::parseAlphabet < common::ranked_symbol < SymbolType, RankType > > ( input ); + ext::vector < common::ranked_symbol < SymbolType, RankType > > data = tree::TreeFromXMLParser::parseLinearContent < common::ranked_symbol < SymbolType, RankType > > ( input ); + sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::END_ELEMENT, xmlTagName ( ) ); + + return tree::PrefixRankedBarNonlinearPattern < SymbolType, RankType > ( std::move ( bars ), std::move ( variablesBarSymbol ), std::move ( subtreeWildcardSymbol ), std::move ( nonlinearVariables ), std::move ( rankedAlphabet ), std::move ( data ) ); +} + +template < class SymbolType, class RankType > +void xmlApi < tree::PrefixRankedBarNonlinearPattern < SymbolType, RankType > >::compose ( ext::deque < sax::Token > & out, const tree::PrefixRankedBarNonlinearPattern < SymbolType, RankType > & pattern ) { + out.emplace_back ( xmlTagName ( ), sax::Token::TokenType::START_ELEMENT ); + tree::TreeToXMLComposer::composeBars ( out, pattern.getBars ( ) ); + tree::TreeToXMLComposer::composeVariablesBar ( out, pattern.getVariablesBar ( ) ); + tree::TreeToXMLComposer::composeSubtreeWildcard ( out, pattern.getSubtreeWildcard ( ) ); + tree::TreeToXMLComposer::composeNonlinearVariables ( out, pattern.getNonlinearVariables ( ) ); + tree::TreeToXMLComposer::composeAlphabet ( out, pattern.getAlphabet ( ) ); + tree::TreeToXMLComposer::composeContent ( out, pattern.getContent ( ) ); + out.emplace_back ( xmlTagName ( ), sax::Token::TokenType::END_ELEMENT ); +} + +} /* namespace core */ + +#endif /* _XML_PREFIX_RANKED_BAR_NONLINEAR_PATTERN_H_ */ diff --git a/alib2data/src/tree/xml/ranked/PrefixRankedBarPattern.cpp b/alib2data/src/tree/xml/ranked/PrefixRankedBarPattern.cpp new file mode 100644 index 0000000000..360776d1fa --- /dev/null +++ b/alib2data/src/tree/xml/ranked/PrefixRankedBarPattern.cpp @@ -0,0 +1,22 @@ +/* + * PrefixRankedBarPattern.cpp + * + * Created on: Nov 23, 2013 + * Author: Jan Travnicek + */ + +#include "PrefixRankedBarPattern.h" +#include <tree/Tree.h> +#include <object/Object.h> + +#include <registration/XmlRegistration.hpp> + +namespace { + +static auto xmlWrite = registration::XmlWriterRegister < tree::PrefixRankedBarPattern < > > ( ); +static auto xmlRead = registration::XmlReaderRegister < tree::PrefixRankedBarPattern < > > ( ); + +static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::PrefixRankedBarPattern < > > ( ); +static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, tree::PrefixRankedBarPattern < > > ( ); + +} /* namespace */ diff --git a/alib2data/src/tree/xml/ranked/PrefixRankedBarPattern.h b/alib2data/src/tree/xml/ranked/PrefixRankedBarPattern.h new file mode 100644 index 0000000000..5fd5ccaae6 --- /dev/null +++ b/alib2data/src/tree/xml/ranked/PrefixRankedBarPattern.h @@ -0,0 +1,94 @@ +/* + * PrefixRankedBarPattern.h + * + * This file is part of Algorithms library toolkit. + * Copyright (C) 2017 Jan Travnicek (jan.travnicek@fit.cvut.cz) + + * Algorithms library toolkit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + + * Algorithms library toolkit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with Algorithms library toolkit. If not, see <http://www.gnu.org/licenses/>. + * + * Created on: Nov 23, 2013 + * Author: Jan Travnicek + */ + +#ifndef _XML_PREFIX_RANKED_BAR_PATTERN_H_ +#define _XML_PREFIX_RANKED_BAR_PATTERN_H_ + +#include <tree/ranked/PrefixRankedBarPattern.h> +#include <sax/FromXMLParserHelper.h> +#include <alphabet/xml/RankedSymbol.h> +#include "../common/TreeFromXMLParser.h" +#include "../common/TreeToXMLComposer.h" + +namespace core { + +template < class SymbolType, class RankType > +struct xmlApi < tree::PrefixRankedBarPattern < SymbolType, RankType > > { + /** + * \brief The XML tag name of class. + * + * \details Intentionaly a static member function to be safe in the initialisation before the main function starts. + * + * \returns string representing the XML tag name of the class + */ + static const std::string & xmlTagName() { + static std::string xmlTagName = "PrefixRankedBarPattern"; + + return xmlTagName; + } + + /** + * Parsing from a sequence of xml tokens helper. + * + * \params input the iterator to sequence of xml tokens to parse from + * + * \returns the new instance of the pattern + */ + static tree::PrefixRankedBarPattern < SymbolType, RankType > parse ( ext::deque < sax::Token >::iterator & input ); + + /** + * Composing to a sequence of xml tokens helper. + * + * \param out the sink for new xml tokens representing the pattern + * \param pattern the pattern to compose + */ + static void compose ( ext::deque < sax::Token > & out, const tree::PrefixRankedBarPattern < SymbolType, RankType > & pattern ); +}; + +template < class SymbolType, class RankType > +tree::PrefixRankedBarPattern < SymbolType, RankType > xmlApi < tree::PrefixRankedBarPattern < SymbolType, RankType > >::parse ( ext::deque < sax::Token >::iterator & input ) { + sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::START_ELEMENT, xmlTagName ( ) ); + ext::set < common::ranked_symbol < SymbolType, RankType > > bars = tree::TreeFromXMLParser::parseBars < common::ranked_symbol < SymbolType, RankType > > ( input ); + common::ranked_symbol < SymbolType, RankType > variablesBarSymbol = tree::TreeFromXMLParser::parseVariablesBar < common::ranked_symbol < SymbolType, RankType > > ( input ); + common::ranked_symbol < SymbolType, RankType > subtreeWildcardSymbol = tree::TreeFromXMLParser::parseWildcardSymbol < common::ranked_symbol < SymbolType, RankType > > ( input ); + ext::set < common::ranked_symbol < SymbolType, RankType > > rankedAlphabet = tree::TreeFromXMLParser::parseAlphabet < common::ranked_symbol < SymbolType, RankType > > ( input ); + ext::vector < common::ranked_symbol < SymbolType, RankType > > data = tree::TreeFromXMLParser::parseLinearContent < common::ranked_symbol < SymbolType, RankType > > ( input ); + sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::END_ELEMENT, xmlTagName ( ) ); + + return tree::PrefixRankedBarPattern < SymbolType, RankType > ( std::move ( bars ), std::move ( variablesBarSymbol ), std::move ( subtreeWildcardSymbol ), std::move ( rankedAlphabet ), std::move ( data ) ); +} + +template < class SymbolType, class RankType > +void xmlApi < tree::PrefixRankedBarPattern < SymbolType, RankType > >::compose ( ext::deque < sax::Token > & out, const tree::PrefixRankedBarPattern < SymbolType, RankType > & pattern ) { + out.emplace_back ( xmlTagName ( ), sax::Token::TokenType::START_ELEMENT ); + tree::TreeToXMLComposer::composeBars ( out, pattern.getBars() ); + tree::TreeToXMLComposer::composeVariablesBar ( out, pattern.getVariablesBar() ); + tree::TreeToXMLComposer::composeSubtreeWildcard ( out, pattern.getSubtreeWildcard() ); + tree::TreeToXMLComposer::composeAlphabet ( out, pattern.getAlphabet() ); + tree::TreeToXMLComposer::composeContent ( out, pattern.getContent ( ) ); + out.emplace_back ( xmlTagName ( ), sax::Token::TokenType::END_ELEMENT ); +} + +} /* namespace core */ + +#endif /* _XML_PREFIX_RANKED_BAR_PATTERN_H_ */ diff --git a/alib2data/src/tree/xml/ranked/PrefixRankedBarTree.cpp b/alib2data/src/tree/xml/ranked/PrefixRankedBarTree.cpp new file mode 100644 index 0000000000..9b57599975 --- /dev/null +++ b/alib2data/src/tree/xml/ranked/PrefixRankedBarTree.cpp @@ -0,0 +1,22 @@ +/* + * PrefixRankedBarTree.cpp + * + * Created on: Nov 23, 2013 + * Author: Jan Travnicek + */ + +#include "PrefixRankedBarTree.h" +#include <tree/Tree.h> +#include <object/Object.h> + +#include <registration/XmlRegistration.hpp> + +namespace { + +static auto xmlWrite = registration::XmlWriterRegister < tree::PrefixRankedBarTree < > > ( ); +static auto xmlRead = registration::XmlReaderRegister < tree::PrefixRankedBarTree < > > ( ); + +static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::PrefixRankedBarTree < > > ( ); +static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, tree::PrefixRankedBarTree < > > ( ); + +} /* namespace */ diff --git a/alib2data/src/tree/xml/ranked/PrefixRankedBarTree.h b/alib2data/src/tree/xml/ranked/PrefixRankedBarTree.h new file mode 100644 index 0000000000..1a0372983b --- /dev/null +++ b/alib2data/src/tree/xml/ranked/PrefixRankedBarTree.h @@ -0,0 +1,90 @@ +/* + * PrefixRankedBarTree.h + * + * This file is part of Algorithms library toolkit. + * Copyright (C) 2017 Jan Travnicek (jan.travnicek@fit.cvut.cz) + + * Algorithms library toolkit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + + * Algorithms library toolkit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with Algorithms library toolkit. If not, see <http://www.gnu.org/licenses/>. + * + * Created on: Nov 23, 2013 + * Author: Jan Travnicek + */ + +#ifndef _XML_PREFIX_RANKED_BAR_TREE_H_ +#define _XML_PREFIX_RANKED_BAR_TREE_H_ + +#include <tree/ranked/PrefixRankedBarTree.h> +#include <sax/FromXMLParserHelper.h> +#include <alphabet/xml/RankedSymbol.h> +#include "../common/TreeFromXMLParser.h" +#include "../common/TreeToXMLComposer.h" + +namespace core { + +template < class SymbolType, class RankType > +struct xmlApi < tree::PrefixRankedBarTree < SymbolType, RankType > > { + /** + * \brief The XML tag name of class. + * + * \details Intentionaly a static member function to be safe in the initialisation before the main function starts. + * + * \returns string representing the XML tag name of the class + */ + static const std::string & xmlTagName() { + static std::string xmlTagName = "PrefixRankedBarTree"; + + return xmlTagName; + } + + /** + * Parsing from a sequence of xml tokens helper. + * + * \params input the iterator to sequence of xml tokens to parse from + * + * \returns the new instance of the tree + */ + static tree::PrefixRankedBarTree < SymbolType, RankType > parse ( ext::deque < sax::Token >::iterator & input ); + + /** + * Composing to a sequence of xml tokens helper. + * + * \param out the sink for new xml tokens representing the tree + * \param tree the tree to compose + */ + static void compose ( ext::deque < sax::Token > & out, const tree::PrefixRankedBarTree < SymbolType, RankType > & tree ); +}; + +template < class SymbolType, class RankType > +tree::PrefixRankedBarTree < SymbolType, RankType > xmlApi < tree::PrefixRankedBarTree < SymbolType, RankType > >::parse ( ext::deque < sax::Token >::iterator & input ) { + sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::START_ELEMENT, xmlTagName ( ) ); + ext::set < common::ranked_symbol < SymbolType, RankType > > bars = tree::TreeFromXMLParser::parseBars < common::ranked_symbol < SymbolType, RankType > > ( input ); + ext::set < common::ranked_symbol < SymbolType, RankType > > rankedAlphabet = tree::TreeFromXMLParser::parseAlphabet < common::ranked_symbol < SymbolType, RankType > > ( input ); + ext::vector < common::ranked_symbol < SymbolType, RankType > > data = tree::TreeFromXMLParser::parseLinearContent < common::ranked_symbol < SymbolType, RankType > > ( input ); + sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::END_ELEMENT, xmlTagName ( ) ); + + return tree::PrefixRankedBarTree < SymbolType, RankType > ( std::move ( bars ), std::move ( rankedAlphabet ), std::move ( data ) ); +} + +template < class SymbolType, class RankType > +void xmlApi < tree::PrefixRankedBarTree < SymbolType, RankType > >::compose ( ext::deque < sax::Token > & out, const tree::PrefixRankedBarTree < SymbolType, RankType > & tree ) { + out.emplace_back ( xmlTagName ( ), sax::Token::TokenType::START_ELEMENT ); + tree::TreeToXMLComposer::composeBars ( out, tree.getBars() ); + tree::TreeToXMLComposer::composeAlphabet ( out, tree.getAlphabet() ); + tree::TreeToXMLComposer::composeContent ( out, tree.getContent ( ) ); + out.emplace_back ( xmlTagName ( ), sax::Token::TokenType::END_ELEMENT ); +} + +} /* namespace core */ + +#endif /* _XML_PREFIX_RANKED_BAR_TREE_H_ */ diff --git a/alib2data/src/tree/xml/ranked/PrefixRankedNonlinearPattern.cpp b/alib2data/src/tree/xml/ranked/PrefixRankedNonlinearPattern.cpp new file mode 100644 index 0000000000..cc8d3ea9a0 --- /dev/null +++ b/alib2data/src/tree/xml/ranked/PrefixRankedNonlinearPattern.cpp @@ -0,0 +1,22 @@ +/* + * PrefixRankedNonlinearPattern.cpp + * + * Created on: Jul 20, 2016 + * Author: Jan Travnicek + */ + +#include "PrefixRankedNonlinearPattern.h" +#include <tree/Tree.h> +#include <object/Object.h> + +#include <registration/XmlRegistration.hpp> + +namespace { + +static auto xmlWrite = registration::XmlWriterRegister < tree::PrefixRankedNonlinearPattern < > > ( ); +static auto xmlRead = registration::XmlReaderRegister < tree::PrefixRankedNonlinearPattern < > > ( ); + +static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::PrefixRankedNonlinearPattern < > > ( ); +static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, tree::PrefixRankedNonlinearPattern < > > ( ); + +} /* namespace */ diff --git a/alib2data/src/tree/xml/ranked/PrefixRankedNonlinearPattern.h b/alib2data/src/tree/xml/ranked/PrefixRankedNonlinearPattern.h new file mode 100644 index 0000000000..8a311ed974 --- /dev/null +++ b/alib2data/src/tree/xml/ranked/PrefixRankedNonlinearPattern.h @@ -0,0 +1,92 @@ +/* + * PrefixRankedNonlinearPattern.h + * + * This file is part of Algorithms library toolkit. + * Copyright (C) 2017 Jan Travnicek (jan.travnicek@fit.cvut.cz) + + * Algorithms library toolkit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + + * Algorithms library toolkit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with Algorithms library toolkit. If not, see <http://www.gnu.org/licenses/>. + * + * Created on: Jul 20, 2016 + * Author: Jan Travnicek + */ + +#ifndef _XML_PREFIX_RANKED_NONLINEAR_PATTERN_H_ +#define _XML_PREFIX_RANKED_NONLINEAR_PATTERN_H_ + +#include <tree/ranked/PrefixRankedNonlinearPattern.h> +#include <sax/FromXMLParserHelper.h> +#include <alphabet/xml/RankedSymbol.h> +#include "../common/TreeFromXMLParser.h" +#include "../common/TreeToXMLComposer.h" + +namespace core { + +template < class SymbolType, class RankType > +struct xmlApi < tree::PrefixRankedNonlinearPattern < SymbolType, RankType > > { + /** + * \brief The XML tag name of class. + * + * \details Intentionaly a static member function to be safe in the initialisation before the main function starts. + * + * \returns string representing the XML tag name of the class + */ + static const std::string & xmlTagName ( ) { + static std::string xmlTagName = "PrefixRankedNonlinearPattern"; + + return xmlTagName; + } + + /** + * Parsing from a sequence of xml tokens helper. + * + * \params input the iterator to sequence of xml tokens to parse from + * + * \returns the new instance of the pattern + */ + static tree::PrefixRankedNonlinearPattern < SymbolType, RankType > parse ( ext::deque < sax::Token >::iterator & input ); + + /** + * Composing to a sequence of xml tokens helper. + * + * \param out the sink for new xml tokens representing the pattern + * \param pattern the pattern to compose + */ + static void compose ( ext::deque < sax::Token > & out, const tree::PrefixRankedNonlinearPattern < SymbolType, RankType > & pattern ); +}; + +template < class SymbolType, class RankType > +tree::PrefixRankedNonlinearPattern < SymbolType, RankType > xmlApi < tree::PrefixRankedNonlinearPattern < SymbolType, RankType > >::parse ( ext::deque < sax::Token >::iterator & input ) { + sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::START_ELEMENT, xmlTagName ( ) ); + common::ranked_symbol < SymbolType, RankType > subtreeWildcardSymbol = tree::TreeFromXMLParser::parseWildcardSymbol < common::ranked_symbol < SymbolType, RankType > > ( input ); + ext::set < common::ranked_symbol < SymbolType, RankType > > nonlinearVariables = tree::TreeFromXMLParser::parseNonlinearVariables < common::ranked_symbol < SymbolType, RankType > > ( input ); + ext::set < common::ranked_symbol < SymbolType, RankType > > rankedAlphabet = tree::TreeFromXMLParser::parseAlphabet < common::ranked_symbol < SymbolType, RankType > > ( input ); + ext::vector < common::ranked_symbol < SymbolType, RankType > > data = tree::TreeFromXMLParser::parseLinearContent < common::ranked_symbol < SymbolType, RankType > > ( input ); + sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::END_ELEMENT, xmlTagName ( ) ); + + return tree::PrefixRankedNonlinearPattern < SymbolType, RankType > ( std::move ( subtreeWildcardSymbol ), std::move ( nonlinearVariables ), std::move ( rankedAlphabet ), std::move ( data ) ); +} + +template < class SymbolType, class RankType > +void xmlApi < tree::PrefixRankedNonlinearPattern < SymbolType, RankType > >::compose ( ext::deque < sax::Token > & out, const tree::PrefixRankedNonlinearPattern < SymbolType, RankType > & pattern ) { + out.emplace_back ( xmlTagName ( ), sax::Token::TokenType::START_ELEMENT ); + tree::TreeToXMLComposer::composeSubtreeWildcard ( out, pattern.getSubtreeWildcard ( ) ); + tree::TreeToXMLComposer::composeNonlinearVariables ( out, pattern.getNonlinearVariables ( ) ); + tree::TreeToXMLComposer::composeAlphabet ( out, pattern.getAlphabet ( ) ); + tree::TreeToXMLComposer::composeContent ( out, pattern.getContent ( ) ); + out.emplace_back ( xmlTagName ( ), sax::Token::TokenType::END_ELEMENT ); +} + +} /* namespace core */ + +#endif /* _XML_PREFIX_RANKED_NONLINEAR_PATTERN_H_ */ diff --git a/alib2data/src/tree/xml/ranked/PrefixRankedPattern.cpp b/alib2data/src/tree/xml/ranked/PrefixRankedPattern.cpp new file mode 100644 index 0000000000..71b582d100 --- /dev/null +++ b/alib2data/src/tree/xml/ranked/PrefixRankedPattern.cpp @@ -0,0 +1,22 @@ +/* + * PrefixRankedPattern.cpp + * + * Created on: Nov 23, 2013 + * Author: Jan Travnicek + */ + +#include "PrefixRankedPattern.h" +#include <tree/Tree.h> +#include <object/Object.h> + +#include <registration/XmlRegistration.hpp> + +namespace { + +static auto xmlWrite = registration::XmlWriterRegister < tree::PrefixRankedPattern < > > ( ); +static auto xmlRead = registration::XmlReaderRegister < tree::PrefixRankedPattern < > > ( ); + +static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::PrefixRankedPattern < > > ( ); +static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, tree::PrefixRankedPattern < > > ( ); + +} /* namespace */ diff --git a/alib2data/src/tree/xml/ranked/PrefixRankedPattern.h b/alib2data/src/tree/xml/ranked/PrefixRankedPattern.h new file mode 100644 index 0000000000..8e0489c839 --- /dev/null +++ b/alib2data/src/tree/xml/ranked/PrefixRankedPattern.h @@ -0,0 +1,90 @@ +/* + * PrefixRankedPattern.h + * + * This file is part of Algorithms library toolkit. + * Copyright (C) 2017 Jan Travnicek (jan.travnicek@fit.cvut.cz) + + * Algorithms library toolkit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + + * Algorithms library toolkit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with Algorithms library toolkit. If not, see <http://www.gnu.org/licenses/>. + * + * Created on: Nov 23, 2013 + * Author: Jan Travnicek + */ + +#ifndef _XML_PREFIX_RANKED_PATTERN_H_ +#define _XML_PREFIX_RANKED_PATTERN_H_ + +#include <tree/ranked/PrefixRankedPattern.h> +#include <sax/FromXMLParserHelper.h> +#include <alphabet/xml/RankedSymbol.h> +#include "../common/TreeFromXMLParser.h" +#include "../common/TreeToXMLComposer.h" + +namespace core { + +template < class SymbolType, class RankType > +struct xmlApi < tree::PrefixRankedPattern < SymbolType, RankType > > { + /** + * \brief The XML tag name of class. + * + * \details Intentionaly a static member function to be safe in the initialisation before the main function starts. + * + * \returns string representing the XML tag name of the class + */ + static const std::string & xmlTagName() { + static std::string xmlTagName = "PrefixRankedPattern"; + + return xmlTagName; + } + + /** + * Parsing from a sequence of xml tokens helper. + * + * \params input the iterator to sequence of xml tokens to parse from + * + * \returns the new instance of the pattern + */ + static tree::PrefixRankedPattern < SymbolType, RankType > parse ( ext::deque < sax::Token >::iterator & input ); + + /** + * Composing to a sequence of xml tokens helper. + * + * \param out the sink for new xml tokens representing the pattern + * \param pattern the pattern to compose + */ + static void compose ( ext::deque < sax::Token > & out, const tree::PrefixRankedPattern < SymbolType, RankType > & pattern ); +}; + +template < class SymbolType, class RankType > +tree::PrefixRankedPattern < SymbolType, RankType > xmlApi < tree::PrefixRankedPattern < SymbolType, RankType > >::parse ( ext::deque < sax::Token >::iterator & input ) { + sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::START_ELEMENT, xmlTagName ( ) ); + common::ranked_symbol < SymbolType, RankType > subtreeWildcardSymbol = tree::TreeFromXMLParser::parseWildcardSymbol < common::ranked_symbol < SymbolType, RankType > > ( input ); + ext::set < common::ranked_symbol < SymbolType, RankType > > rankedAlphabet = tree::TreeFromXMLParser::parseAlphabet < common::ranked_symbol < SymbolType, RankType > > ( input ); + ext::vector < common::ranked_symbol < SymbolType, RankType > > data = tree::TreeFromXMLParser::parseLinearContent < common::ranked_symbol < SymbolType, RankType > > ( input ); + sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::END_ELEMENT, xmlTagName ( ) ); + + return tree::PrefixRankedPattern < SymbolType, RankType > ( std::move ( subtreeWildcardSymbol ), std::move ( rankedAlphabet ), std::move ( data ) ); +} + +template < class SymbolType, class RankType > +void xmlApi < tree::PrefixRankedPattern < SymbolType, RankType > >::compose ( ext::deque < sax::Token > & out, const tree::PrefixRankedPattern < SymbolType, RankType > & pattern ) { + out.emplace_back ( xmlTagName ( ), sax::Token::TokenType::START_ELEMENT ); + tree::TreeToXMLComposer::composeSubtreeWildcard ( out, pattern.getSubtreeWildcard() ); + tree::TreeToXMLComposer::composeAlphabet ( out, pattern.getAlphabet() ); + tree::TreeToXMLComposer::composeContent ( out, pattern.getContent ( ) ); + out.emplace_back ( xmlTagName ( ), sax::Token::TokenType::END_ELEMENT ); +} + +} /* namespace core */ + +#endif /* _XML_PREFIX_RANKED_PATTERN_H_ */ diff --git a/alib2data/src/tree/xml/ranked/PrefixRankedTree.cpp b/alib2data/src/tree/xml/ranked/PrefixRankedTree.cpp new file mode 100644 index 0000000000..2bed6ee9e5 --- /dev/null +++ b/alib2data/src/tree/xml/ranked/PrefixRankedTree.cpp @@ -0,0 +1,22 @@ +/* + * PrefixRankedTree.cpp + * + * Created on: Nov 23, 2013 + * Author: Jan Travnicek + */ + +#include "PrefixRankedTree.h" +#include <tree/Tree.h> +#include <object/Object.h> + +#include <registration/XmlRegistration.hpp> + +namespace { + +static auto xmlWrite = registration::XmlWriterRegister < tree::PrefixRankedTree < > > ( ); +static auto xmlRead = registration::XmlReaderRegister < tree::PrefixRankedTree < > > ( ); + +static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::PrefixRankedTree < > > ( ); +static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, tree::PrefixRankedTree < > > ( ); + +} /* namespace */ diff --git a/alib2data/src/tree/xml/ranked/PrefixRankedTree.h b/alib2data/src/tree/xml/ranked/PrefixRankedTree.h new file mode 100644 index 0000000000..1f16cd053c --- /dev/null +++ b/alib2data/src/tree/xml/ranked/PrefixRankedTree.h @@ -0,0 +1,88 @@ +/* + * PrefixRankedTree.h + * + * This file is part of Algorithms library toolkit. + * Copyright (C) 2017 Jan Travnicek (jan.travnicek@fit.cvut.cz) + + * Algorithms library toolkit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + + * Algorithms library toolkit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with Algorithms library toolkit. If not, see <http://www.gnu.org/licenses/>. + * + * Created on: Nov 23, 2013 + * Author: Jan Travnicek + */ + +#ifndef _XML_PREFIX_RANKED_TREE_H_ +#define _XML_PREFIX_RANKED_TREE_H_ + +#include <tree/ranked/PrefixRankedTree.h> +#include <sax/FromXMLParserHelper.h> +#include <alphabet/xml/RankedSymbol.h> +#include "../common/TreeFromXMLParser.h" +#include "../common/TreeToXMLComposer.h" + +namespace core { + +template < class SymbolType, class RankType > +struct xmlApi < tree::PrefixRankedTree < SymbolType, RankType > > { + /** + * \brief The XML tag name of class. + * + * \details Intentionaly a static member function to be safe in the initialisation before the main function starts. + * + * \returns string representing the XML tag name of the class + */ + static const std::string & xmlTagName() { + static std::string xmlTagName = "PrefixRankedTree"; + + return xmlTagName; + } + + /** + * Parsing from a sequence of xml tokens helper. + * + * \params input the iterator to sequence of xml tokens to parse from + * + * \returns the new instance of the tree + */ + static tree::PrefixRankedTree < SymbolType, RankType > parse ( ext::deque < sax::Token >::iterator & input ); + + /** + * Composing to a sequence of xml tokens helper. + * + * \param out the sink for new xml tokens representing the tree + * \param tree the tree to compose + */ + static void compose ( ext::deque < sax::Token > & out, const tree::PrefixRankedTree < SymbolType, RankType > & tree ); +}; + +template < class SymbolType, class RankType > +tree::PrefixRankedTree < SymbolType, RankType > xmlApi < tree::PrefixRankedTree < SymbolType, RankType > >::parse ( ext::deque < sax::Token >::iterator & input ) { + sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::START_ELEMENT, xmlTagName ( ) ); + ext::set < common::ranked_symbol < SymbolType, RankType > > rankedAlphabet = tree::TreeFromXMLParser::parseAlphabet < common::ranked_symbol < SymbolType, RankType > > ( input ); + ext::vector < common::ranked_symbol < SymbolType, RankType > > data = tree::TreeFromXMLParser::parseLinearContent < common::ranked_symbol < SymbolType, RankType > > ( input ); + sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::END_ELEMENT, xmlTagName ( ) ); + + return tree::PrefixRankedTree < SymbolType, RankType > ( std::move ( rankedAlphabet ), std::move ( data ) ); +} + +template < class SymbolType, class RankType > +void xmlApi < tree::PrefixRankedTree < SymbolType, RankType > >::compose ( ext::deque < sax::Token > & out, const tree::PrefixRankedTree < SymbolType, RankType > & tree ) { + out.emplace_back ( xmlTagName ( ), sax::Token::TokenType::START_ELEMENT ); + tree::TreeToXMLComposer::composeAlphabet ( out, tree.getAlphabet() ); + tree::TreeToXMLComposer::composeContent ( out, tree.getContent ( ) ); + out.emplace_back ( xmlTagName ( ), sax::Token::TokenType::END_ELEMENT ); +} + +} /* namespace core */ + +#endif /* _XML_PREFIX_RANKED_TREE_H_ */ diff --git a/alib2data/src/tree/xml/ranked/RankedNonlinearPattern.cpp b/alib2data/src/tree/xml/ranked/RankedNonlinearPattern.cpp new file mode 100644 index 0000000000..c4d6c5dce9 --- /dev/null +++ b/alib2data/src/tree/xml/ranked/RankedNonlinearPattern.cpp @@ -0,0 +1,22 @@ +/* + * RankedNonlinearPattern.cpp + * + * Created on: Nov 23, 2013 + * Author: Jan Travnicek + */ + +#include "RankedNonlinearPattern.h" +#include <tree/Tree.h> +#include <object/Object.h> + +#include <registration/XmlRegistration.hpp> + +namespace { + +static auto xmlWrite = registration::XmlWriterRegister < tree::RankedNonlinearPattern < > > ( ); +static auto xmlRead = registration::XmlReaderRegister < tree::RankedNonlinearPattern < > > ( ); + +static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::RankedNonlinearPattern < > > ( ); +static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, tree::RankedNonlinearPattern < > > ( ); + +} /* namespace */ diff --git a/alib2data/src/tree/xml/ranked/RankedNonlinearPattern.h b/alib2data/src/tree/xml/ranked/RankedNonlinearPattern.h new file mode 100644 index 0000000000..970049092d --- /dev/null +++ b/alib2data/src/tree/xml/ranked/RankedNonlinearPattern.h @@ -0,0 +1,93 @@ +/* + * RankedNonlinearPattern.h + * + * This file is part of Algorithms library toolkit. + * Copyright (C) 2017 Jan Travnicek (jan.travnicek@fit.cvut.cz) + + * Algorithms library toolkit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + + * Algorithms library toolkit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with Algorithms library toolkit. If not, see <http://www.gnu.org/licenses/>. + * + * Created on: Nov 23, 2013 + * Author: Jan Travnicek + */ + +#ifndef _XML_RANKED_NONLINEAR_PATTERN_H_ +#define _XML_RANKED_NONLINEAR_PATTERN_H_ + +#include <tree/ranked/RankedNonlinearPattern.h> +#include <sax/FromXMLParserHelper.h> +#include <alphabet/xml/RankedSymbol.h> +#include "../common/TreeFromXMLParser.h" +#include "../common/TreeToXMLComposer.h" + +namespace core { + +template < class SymbolType, class RankType > +struct xmlApi < tree::RankedNonlinearPattern < SymbolType, RankType > > { + /** + * \brief The XML tag name of class. + * + * \details Intentionaly a static member function to be safe in the initialisation before the main function starts. + * + * \returns string representing the XML tag name of the class + */ + static const std::string & xmlTagName() { + static std::string xmlTagName = "RankedNonlinearPattern"; + + return xmlTagName; + } + + /** + * Parsing from a sequence of xml tokens helper. + * + * \params input the iterator to sequence of xml tokens to parse from + * + * \returns the new instance of the pattern + */ + static tree::RankedNonlinearPattern < SymbolType, RankType > parse ( ext::deque < sax::Token >::iterator & input ); + + /** + * Composing to a sequence of xml tokens helper. + * + * \param out the sink for new xml tokens representing the pattern + * \param pattern the pattern to compose + */ + static void compose ( ext::deque < sax::Token > & out, const tree::RankedNonlinearPattern < SymbolType, RankType > & pattern ); +}; + +template < class SymbolType, class RankType > +tree::RankedNonlinearPattern < SymbolType, RankType > xmlApi < tree::RankedNonlinearPattern < SymbolType, RankType > >::parse ( ext::deque < sax::Token >::iterator & input ) { + sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::START_ELEMENT, xmlTagName ( ) ); + common::ranked_symbol < SymbolType, RankType > subtreeWildcardSymbol = tree::TreeFromXMLParser::parseWildcardSymbol < common::ranked_symbol < SymbolType, RankType > > ( input ); + ext::set < common::ranked_symbol < SymbolType, RankType > > nonlinearVariables = tree::TreeFromXMLParser::parseNonlinearVariables < common::ranked_symbol < SymbolType, RankType > > ( input ); + ext::set < common::ranked_symbol < SymbolType, RankType > > rankedAlphabet = tree::TreeFromXMLParser::parseAlphabet < common::ranked_symbol < SymbolType, RankType > > ( input ); + ext::tree < common::ranked_symbol < SymbolType, RankType > > root = tree::TreeFromXMLParser::parseTreeContent < common::ranked_symbol < SymbolType, RankType > > ( input ); + tree::RankedNonlinearPattern < SymbolType, RankType > tree ( std::move ( subtreeWildcardSymbol ), std::move ( nonlinearVariables ), std::move ( rankedAlphabet ), std::move ( root ) ); + + sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::END_ELEMENT, xmlTagName ( ) ); + return tree; +} + +template < class SymbolType, class RankType > +void xmlApi < tree::RankedNonlinearPattern < SymbolType, RankType > >::compose ( ext::deque < sax::Token > & out, const tree::RankedNonlinearPattern < SymbolType, RankType > & pattern ) { + out.emplace_back ( xmlTagName ( ), sax::Token::TokenType::START_ELEMENT ); + tree::TreeToXMLComposer::composeSubtreeWildcard ( out, pattern.getSubtreeWildcard() ); + tree::TreeToXMLComposer::composeNonlinearVariables ( out, pattern.getNonlinearVariables() ); + tree::TreeToXMLComposer::composeAlphabet ( out, pattern.getAlphabet() ); + tree::TreeToXMLComposer::composeContent ( out, pattern.getContent ( ) ); + out.emplace_back ( xmlTagName ( ), sax::Token::TokenType::END_ELEMENT ); +} + +} /* namespace core */ + +#endif /* _XML_RANKED_NONLINEAR_PATTERN_H_ */ diff --git a/alib2data/src/tree/xml/ranked/RankedPattern.cpp b/alib2data/src/tree/xml/ranked/RankedPattern.cpp new file mode 100644 index 0000000000..8817ae3ca4 --- /dev/null +++ b/alib2data/src/tree/xml/ranked/RankedPattern.cpp @@ -0,0 +1,22 @@ +/* + * RankedPattern.cpp + * + * Created on: Nov 23, 2013 + * Author: Jan Travnicek + */ + +#include "RankedPattern.h" +#include <tree/Tree.h> +#include <object/Object.h> + +#include <registration/XmlRegistration.hpp> + +namespace { + +static auto xmlWrite = registration::XmlWriterRegister < tree::RankedPattern < > > ( ); +static auto xmlRead = registration::XmlReaderRegister < tree::RankedPattern < > > ( ); + +static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::RankedPattern < > > ( ); +static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, tree::RankedPattern < > > ( ); + +} /* namespace */ diff --git a/alib2data/src/tree/xml/ranked/RankedPattern.h b/alib2data/src/tree/xml/ranked/RankedPattern.h new file mode 100644 index 0000000000..2476fb6e29 --- /dev/null +++ b/alib2data/src/tree/xml/ranked/RankedPattern.h @@ -0,0 +1,91 @@ +/* + * RankedPattern.h + * + * This file is part of Algorithms library toolkit. + * Copyright (C) 2017 Jan Travnicek (jan.travnicek@fit.cvut.cz) + + * Algorithms library toolkit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + + * Algorithms library toolkit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with Algorithms library toolkit. If not, see <http://www.gnu.org/licenses/>. + * + * Created on: Nov 23, 2013 + * Author: Jan Travnicek + */ + +#ifndef _XML_RANKED_PATTERN_H_ +#define _XML_RANKED_PATTERN_H_ + +#include <tree/ranked/RankedPattern.h> +#include <sax/FromXMLParserHelper.h> +#include <alphabet/xml/RankedSymbol.h> +#include "../common/TreeFromXMLParser.h" +#include "../common/TreeToXMLComposer.h" + +namespace core { + +template < class SymbolType, class RankType > +struct xmlApi < tree::RankedPattern < SymbolType, RankType > > { + /** + * \brief The XML tag name of class. + * + * \details Intentionaly a static member function to be safe in the initialisation before the main function starts. + * + * \returns string representing the XML tag name of the class + */ + static const std::string & xmlTagName() { + static std::string xmlTagName = "RankedPattern"; + + return xmlTagName; + } + + /** + * Parsing from a sequence of xml tokens helper. + * + * \params input the iterator to sequence of xml tokens to parse from + * + * \returns the new instance of the pattern + */ + static tree::RankedPattern < SymbolType, RankType > parse ( ext::deque < sax::Token >::iterator & input ); + + /** + * Composing to a sequence of xml tokens helper. + * + * \param out the sink for new xml tokens representing the pattern + * \param pattern the pattern to compose + */ + static void compose ( ext::deque < sax::Token > & out, const tree::RankedPattern < SymbolType, RankType > & pattern ); +}; + +template < class SymbolType, class RankType > +tree::RankedPattern < SymbolType, RankType > xmlApi < tree::RankedPattern < SymbolType, RankType > >::parse ( ext::deque < sax::Token >::iterator & input ) { + sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::START_ELEMENT, xmlTagName ( ) ); + common::ranked_symbol < SymbolType, RankType > subtreeWildcardSymbol = tree::TreeFromXMLParser::parseWildcardSymbol < common::ranked_symbol < SymbolType, RankType > > ( input ); + ext::set < common::ranked_symbol < SymbolType, RankType > > rankedAlphabet = tree::TreeFromXMLParser::parseAlphabet < common::ranked_symbol < SymbolType, RankType > > ( input ); + ext::tree < common::ranked_symbol < SymbolType, RankType > > root = tree::TreeFromXMLParser::parseTreeContent < common::ranked_symbol < SymbolType, RankType > > ( input ); + tree::RankedPattern < SymbolType, RankType > tree ( std::move ( subtreeWildcardSymbol ), std::move ( rankedAlphabet ), std::move ( root ) ); + + sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::END_ELEMENT, xmlTagName ( ) ); + return tree; +} + +template < class SymbolType, class RankType > +void xmlApi < tree::RankedPattern < SymbolType, RankType > >::compose ( ext::deque < sax::Token > & out, const tree::RankedPattern < SymbolType, RankType > & pattern ) { + out.emplace_back ( xmlTagName ( ), sax::Token::TokenType::START_ELEMENT ); + tree::TreeToXMLComposer::composeSubtreeWildcard ( out, pattern.getSubtreeWildcard() ); + tree::TreeToXMLComposer::composeAlphabet ( out, pattern.getAlphabet() ); + tree::TreeToXMLComposer::composeContent ( out, pattern.getContent ( ) ); + out.emplace_back ( xmlTagName ( ), sax::Token::TokenType::END_ELEMENT ); +} + +} /* namespace core */ + +#endif /* _XML_RANKED_PATTERN_H_ */ diff --git a/alib2data/src/tree/xml/ranked/RankedTree.cpp b/alib2data/src/tree/xml/ranked/RankedTree.cpp new file mode 100644 index 0000000000..47296deea3 --- /dev/null +++ b/alib2data/src/tree/xml/ranked/RankedTree.cpp @@ -0,0 +1,22 @@ +/* + * RankedTree.cpp + * + * Created on: Nov 23, 2013 + * Author: Stepan Plachy + */ + +#include "RankedTree.h" +#include <tree/Tree.h> +#include <object/Object.h> + +#include <registration/XmlRegistration.hpp> + +namespace { + +static auto xmlWrite = registration::XmlWriterRegister < tree::RankedTree < > > ( ); +static auto xmlRead = registration::XmlReaderRegister < tree::RankedTree < > > ( ); + +static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::RankedTree < > > ( ); +static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, tree::RankedTree < > > ( ); + +} /* namespace */ diff --git a/alib2data/src/tree/xml/ranked/RankedTree.h b/alib2data/src/tree/xml/ranked/RankedTree.h new file mode 100644 index 0000000000..f99889340f --- /dev/null +++ b/alib2data/src/tree/xml/ranked/RankedTree.h @@ -0,0 +1,93 @@ +/* + * RankedTree.h + * + * This file is part of Algorithms library toolkit. + * Copyright (C) 2017 Jan Travnicek (jan.travnicek@fit.cvut.cz) + + * Algorithms library toolkit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + + * Algorithms library toolkit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with Algorithms library toolkit. If not, see <http://www.gnu.org/licenses/>. + * + * Created on: Nov 23, 2013 + * Author: Stepan Plachy + */ + +#ifndef _XML_RANKED_TREE_H_ +#define _XML_RANKED_TREE_H_ + +#include <tree/ranked/RankedTree.h> +#include <sax/FromXMLParserHelper.h> +#include <alphabet/xml/RankedSymbol.h> +#include "../common/TreeFromXMLParser.h" +#include "../common/TreeToXMLComposer.h" + +namespace core { + +template < class SymbolType, class RankType > +struct xmlApi < tree::RankedTree < SymbolType, RankType > > { + /** + * \brief The XML tag name of class. + * + * \details Intentionaly a static member function to be safe in the initialisation before the main function starts. + * + * \returns string representing the XML tag name of the class + */ + static const std::string & xmlTagName() { + static std::string xmlTagName = "RankedTree"; + + return xmlTagName; + } + + static bool first ( const ext::deque < sax::Token >::const_iterator & input ) { + return sax::FromXMLParserHelper::isToken ( input, sax::Token::TokenType::START_ELEMENT, xmlTagName ( ) ); + } + + /** + * Parsing from a sequence of xml tokens helper. + * + * \params input the iterator to sequence of xml tokens to parse from + * + * \returns the new instance of the tree + */ + static tree::RankedTree < SymbolType, RankType > parse ( ext::deque < sax::Token >::iterator & input ); + + /** + * Composing to a sequence of xml tokens helper. + * + * \param out the sink for new xml tokens representing the tree + * \param tree the tree to compose + */ + static void compose ( ext::deque < sax::Token > & out, const tree::RankedTree < SymbolType, RankType > & tree ); +}; + +template < class SymbolType, class RankType > +tree::RankedTree < SymbolType, RankType > xmlApi < tree::RankedTree < SymbolType, RankType > >::parse ( ext::deque < sax::Token >::iterator & input ) { + sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::START_ELEMENT, xmlTagName ( ) ); + ext::set < common::ranked_symbol < SymbolType, RankType > > rankedAlphabet = tree::TreeFromXMLParser::parseAlphabet < common::ranked_symbol < SymbolType, RankType > > ( input ); + ext::tree < common::ranked_symbol < SymbolType, RankType > > root = tree::TreeFromXMLParser::parseTreeContent < common::ranked_symbol < SymbolType, RankType > > ( input ); + tree::RankedTree < SymbolType, RankType > tree ( std::move ( rankedAlphabet ), std::move ( root ) ); + + sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::END_ELEMENT, xmlTagName ( ) ); + return tree; +} + +template < class SymbolType, class RankType > +void xmlApi < tree::RankedTree < SymbolType, RankType > >::compose ( ext::deque < sax::Token > & out, const tree::RankedTree < SymbolType, RankType > & tree ) { + out.emplace_back ( xmlTagName ( ), sax::Token::TokenType::START_ELEMENT ); + tree::TreeToXMLComposer::composeAlphabet ( out, tree.getAlphabet ( ) ); + tree::TreeToXMLComposer::composeContent ( out, tree.getContent ( ) ); + out.emplace_back ( xmlTagName ( ), sax::Token::TokenType::END_ELEMENT ); +} + +} /* namespace core */ + +#endif /* _XML_RANKED_TREE_H_ */ diff --git a/alib2data/src/tree/xml/unranked/PrefixBarTree.cpp b/alib2data/src/tree/xml/unranked/PrefixBarTree.cpp new file mode 100644 index 0000000000..999f34ee34 --- /dev/null +++ b/alib2data/src/tree/xml/unranked/PrefixBarTree.cpp @@ -0,0 +1,22 @@ +/* + * PrefixBarTree.cpp + * + * Created on: Nov 23, 2013 + * Author: Jan Travnicek + */ + +#include "PrefixBarTree.h" +#include <tree/Tree.h> +#include <object/Object.h> + +#include <registration/XmlRegistration.hpp> + +namespace { + +static auto xmlWrite = registration::XmlWriterRegister < tree::PrefixBarTree < > > ( ); +static auto xmlRead = registration::XmlReaderRegister < tree::PrefixBarTree < > > ( ); + +static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::PrefixBarTree < > > ( ); +static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, tree::PrefixBarTree < > > ( ); + +} /* namespace */ diff --git a/alib2data/src/tree/xml/unranked/PrefixBarTree.h b/alib2data/src/tree/xml/unranked/PrefixBarTree.h new file mode 100644 index 0000000000..89373bd967 --- /dev/null +++ b/alib2data/src/tree/xml/unranked/PrefixBarTree.h @@ -0,0 +1,89 @@ +/* + * PrefixBarTree.h + * + * This file is part of Algorithms library toolkit. + * Copyright (C) 2017 Jan Travnicek (jan.travnicek@fit.cvut.cz) + + * Algorithms library toolkit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + + * Algorithms library toolkit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with Algorithms library toolkit. If not, see <http://www.gnu.org/licenses/>. + * + * Created on: Nov 23, 2013 + * Author: Jan Travnicek + */ + +#ifndef _XML_PREFIX_BAR_TREE_H_ +#define _XML_PREFIX_BAR_TREE_H_ + +#include <tree/unranked/PrefixBarTree.h> +#include <sax/FromXMLParserHelper.h> +#include "../common/TreeFromXMLParser.h" +#include "../common/TreeToXMLComposer.h" + +namespace core { + +template < class SymbolType > +struct xmlApi < tree::PrefixBarTree < SymbolType > > { + /** + * \brief The XML tag name of class. + * + * \details Intentionaly a static member function to be safe in the initialisation before the main function starts. + * + * \returns string representing the XML tag name of the class + */ + static const std::string & xmlTagName() { + static std::string xmlTagName = "PrefixBarTree"; + + return xmlTagName; + } + + /** + * Parsing from a sequence of xml tokens helper. + * + * \params input the iterator to sequence of xml tokens to parse from + * + * \returns the new instance of the tree + */ + static tree::PrefixBarTree < SymbolType > parse ( ext::deque < sax::Token >::iterator & input ); + + /** + * Composing to a sequence of xml tokens helper. + * + * \param out the sink for new xml tokens representing the tree + * \param tree the tree to compose + */ + static void compose ( ext::deque < sax::Token > & out, const tree::PrefixBarTree < SymbolType > & tree ); +}; + +template < class SymbolType > +tree::PrefixBarTree < SymbolType > xmlApi < tree::PrefixBarTree < SymbolType > >::parse ( ext::deque < sax::Token >::iterator & input ) { + sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::START_ELEMENT, xmlTagName ( ) ); + SymbolType bar = tree::TreeFromXMLParser::parseBar < SymbolType > ( input ); + ext::set < SymbolType > unrankedAlphabet = tree::TreeFromXMLParser::parseAlphabet < SymbolType > ( input ); + ext::vector < SymbolType > data = tree::TreeFromXMLParser::parseLinearContent < SymbolType > ( input ); + sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::END_ELEMENT, xmlTagName ( ) ); + + return tree::PrefixBarTree < SymbolType > ( std::move ( bar ), std::move ( unrankedAlphabet ), std::move ( data ) ); +} + +template < class SymbolType > +void xmlApi < tree::PrefixBarTree < SymbolType > >::compose ( ext::deque < sax::Token > & out, const tree::PrefixBarTree < SymbolType > & tree ) { + out.emplace_back ( xmlTagName ( ), sax::Token::TokenType::START_ELEMENT ); + tree::TreeToXMLComposer::composeBar ( out, tree.getBar ( ) ); + tree::TreeToXMLComposer::composeAlphabet ( out, tree.getAlphabet ( ) ); + tree::TreeToXMLComposer::composeContent ( out, tree.getContent ( ) ); + out.emplace_back ( xmlTagName ( ), sax::Token::TokenType::END_ELEMENT ); +} + +} /* namespace core */ + +#endif /* _XML_PREFIX_BAR_TREE_H_ */ diff --git a/alib2data/src/tree/xml/unranked/UnrankedNonlinearPattern.cpp b/alib2data/src/tree/xml/unranked/UnrankedNonlinearPattern.cpp new file mode 100644 index 0000000000..77de071ad2 --- /dev/null +++ b/alib2data/src/tree/xml/unranked/UnrankedNonlinearPattern.cpp @@ -0,0 +1,22 @@ +/* + * UnrankedNonlinearPattern.cpp + * + * Created on: Nov 23, 2013 + * Author: Jan Travnicek + */ + +#include "UnrankedNonlinearPattern.h" +#include <tree/Tree.h> +#include <object/Object.h> + +#include <registration/XmlRegistration.hpp> + +namespace { + +static auto xmlWrite = registration::XmlWriterRegister < tree::UnrankedNonlinearPattern < > > ( ); +static auto xmlRead = registration::XmlReaderRegister < tree::UnrankedNonlinearPattern < > > ( ); + +static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::UnrankedNonlinearPattern < > > ( ); +static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, tree::UnrankedNonlinearPattern < > > ( ); + +} /* namespace */ diff --git a/alib2data/src/tree/xml/unranked/UnrankedNonlinearPattern.h b/alib2data/src/tree/xml/unranked/UnrankedNonlinearPattern.h new file mode 100644 index 0000000000..d33c9ea887 --- /dev/null +++ b/alib2data/src/tree/xml/unranked/UnrankedNonlinearPattern.h @@ -0,0 +1,92 @@ +/* + * UnrankedNonlinearPattern.h + * + * This file is part of Algorithms library toolkit. + * Copyright (C) 2017 Jan Travnicek (jan.travnicek@fit.cvut.cz) + + * Algorithms library toolkit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + + * Algorithms library toolkit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with Algorithms library toolkit. If not, see <http://www.gnu.org/licenses/>. + * + * Created on: Nov 23, 2013 + * Author: Jan Travnicek + */ + +#ifndef _XML_UNRANKED_NONLINEAR_PATTERN_H_ +#define _XML_UNRANKED_NONLINEAR_PATTERN_H_ + +#include <tree/unranked/UnrankedNonlinearPattern.h> +#include <sax/FromXMLParserHelper.h> +#include "../common/TreeFromXMLParser.h" +#include "../common/TreeToXMLComposer.h" + +namespace core { + +template < class SymbolType > +struct xmlApi < tree::UnrankedNonlinearPattern < SymbolType > > { + /** + * \brief The XML tag name of class. + * + * \details Intentionaly a static member function to be safe in the initialisation before the main function starts. + * + * \returns string representing the XML tag name of the class + */ + static const std::string & xmlTagName() { + static std::string xmlTagName = "UnrankedNonlinearPattern"; + + return xmlTagName; + } + + /** + * Parsing from a sequence of xml tokens helper. + * + * \params input the iterator to sequence of xml tokens to parse from + * + * \returns the new instance of the pattern + */ + static tree::UnrankedNonlinearPattern < SymbolType > parse ( ext::deque < sax::Token >::iterator & input ); + + /** + * Composing to a sequence of xml tokens helper. + * + * \param out the sink for new xml tokens representing the pattern + * \param pattern the pattern to compose + */ + static void compose ( ext::deque < sax::Token > & out, const tree::UnrankedNonlinearPattern < SymbolType > & pattern ); +}; + +template < class SymbolType > +tree::UnrankedNonlinearPattern < SymbolType > xmlApi < tree::UnrankedNonlinearPattern < SymbolType > >::parse ( ext::deque < sax::Token >::iterator & input ) { + sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::START_ELEMENT, xmlTagName ( ) ); + SymbolType subtreeWildcardSymbol = tree::TreeFromXMLParser::parseWildcardSymbol < SymbolType > ( input ); + ext::set < SymbolType > nonlinearVariables = tree::TreeFromXMLParser::parseNonlinearVariables < SymbolType > ( input ); + ext::set < SymbolType > rankedAlphabet = tree::TreeFromXMLParser::parseAlphabet < SymbolType > ( input ); + ext::tree < SymbolType > root = tree::TreeFromXMLParser::parseTreeContent < SymbolType > ( input ); + tree::UnrankedNonlinearPattern < SymbolType > tree ( std::move ( subtreeWildcardSymbol ), std::move ( nonlinearVariables ), std::move ( rankedAlphabet ), std::move ( root ) ); + + sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::END_ELEMENT, xmlTagName ( ) ); + return tree; +} + +template < class SymbolType > +void xmlApi < tree::UnrankedNonlinearPattern < SymbolType > >::compose ( ext::deque < sax::Token > & out, const tree::UnrankedNonlinearPattern < SymbolType > & pattern ) { + out.emplace_back ( xmlTagName ( ), sax::Token::TokenType::START_ELEMENT ); + tree::TreeToXMLComposer::composeSubtreeWildcard ( out, pattern.getSubtreeWildcard ( ) ); + tree::TreeToXMLComposer::composeNonlinearVariables ( out, pattern.getNonlinearVariables ( ) ); + tree::TreeToXMLComposer::composeAlphabet ( out, pattern.getAlphabet ( ) ); + tree::TreeToXMLComposer::composeContent ( out, pattern.getContent ( ) ); + out.emplace_back ( xmlTagName ( ), sax::Token::TokenType::END_ELEMENT ); +} + +} /* namespace core */ + +#endif /* _XML_UNRANKED_NONLINEAR_PATTERN_H_ */ diff --git a/alib2data/src/tree/xml/unranked/UnrankedPattern.cpp b/alib2data/src/tree/xml/unranked/UnrankedPattern.cpp new file mode 100644 index 0000000000..f84704cbcd --- /dev/null +++ b/alib2data/src/tree/xml/unranked/UnrankedPattern.cpp @@ -0,0 +1,22 @@ +/* + * UnrankedPattern.cpp + * + * Created on: Nov 23, 2013 + * Author: Jan Travnicek + */ + +#include "UnrankedPattern.h" +#include <tree/Tree.h> +#include <object/Object.h> + +#include <registration/XmlRegistration.hpp> + +namespace { + +static auto xmlWrite = registration::XmlWriterRegister < tree::UnrankedPattern < > > ( ); +static auto xmlRead = registration::XmlReaderRegister < tree::UnrankedPattern < > > ( ); + +static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::UnrankedPattern < > > ( ); +static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, tree::UnrankedPattern < > > ( ); + +} /* namespace */ diff --git a/alib2data/src/tree/xml/unranked/UnrankedPattern.h b/alib2data/src/tree/xml/unranked/UnrankedPattern.h new file mode 100644 index 0000000000..6ed06e2744 --- /dev/null +++ b/alib2data/src/tree/xml/unranked/UnrankedPattern.h @@ -0,0 +1,90 @@ +/* + * UnrankedPattern.h + * + * This file is part of Algorithms library toolkit. + * Copyright (C) 2017 Jan Travnicek (jan.travnicek@fit.cvut.cz) + + * Algorithms library toolkit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + + * Algorithms library toolkit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with Algorithms library toolkit. If not, see <http://www.gnu.org/licenses/>. + * + * Created on: Nov 23, 2013 + * Author: Jan Travnicek + */ + +#ifndef _XML_UNRANKED_PATTERN_H_ +#define _XML_UNRANKED_PATTERN_H_ + +#include <tree/unranked/UnrankedPattern.h> +#include <sax/FromXMLParserHelper.h> +#include "../common/TreeFromXMLParser.h" +#include "../common/TreeToXMLComposer.h" + +namespace core { + +template < class SymbolType > +struct xmlApi < tree::UnrankedPattern < SymbolType > > { + /** + * \brief The XML tag name of class. + * + * \details Intentionaly a static member function to be safe in the initialisation before the main function starts. + * + * \returns string representing the XML tag name of the class + */ + static const std::string & xmlTagName() { + static std::string xmlTagName = "UnrankedPattern"; + + return xmlTagName; + } + + /** + * Parsing from a sequence of xml tokens helper. + * + * \params input the iterator to sequence of xml tokens to parse from + * + * \returns the new instance of the pattern + */ + static tree::UnrankedPattern < SymbolType > parse ( ext::deque < sax::Token >::iterator & input ); + + /** + * Composing to a sequence of xml tokens helper. + * + * \param out the sink for new xml tokens representing the pattern + * \param pattern the pattern to compose + */ + static void compose ( ext::deque < sax::Token > & out, const tree::UnrankedPattern < SymbolType > & pattern ); +}; + +template < class SymbolType > +tree::UnrankedPattern < SymbolType > xmlApi < tree::UnrankedPattern < SymbolType > >::parse ( ext::deque < sax::Token >::iterator & input ) { + sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::START_ELEMENT, xmlTagName ( ) ); + SymbolType subtreeWildcardSymbol = tree::TreeFromXMLParser::parseWildcardSymbol < SymbolType > ( input ); + ext::set < SymbolType > rankedAlphabet = tree::TreeFromXMLParser::parseAlphabet < SymbolType > ( input ); + ext::tree < SymbolType > root = tree::TreeFromXMLParser::parseTreeContent < SymbolType > ( input ); + tree::UnrankedPattern < SymbolType > tree ( std::move ( subtreeWildcardSymbol ), std::move ( rankedAlphabet ), std::move ( root ) ); + + sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::END_ELEMENT, xmlTagName ( ) ); + return tree; +} + +template < class SymbolType > +void xmlApi < tree::UnrankedPattern < SymbolType > >::compose ( ext::deque < sax::Token > & out, const tree::UnrankedPattern < SymbolType > & pattern ) { + out.emplace_back ( xmlTagName ( ), sax::Token::TokenType::START_ELEMENT ); + tree::TreeToXMLComposer::composeSubtreeWildcard ( out, pattern.getSubtreeWildcard ( ) ); + tree::TreeToXMLComposer::composeAlphabet ( out, pattern.getAlphabet ( ) ); + tree::TreeToXMLComposer::composeContent ( out, pattern.getContent ( ) ); + out.emplace_back ( xmlTagName ( ), sax::Token::TokenType::END_ELEMENT ); +} + +} /* namespace core */ + +#endif /* _XML_UNRANKED_PATTERN_H_ */ diff --git a/alib2data/src/tree/xml/unranked/UnrankedTree.cpp b/alib2data/src/tree/xml/unranked/UnrankedTree.cpp new file mode 100644 index 0000000000..b57cba92a8 --- /dev/null +++ b/alib2data/src/tree/xml/unranked/UnrankedTree.cpp @@ -0,0 +1,22 @@ +/* + * UnrankedTree.cpp + * + * Created on: Nov 23, 2013 + * Author: Stepan Plachy + */ + +#include "UnrankedTree.h" +#include <tree/Tree.h> +#include <object/Object.h> + +#include <registration/XmlRegistration.hpp> + +namespace { + +static auto xmlWrite = registration::XmlWriterRegister < tree::UnrankedTree < > > ( ); +static auto xmlRead = registration::XmlReaderRegister < tree::UnrankedTree < > > ( ); + +static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::UnrankedTree < > > ( ); +static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, tree::UnrankedTree < > > ( ); + +} /* namespace */ diff --git a/alib2data/src/tree/xml/unranked/UnrankedTree.h b/alib2data/src/tree/xml/unranked/UnrankedTree.h new file mode 100644 index 0000000000..de52ad7738 --- /dev/null +++ b/alib2data/src/tree/xml/unranked/UnrankedTree.h @@ -0,0 +1,92 @@ +/* + * UnrankedTree.h + * + * This file is part of Algorithms library toolkit. + * Copyright (C) 2017 Jan Travnicek (jan.travnicek@fit.cvut.cz) + + * Algorithms library toolkit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + + * Algorithms library toolkit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with Algorithms library toolkit. If not, see <http://www.gnu.org/licenses/>. + * + * Created on: Nov 23, 2013 + * Author: Stepan Plachy + */ + +#ifndef _XML_UNRANKED_TREE_H_ +#define _XML_UNRANKED_TREE_H_ + +#include <tree/unranked/UnrankedTree.h> +#include <sax/FromXMLParserHelper.h> +#include "../common/TreeFromXMLParser.h" +#include "../common/TreeToXMLComposer.h" + +namespace core { + +template < class SymbolType > +struct xmlApi < tree::UnrankedTree < SymbolType > > { + /** + * \brief The XML tag name of class. + * + * \details Intentionaly a static member function to be safe in the initialisation before the main function starts. + * + * \returns string representing the XML tag name of the class + */ + static const std::string & xmlTagName() { + static std::string xmlTagName = "UnrankedTree"; + + return xmlTagName; + } + + static bool first ( const ext::deque < sax::Token >::const_iterator & input ) { + return sax::FromXMLParserHelper::isToken ( input, sax::Token::TokenType::START_ELEMENT, xmlTagName ( ) ); + } + + /** + * Parsing from a sequence of xml tokens helper. + * + * \params input the iterator to sequence of xml tokens to parse from + * + * \returns the new instance of the pattern + */ + static tree::UnrankedTree < SymbolType > parse ( ext::deque < sax::Token >::iterator & input ); + + /** + * Composing to a sequence of xml tokens helper. + * + * \param out the sink for new xml tokens representing the pattern + * \param pattern the pattern to compose + */ + static void compose ( ext::deque < sax::Token > & out, const tree::UnrankedTree < SymbolType > & tree ); +}; + +template < class SymbolType > +tree::UnrankedTree < SymbolType > xmlApi < tree::UnrankedTree < SymbolType > >::parse ( ext::deque < sax::Token >::iterator & input ) { + sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::START_ELEMENT, xmlTagName ( ) ); + ext::set < SymbolType > rankedAlphabet = tree::TreeFromXMLParser::parseAlphabet < SymbolType > ( input ); + ext::tree < SymbolType > root = tree::TreeFromXMLParser::parseTreeContent < SymbolType > ( input ); + tree::UnrankedTree < SymbolType > tree ( std::move ( rankedAlphabet ), std::move ( root ) ); + + sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::END_ELEMENT, xmlTagName ( ) ); + return tree; +} + +template < class SymbolType > +void xmlApi < tree::UnrankedTree < SymbolType > >::compose ( ext::deque < sax::Token > & out, const tree::UnrankedTree < SymbolType > & tree ) { + out.emplace_back ( xmlTagName ( ), sax::Token::TokenType::START_ELEMENT ); + tree::TreeToXMLComposer::composeAlphabet ( out, tree.getAlphabet ( ) ); + tree::TreeToXMLComposer::composeContent ( out, tree.getContent ( ) ); + out.emplace_back ( xmlTagName ( ), sax::Token::TokenType::END_ELEMENT ); +} + +} /* namespace core */ + +#endif /* _XML_UNRANKED_TREE_H_ */ diff --git a/alib2data/test-src/tree/PatternTest.cpp b/alib2data/test-src/tree/PatternTest.cpp index e800aa0adb..03ff89765e 100644 --- a/alib2data/test-src/tree/PatternTest.cpp +++ b/alib2data/test-src/tree/PatternTest.cpp @@ -4,9 +4,13 @@ #include "sax/SaxComposeInterface.h" #include "tree/unranked/UnrankedPattern.h" +#include "tree/xml/unranked/UnrankedPattern.h" #include "tree/ranked/RankedPattern.h" +#include "tree/xml/ranked/RankedPattern.h" #include "tree/ranked/PrefixRankedPattern.h" +#include "tree/xml/ranked/PrefixRankedPattern.h" #include "tree/ranked/PrefixRankedBarPattern.h" +#include "tree/xml/ranked/PrefixRankedBarPattern.h" #include "tree/TreeException.h" diff --git a/alib2data/test-src/tree/TreeTest.cpp b/alib2data/test-src/tree/TreeTest.cpp index f40573c989..ab6d01abbe 100644 --- a/alib2data/test-src/tree/TreeTest.cpp +++ b/alib2data/test-src/tree/TreeTest.cpp @@ -4,10 +4,15 @@ #include "sax/SaxComposeInterface.h" #include "tree/ranked/RankedTree.h" +#include "tree/xml/ranked/RankedTree.h" #include "tree/unranked/UnrankedTree.h" +#include "tree/xml/unranked/UnrankedTree.h" #include "tree/ranked/PrefixRankedTree.h" +#include "tree/xml/ranked/PrefixRankedTree.h" #include "tree/ranked/PrefixRankedBarTree.h" +#include "tree/xml/ranked/PrefixRankedBarTree.h" #include "tree/ranked/RankedPattern.h" +#include "tree/xml/ranked/RankedPattern.h" #include "tree/TreeException.h" diff --git a/tniceprint/src/tniceprint.cpp b/tniceprint/src/tniceprint.cpp index 4af9f005ea..51f3090c91 100644 --- a/tniceprint/src/tniceprint.cpp +++ b/tniceprint/src/tniceprint.cpp @@ -14,7 +14,9 @@ #include <factory/XmlDataFactory.hpp> #include <tree/Tree.h> #include <tree/ranked/RankedTree.h> +#include <tree/xml/ranked/RankedTree.h> #include <tree/unranked/UnrankedTree.h> +#include <tree/xml/unranked/UnrankedTree.h> int main(int argc, char** argv) { try { -- GitLab