From 4a9360bafa431ffbc9875175dc5955222a0d22d5 Mon Sep 17 00:00:00 2001 From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz> Date: Tue, 16 Oct 2018 11:30:38 +0200 Subject: [PATCH] remove not needed ranked_symbol wrapper --- aaccess2/src/aaccess.cpp | 4 +- aarbology2/src/aarbology.cpp | 6 +- .../src/arbology/exact/ExactPatternMatch.h | 2 - .../convert/ToPostfixPushdownAutomaton.cpp | 10 +- ...oPostfixPushdownAutomatonGlushkovNaive.cpp | 10 +- .../tree/properties/BadCharacterShiftTable.h | 1 - .../tree/properties/LastVariableOffsetBack.h | 1 - .../QuickSearchBadCharacterShiftTable.h | 1 - alib2data/src/PrimitiveRegistrator.cpp | 6 +- alib2data/src/alphabet/RankedSymbol.cpp | 15 -- alib2data/src/alphabet/RankedSymbol.h | 156 ------------------ alib2data/src/alphabet/VariablesBarSymbol.h | 7 +- alib2data/src/alphabet/WildcardSymbol.h | 7 +- .../src/alphabet/common/SymbolNormalize.h | 11 ++ alib2data/src/alphabet/xml/RankedSymbol.cpp | 6 +- alib2data/src/alphabet/xml/RankedSymbol.h | 30 +--- alib2data/src/common/ranked_symbol.hpp | 6 +- .../arbology/CompressedBitParallelTreeIndex.h | 2 +- .../src/indexes/arbology/FullAndLinearIndex.h | 2 +- .../NonlinearCompressedBitParallelTreeIndex.h | 2 +- .../arbology/NonlinearFullAndLinearIndex.h | 2 +- alib2data/src/rte/formal/FormalRTE.h | 1 + .../src/rte/xml/common/RTEToXmlComposer.h | 3 +- alib2data/src/tree/common/TreeNormalize.h | 2 +- alib2data/test-src/alphabet/SymbolTest.cpp | 5 +- alib2str/src/alphabet/string/RankedSymbol.cpp | 6 +- alib2str/src/alphabet/string/RankedSymbol.h | 24 +-- 27 files changed, 49 insertions(+), 279 deletions(-) delete mode 100644 alib2data/src/alphabet/RankedSymbol.cpp delete mode 100644 alib2data/src/alphabet/RankedSymbol.h diff --git a/aaccess2/src/aaccess.cpp b/aaccess2/src/aaccess.cpp index 963c26eb05..2b576979f0 100644 --- a/aaccess2/src/aaccess.cpp +++ b/aaccess2/src/aaccess.cpp @@ -144,7 +144,7 @@ int main ( int argc, char * argv[] ) { } if ( collection.isSet ( ) && ( operation.getValue ( ) == "add" || operation.getValue ( ) == "remove" ) && ( treeInput.isSet ( ) ) ) { - parser = cli::Parser ( cli::Lexer ( "execute < :set @ranked_symbol #collection > $argument" ) ); + parser = cli::Parser ( cli::Lexer ( "execute < :set @RankedSymbol #collection > $argument" ) ); parser.parse ( )->run ( environment ); } @@ -155,7 +155,7 @@ int main ( int argc, char * argv[] ) { parser.parse ( )->run ( environment ); } if ( element.isSet ( ) && ( operation.getValue ( ) == "add" || operation.getValue ( ) == "remove" ) && ( treeInput.isSet ( ) ) ) { - parser = cli::Parser ( cli::Lexer ( "execute < :ranked_symbol #element > $argument" ) ); + parser = cli::Parser ( cli::Lexer ( "execute < :RankedSymbol #element > $argument" ) ); parser.parse ( )->run ( environment ); } diff --git a/aarbology2/src/aarbology.cpp b/aarbology2/src/aarbology.cpp index d0561f892f..8b8fc80a88 100644 --- a/aarbology2/src/aarbology.cpp +++ b/aarbology2/src/aarbology.cpp @@ -153,7 +153,7 @@ int main ( int argc, char * argv[] ) { input = subtreeWildcardInput.getValue ( ); environment.setBinding ( "inputSubtreeWildcard", input ); - cli::Parser parser ( cli::Lexer ( "execute <:ranked_symbol #inputSubtreeWildcard > $subtreeWildcard" ) ); + cli::Parser parser ( cli::Lexer ( "execute <:RankedSymbol #inputSubtreeWildcard > $subtreeWildcard" ) ); parser.parse ( )->run ( environment ); } @@ -165,7 +165,7 @@ int main ( int argc, char * argv[] ) { input = nonlinearVariablesInput.getValue ( ); environment.setBinding ( "inputNonlinearVariables", input ); - cli::Parser parser ( cli::Lexer ( "execute <:set @ranked_symbol #inputNonlinearVariables > $nonlinearVariables" ) ); + cli::Parser parser ( cli::Lexer ( "execute <:set @RankedSymbol #inputNonlinearVariables > $nonlinearVariables" ) ); parser.parse ( )->run ( environment ); } @@ -184,7 +184,7 @@ int main ( int argc, char * argv[] ) { input = variablesBarInput.getValue ( ); environment.setBinding ( "inputVariablesBar", input ); - cli::Parser parser ( cli::Lexer ( "execute <:ranked_symbol #inputVariablesBar > $variablesBar" ) ); + cli::Parser parser ( cli::Lexer ( "execute <:RankedSymbol #inputVariablesBar > $variablesBar" ) ); parser.parse ( )->run ( environment ); } } diff --git a/alib2algo/src/arbology/exact/ExactPatternMatch.h b/alib2algo/src/arbology/exact/ExactPatternMatch.h index 01733ca91f..4961a83a9d 100644 --- a/alib2algo/src/arbology/exact/ExactPatternMatch.h +++ b/alib2algo/src/arbology/exact/ExactPatternMatch.h @@ -13,8 +13,6 @@ #include <alib/deque> #include <alib/foreach> -#include <alphabet/RankedSymbol.h> - #include <tree/ranked/RankedTree.h> #include <tree/ranked/RankedPattern.h> #include <tree/ranked/RankedNonlinearPattern.h> diff --git a/alib2algo/src/automaton/convert/ToPostfixPushdownAutomaton.cpp b/alib2algo/src/automaton/convert/ToPostfixPushdownAutomaton.cpp index 5c103461b1..814a8666d6 100644 --- a/alib2algo/src/automaton/convert/ToPostfixPushdownAutomaton.cpp +++ b/alib2algo/src/automaton/convert/ToPostfixPushdownAutomaton.cpp @@ -21,8 +21,6 @@ #include <registration/AlgoRegistration.hpp> -#include <alphabet/RankedSymbol.h> - namespace automaton { namespace convert { @@ -31,7 +29,7 @@ automaton::DPDA < > ToPostfixPushdownAutomaton::convert ( const automaton::DFTA automaton::DPDA < > automaton(label::InitialStateLabel::instance < DefaultStateType > ( ), alphabet::BottomOfTheStackSymbol::instance < DefaultSymbolType > ( )); for (const auto & rankedSymbol : dfta.getInputAlphabet()) { - automaton.addInputSymbol(DefaultSymbolType ( alphabet::RankedSymbol < > ( rankedSymbol ) )); + automaton.addInputSymbol ( DefaultSymbolType ( rankedSymbol ) ); } automaton.addInputSymbol(alphabet::EndSymbol::instance < DefaultSymbolType > ( )); @@ -46,7 +44,7 @@ automaton::DPDA < > ToPostfixPushdownAutomaton::convert ( const automaton::DFTA pop.push_back(state); } ext::vector<DefaultSymbolType> push (1, transition.second); - automaton.addTransition(automaton.getInitialState(), DefaultSymbolType(alphabet::RankedSymbol<>(transition.first.first)), pop, automaton.getInitialState(), push); + automaton.addTransition(automaton.getInitialState(), DefaultSymbolType ( common::ranked_symbol < > ( transition.first.first ) ), pop, automaton.getInitialState(), push); } auto finalPDAState = label::FinalStateLabel::instance < DefaultStateType > ( ); @@ -66,7 +64,7 @@ automaton::NPDA < > ToPostfixPushdownAutomaton::convert ( const automaton::NFTA automaton::NPDA < > automaton(label::InitialStateLabel::instance < DefaultStateType > ( ), alphabet::BottomOfTheStackSymbol::instance < DefaultSymbolType > ( )); for (const auto & rankedSymbol : nfta.getInputAlphabet()) { - automaton.addInputSymbol(DefaultSymbolType ( alphabet::RankedSymbol < > ( rankedSymbol ) )); + automaton.addInputSymbol ( DefaultSymbolType ( rankedSymbol ) ); } automaton.addInputSymbol(alphabet::EndSymbol::instance < DefaultSymbolType > ( )); @@ -82,7 +80,7 @@ automaton::NPDA < > ToPostfixPushdownAutomaton::convert ( const automaton::NFTA pop.push_back(state); } ext::vector <DefaultSymbolType> push(1, toState); - automaton.addTransition(automaton.getInitialState(), DefaultSymbolType(alphabet::RankedSymbol<>(transition.first.first)), pop, automaton.getInitialState(), push); + automaton.addTransition(automaton.getInitialState(), DefaultSymbolType ( common::ranked_symbol < > ( transition.first.first ) ), pop, automaton.getInitialState(), push); } } diff --git a/alib2algo/src/rte/convert/ToPostfixPushdownAutomatonGlushkovNaive.cpp b/alib2algo/src/rte/convert/ToPostfixPushdownAutomatonGlushkovNaive.cpp index f947e4569e..fd25e1808b 100644 --- a/alib2algo/src/rte/convert/ToPostfixPushdownAutomatonGlushkovNaive.cpp +++ b/alib2algo/src/rte/convert/ToPostfixPushdownAutomatonGlushkovNaive.cpp @@ -23,7 +23,7 @@ namespace rte { namespace convert { ext::vector < DefaultSymbolType > phi ( const ext::vector < common::ranked_symbol < > > & follow ) { - return ext::transform < DefaultSymbolType > ( follow, []( const common::ranked_symbol < > & symbol ) { return DefaultSymbolType ( alphabet::RankedSymbol < > ( symbol ) ); } ); + return ext::transform < DefaultSymbolType > ( follow, []( const common::ranked_symbol < > & symbol ) { return DefaultSymbolType ( symbol ); } ); } bool isSubstSymbolPresent ( const ext::set < common::ranked_symbol < > > & container, const ext::set < common::ranked_symbol < > > & substAlphabet ) { @@ -73,7 +73,7 @@ automaton::NPDA < > ToPostfixPushdownAutomatonGlushkovNaive::convert ( const rte // step 4; create pushdown store alphabet; it consists of elements of indexed RTE alphabet and BotS symbol for ( const common::ranked_symbol < > & symb : indexedRTE.getAlphabet ( ) ) - automaton.addPushdownStoreSymbol ( DefaultSymbolType ( alphabet::RankedSymbol < > ( symb ) ) ); + automaton.addPushdownStoreSymbol ( DefaultSymbolType ( symb ) ); /* DEBUG */ if ( common::GlobalData::verbose ) { @@ -111,19 +111,19 @@ automaton::NPDA < > ToPostfixPushdownAutomatonGlushkovNaive::convert ( const rte for ( const common::ranked_symbol < > & symb : indexedRTE.getAlphabet ( ) ) { if ( symb.getRank ( ) == unsigned ( 0 ) ) - automaton.addTransition ( q, rte::GlushkovIndexate::getSymbolFromGlushkovPair ( symb ).getSymbol ( ), { }, q, { DefaultSymbolType ( alphabet::RankedSymbol < > ( symb ) ) } ); + automaton.addTransition ( q, rte::GlushkovIndexate::getSymbolFromGlushkovPair ( symb ).getSymbol ( ), { }, q, { DefaultSymbolType ( symb ) } ); else for ( const ext::vector < common::ranked_symbol < > > & follow : followSet[symb] ) { ext::vector < DefaultSymbolType > fstring = phi ( follow ); std::reverse ( fstring.begin ( ), fstring.end ( ) ); - automaton.addTransition ( q, rte::GlushkovIndexate::getSymbolFromGlushkovPair ( symb ).getSymbol ( ), fstring, q, { DefaultSymbolType ( alphabet::RankedSymbol < > ( symb ) ) } ); + automaton.addTransition ( q, rte::GlushkovIndexate::getSymbolFromGlushkovPair ( symb ).getSymbol ( ), fstring, q, { DefaultSymbolType ( symb ) } ); } } for ( const common::ranked_symbol < > & symb : firstSet ) { ext::vector < DefaultSymbolType > pop; - pop.push_back ( DefaultSymbolType ( alphabet::RankedSymbol < > ( symb ) ) ); + pop.push_back ( DefaultSymbolType ( symb ) ); pop.push_back ( alphabet::BottomOfTheStackSymbol::instance < DefaultSymbolType > ( ) ); automaton.addTransition ( q, alphabet::EndSymbol::instance < DefaultSymbolType > ( ), pop, f, { } ); } diff --git a/alib2algo/src/tree/properties/BadCharacterShiftTable.h b/alib2algo/src/tree/properties/BadCharacterShiftTable.h index 388f8b91e7..6af59ee930 100644 --- a/alib2algo/src/tree/properties/BadCharacterShiftTable.h +++ b/alib2algo/src/tree/properties/BadCharacterShiftTable.h @@ -8,7 +8,6 @@ #ifndef _ARBOLOGY_BAD_CHARACTER_SHIFT_TABLE_H_ #define _ARBOLOGY_BAD_CHARACTER_SHIFT_TABLE_H_ -#include <alphabet/RankedSymbol.h> #include <tree/ranked/PrefixRankedBarPattern.h> #include <tree/ranked/PrefixRankedBarNonlinearPattern.h> diff --git a/alib2algo/src/tree/properties/LastVariableOffsetBack.h b/alib2algo/src/tree/properties/LastVariableOffsetBack.h index a498c3d37d..3112945c3f 100644 --- a/alib2algo/src/tree/properties/LastVariableOffsetBack.h +++ b/alib2algo/src/tree/properties/LastVariableOffsetBack.h @@ -8,7 +8,6 @@ #ifndef _LAST_VARIABLE_OFFSET_BACK_H_ #define _LAST_VARIABLE_OFFSET_BACK_H_ -#include <alphabet/RankedSymbol.h> #include <tree/ranked/PrefixRankedBarPattern.h> #include <tree/ranked/PrefixRankedBarNonlinearPattern.h> diff --git a/alib2algo/src/tree/properties/QuickSearchBadCharacterShiftTable.h b/alib2algo/src/tree/properties/QuickSearchBadCharacterShiftTable.h index 241be238a1..a2beb4298a 100644 --- a/alib2algo/src/tree/properties/QuickSearchBadCharacterShiftTable.h +++ b/alib2algo/src/tree/properties/QuickSearchBadCharacterShiftTable.h @@ -8,7 +8,6 @@ #ifndef _ARBOLOGY_QUICK_SEARCH_BAD_CHARACTER_SHIFT_TABLE_H_ #define _ARBOLOGY_QUICK_SEARCH_BAD_CHARACTER_SHIFT_TABLE_H_ -#include <alphabet/RankedSymbol.h> #include <tree/ranked/PrefixRankedBarPattern.h> #include <tree/ranked/PrefixRankedBarNonlinearPattern.h> diff --git a/alib2data/src/PrimitiveRegistrator.cpp b/alib2data/src/PrimitiveRegistrator.cpp index 5869172282..97e3c56552 100644 --- a/alib2data/src/PrimitiveRegistrator.cpp +++ b/alib2data/src/PrimitiveRegistrator.cpp @@ -28,9 +28,8 @@ namespace { class PrimitiveRegistrator { public: PrimitiveRegistrator ( ) { - abstraction::ContainerRegistry::registerSet < common::ranked_symbol < object::Object, unsigned > > ( "ranked_symbol" ); - abstraction::XmlContainerParserRegistry::registerSet < common::ranked_symbol < object::Object, unsigned > > ( "ranked_symbol" ); - abstraction::XmlParserRegistry::registerXmlParser < common::ranked_symbol < object::Object, unsigned > > ( "ranked_symbol" ); + abstraction::ContainerRegistry::registerSet < common::ranked_symbol < object::Object, unsigned > > ( "RankedSymbol" ); + abstraction::XmlContainerParserRegistry::registerSet < common::ranked_symbol < object::Object, unsigned > > ( "RankedSymbol" ); abstraction::XmlComposerRegistry::registerXmlComposer < ext::set < common::ranked_symbol < object::Object, unsigned > > > ( ); abstraction::XmlComposerRegistry::registerXmlComposer < common::ranked_symbol < object::Object, unsigned > > ( ); @@ -41,7 +40,6 @@ public: abstraction::XmlComposerRegistry::registerXmlComposer < ext::set < string::LinearString < > > > ( ); core::xmlApi < object::Object >::template registerXmlWriter < ext::set < common::ranked_symbol < object::Object, unsigned > > > ( ); - core::xmlApi < object::Object >::template registerXmlWriter < common::ranked_symbol < object::Object, unsigned > > ( ); core::xmlApi < object::Object >::template registerXmlWriter < ext::pair < ext::set < ext::pair < object::Object, object::Object > >, ext::variant < string::Epsilon < object::Object >, object::Object > > > ( ); core::xmlApi < object::Object >::template registerXmlWriter < ext::pair < object::Object, ext::variant < string::Epsilon < object::Object >, object::Object > > > ( ); } diff --git a/alib2data/src/alphabet/RankedSymbol.cpp b/alib2data/src/alphabet/RankedSymbol.cpp deleted file mode 100644 index 2823d73bb6..0000000000 --- a/alib2data/src/alphabet/RankedSymbol.cpp +++ /dev/null @@ -1,15 +0,0 @@ -/* - * RankedSymbol.cpp - * - * Created on: Apr 10, 2013 - * Author: Stepan Plachy - */ - -#include "RankedSymbol.h" -#include <registration/ValuePrinterRegistration.hpp> - -namespace { - -static auto valuePrinter = registration::ValuePrinterRegister < alphabet::RankedSymbol < > > ( ); - -} /* namespace */ diff --git a/alib2data/src/alphabet/RankedSymbol.h b/alib2data/src/alphabet/RankedSymbol.h deleted file mode 100644 index 157b9fa542..0000000000 --- a/alib2data/src/alphabet/RankedSymbol.h +++ /dev/null @@ -1,156 +0,0 @@ -/* - * RankedSymbol.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: Apr 10, 2013 - * Author: Stepan Plachy - */ - -#ifndef RANKED_SYMBOL_H_ -#define RANKED_SYMBOL_H_ - -#include "SymbolBase.h" -#include <common/ranked_symbol.hpp> - -#include <core/normalize.hpp> -#include <alphabet/common/SymbolNormalize.h> - -namespace alphabet { - -/** - * \brief - * Represents the adaptor of ranked symbol to class in symbol hierarchy. - * - * \tparam SymbolType used for the symbol part of the ranked symbol - * \tparam RankType used for the rank part of the ranked symbol - */ -template < class SymbolType = DefaultSymbolType, class RankType = DefaultRankType > -class RankedSymbol : public SymbolBase, public common::ranked_symbol < SymbolType, RankType > { -public: - /** - * \brief - * The constructors of raw ranked symbol are inherited here - */ - using common::ranked_symbol < SymbolType, RankType >::ranked_symbol; - - /** - * \brief - * Creates a new instance of the ranked symbol based on a raw ranked symbol - */ - explicit RankedSymbol ( common::ranked_symbol < SymbolType, RankType > symbol ) : common::ranked_symbol < SymbolType, RankType > ( std::move ( symbol ) ) { - } - - /** - * @copydoc base::CommonBase < SymbolBase >::compare ( const SymbolBase & ) const - */ - virtual int compare ( const SymbolBase & other ) const override { - if ( ext::type_index ( typeid ( * this ) ) == ext::type_index ( typeid ( other ) ) ) return this->compare ( ( decltype ( * this ) )other ); - - return ext::type_index ( typeid ( * this ) ) - ext::type_index ( typeid ( other ) ); - } - - /** - * The actual compare method - * - * \param other the other instance - * - * \returns the actual relation between two by type same symbols - */ - int compare ( const RankedSymbol & other ) const; - - /** - * Print this object as raw representation to ostream. - * - * \param out ostream where to print - * \param instance object to print - * - * \returns modified output stream - */ - friend std::ostream & operator << ( std::ostream & out, const RankedSymbol < SymbolType, RankType > & instance ) { - return out << static_cast < const common::ranked_symbol < SymbolType, RankType > & > ( instance ); - } - - /** - * Casts this instance to as compact as possible string representation. - * - * \returns string representation of the object - */ - explicit operator std::string ( ) const; - - /** - * @copydoc base::CommonBaseMiddle < SymbolBase >::operator == - */ - using SymbolBase::operator ==; - - /** - * @copydoc base::CommonBaseMiddle < SymbolBase >::operator != - */ - using SymbolBase::operator !=; - - /** - * @copydoc base::CommonBaseMiddle < SymbolBase >::operator < - */ - using SymbolBase::operator <; - - /** - * @copydoc base::CommonBaseMiddle < SymbolBase >::operator <= - */ - using SymbolBase::operator <=; - - /** - * @copydoc base::CommonBaseMiddle < SymbolBase >::operator > - */ - using SymbolBase::operator >; - - /** - * @copydoc base::CommonBaseMiddle < SymbolBase >::operator >= - */ - using SymbolBase::operator >=; -}; - -template < class SymbolType, class RankType > -int RankedSymbol < SymbolType, RankType >::compare(const RankedSymbol& other) const { - return static_cast < const common::ranked_symbol < SymbolType, RankType > & > ( * this ).compare ( static_cast < const common::ranked_symbol < SymbolType, RankType > & > ( other ) ); -} - -template < class SymbolType, class RankType > -RankedSymbol < SymbolType, RankType >::operator std::string ( ) const { - return ( std::string ) static_cast < const common::ranked_symbol < SymbolType, RankType > & > ( * this ); -} - -} /* namespace alphabet */ - -namespace core { - -template < class SymbolType, class RankType > -struct normalize < common::ranked_symbol < SymbolType, RankType > > { - static common::ranked_symbol < > eval ( common::ranked_symbol < SymbolType, RankType > && value ) { - return alphabet::SymbolNormalize::normalizeRankedSymbol ( std::move ( value ) ); - } -}; - -template < class SymbolType, class RankType > -struct normalize < alphabet::RankedSymbol < SymbolType, RankType > > { - static alphabet::RankedSymbol < > eval ( alphabet::RankedSymbol < SymbolType, RankType > && value ) { - return alphabet::RankedSymbol < > ( normalize < common::ranked_symbol < SymbolType, RankType > >::eval ( std::move ( value ) ) ); - } -}; - -} /* namespace core */ - -#endif /* RANKED_SYMBOL_H_ */ diff --git a/alib2data/src/alphabet/VariablesBarSymbol.h b/alib2data/src/alphabet/VariablesBarSymbol.h index 4aa50d4e41..ae68937536 100644 --- a/alib2data/src/alphabet/VariablesBarSymbol.h +++ b/alib2data/src/alphabet/VariablesBarSymbol.h @@ -25,7 +25,7 @@ #define VARIABLES_BAR_SYMBOL_H_ #include "SymbolBase.h" -#include "RankedSymbol.h" +#include <common/ranked_symbol.hpp> #include <object/Object.h> namespace alphabet { @@ -116,11 +116,6 @@ inline common::ranked_symbol < > VariablesBarSymbol::instance < common::ranked_s return common::ranked_symbol < > ( VariablesBarSymbol::instance < DefaultSymbolType > ( ), DefaultRankType ( 0 ) ); } -template < > -inline RankedSymbol < > VariablesBarSymbol::instance < RankedSymbol < > > ( ) { - return RankedSymbol < > ( VariablesBarSymbol::instance < common::ranked_symbol < > > ( ) ); -} - } /* namespace alphabet */ #endif /* VARIABLES_BAR_SYMBOL_H_ */ diff --git a/alib2data/src/alphabet/WildcardSymbol.h b/alib2data/src/alphabet/WildcardSymbol.h index 1c90c59325..37b61c540d 100644 --- a/alib2data/src/alphabet/WildcardSymbol.h +++ b/alib2data/src/alphabet/WildcardSymbol.h @@ -25,7 +25,7 @@ #define SUBTREE_WILDCARD_SYMBOL_H_ #include "SymbolBase.h" -#include "RankedSymbol.h" +#include <common/ranked_symbol.hpp> #include <object/Object.h> namespace alphabet { @@ -116,11 +116,6 @@ inline common::ranked_symbol < > WildcardSymbol::instance < common::ranked_symbo return common::ranked_symbol < > ( WildcardSymbol::instance < DefaultSymbolType > ( ), DefaultRankType ( 0 ) ); } -template < > -inline RankedSymbol < > WildcardSymbol::instance < RankedSymbol < > > ( ) { - return RankedSymbol < > ( WildcardSymbol::instance < common::ranked_symbol < > > ( ) ); -} - } /* namespace alphabet */ #endif /* SUBTREE_WILDCARD_SYMBOL_H_ */ diff --git a/alib2data/src/alphabet/common/SymbolNormalize.h b/alib2data/src/alphabet/common/SymbolNormalize.h index 4676f623df..73b4f24579 100644 --- a/alib2data/src/alphabet/common/SymbolNormalize.h +++ b/alib2data/src/alphabet/common/SymbolNormalize.h @@ -110,4 +110,15 @@ ext::vector < common::ranked_symbol < DefaultSymbolType, DefaultRankType > > Sym } /* namespace alphabet */ +namespace core { + +template < class SymbolType, class RankType > +struct normalize < common::ranked_symbol < SymbolType, RankType > > { + static common::ranked_symbol < > eval ( common::ranked_symbol < SymbolType, RankType > && value ) { + return alphabet::SymbolNormalize::normalizeRankedSymbol ( std::move ( value ) ); + } +}; + +} /* namespace core */ + #endif /* SYMBOL_NORMALIZE_H_ */ diff --git a/alib2data/src/alphabet/xml/RankedSymbol.cpp b/alib2data/src/alphabet/xml/RankedSymbol.cpp index 0c026372cb..75fe48d425 100644 --- a/alib2data/src/alphabet/xml/RankedSymbol.cpp +++ b/alib2data/src/alphabet/xml/RankedSymbol.cpp @@ -12,9 +12,9 @@ namespace { -static auto xmlWrite = registration::XmlWriterRegister < alphabet::RankedSymbol < > > ( ); -static auto xmlRead = registration::XmlReaderRegister < alphabet::RankedSymbol < > > ( ); +static auto xmlWrite = registration::XmlWriterRegister < common::ranked_symbol < > > ( ); +static auto xmlRead = registration::XmlReaderRegister < common::ranked_symbol < > > ( ); -static auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, alphabet::RankedSymbol < > > ( ); +static auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, common::ranked_symbol < > > ( ); } /* namespace */ diff --git a/alib2data/src/alphabet/xml/RankedSymbol.h b/alib2data/src/alphabet/xml/RankedSymbol.h index 60c86dae35..a2f1f4f39a 100644 --- a/alib2data/src/alphabet/xml/RankedSymbol.h +++ b/alib2data/src/alphabet/xml/RankedSymbol.h @@ -8,7 +8,7 @@ #ifndef _XML_RANKED_SYMBOL_H_ #define _XML_RANKED_SYMBOL_H_ -#include <alphabet/RankedSymbol.h> +#include <common/ranked_symbol.hpp> #include <core/xmlApi.hpp> #include <primitive/xml/Unsigned.h> @@ -51,34 +51,6 @@ void xmlApi < common::ranked_symbol < T, R > >::compose ( ext::deque < sax::Toke output.emplace_back ( xmlTagName ( ), sax::Token::TokenType::END_ELEMENT ); } -template < typename T, typename R > -struct xmlApi < alphabet::RankedSymbol < T, R > > { - static alphabet::RankedSymbol < T, R > parse ( ext::deque < sax::Token >::iterator & input ); - static bool first ( const ext::deque < sax::Token >::const_iterator & input ); - static const std::string & xmlTagName ( ); - static void compose ( ext::deque < sax::Token > & output, const alphabet::RankedSymbol < T, R > & data ); -}; - -template < typename T, typename R > -alphabet::RankedSymbol < T, R > xmlApi < alphabet::RankedSymbol < T, R > >::parse ( ext::deque < sax::Token >::iterator & input ) { - return alphabet::RankedSymbol < T, R > ( xmlApi < common::ranked_symbol < T, R > >::parse ( input ) ); -} - -template < typename T, typename R > -bool xmlApi < alphabet::RankedSymbol < T, R > >::first ( const ext::deque < sax::Token >::const_iterator & input ) { - return xmlApi < common::ranked_symbol < T, R > >::first ( input ); -} - -template < typename T, typename R > -const std::string & xmlApi < alphabet::RankedSymbol < T, R > >::xmlTagName ( ) { - return xmlApi < common::ranked_symbol < T, R > >::xmlTagName ( ); -} - -template < typename T, typename R > -void xmlApi < alphabet::RankedSymbol < T, R > >::compose ( ext::deque < sax::Token > & output, const alphabet::RankedSymbol < T, R > & input ) { - xmlApi < common::ranked_symbol < T, R > >::compose ( output, input ); -} - } /* namespace core */ #endif /* _XML_RANKED_SYMBOL_H_ */ diff --git a/alib2data/src/common/ranked_symbol.hpp b/alib2data/src/common/ranked_symbol.hpp index 8fb01bdee6..29e3655ab4 100644 --- a/alib2data/src/common/ranked_symbol.hpp +++ b/alib2data/src/common/ranked_symbol.hpp @@ -8,12 +8,14 @@ #ifndef RAW_RANKED_SYMBOL_H_ #define RAW_RANKED_SYMBOL_H_ +#include <alib/tuple> + +#include <core/normalize.hpp> #include <sax/FromXMLParserHelper.h> + #include <common/DefaultSymbolType.h> #include <common/DefaultRankType.h> -#include <alib/tuple> - namespace common { /** diff --git a/alib2data/src/indexes/arbology/CompressedBitParallelTreeIndex.h b/alib2data/src/indexes/arbology/CompressedBitParallelTreeIndex.h index ab0defd023..a808dcd0c0 100644 --- a/alib2data/src/indexes/arbology/CompressedBitParallelTreeIndex.h +++ b/alib2data/src/indexes/arbology/CompressedBitParallelTreeIndex.h @@ -31,7 +31,7 @@ #include <sstream> #include <common/DefaultSymbolType.h> -#include <alphabet/RankedSymbol.h> +#include <common/ranked_symbol.hpp> #include <core/components.hpp> #include <exception/CommonException.h> diff --git a/alib2data/src/indexes/arbology/FullAndLinearIndex.h b/alib2data/src/indexes/arbology/FullAndLinearIndex.h index 2025f4c2c0..b6d5842b85 100644 --- a/alib2data/src/indexes/arbology/FullAndLinearIndex.h +++ b/alib2data/src/indexes/arbology/FullAndLinearIndex.h @@ -28,7 +28,7 @@ #include <alib/compare> #include <sstream> -#include <alphabet/RankedSymbol.h> +#include <common/ranked_symbol.hpp> #include <indexes/stringology/PositionHeap.h> diff --git a/alib2data/src/indexes/arbology/NonlinearCompressedBitParallelTreeIndex.h b/alib2data/src/indexes/arbology/NonlinearCompressedBitParallelTreeIndex.h index 69a686749d..fc501c0359 100644 --- a/alib2data/src/indexes/arbology/NonlinearCompressedBitParallelTreeIndex.h +++ b/alib2data/src/indexes/arbology/NonlinearCompressedBitParallelTreeIndex.h @@ -30,7 +30,7 @@ #include <alib/compare> #include <sstream> -#include <alphabet/RankedSymbol.h> +#include <common/ranked_symbol.hpp> #include <core/components.hpp> #include <exception/CommonException.h> diff --git a/alib2data/src/indexes/arbology/NonlinearFullAndLinearIndex.h b/alib2data/src/indexes/arbology/NonlinearFullAndLinearIndex.h index 8b2206577e..89ac7b0fcb 100644 --- a/alib2data/src/indexes/arbology/NonlinearFullAndLinearIndex.h +++ b/alib2data/src/indexes/arbology/NonlinearFullAndLinearIndex.h @@ -28,7 +28,7 @@ #include <alib/compare> #include <sstream> -#include <alphabet/RankedSymbol.h> +#include <common/ranked_symbol.hpp> #include <indexes/stringology/PositionHeap.h> diff --git a/alib2data/src/rte/formal/FormalRTE.h b/alib2data/src/rte/formal/FormalRTE.h index 157a711f5f..2e3591db1f 100644 --- a/alib2data/src/rte/formal/FormalRTE.h +++ b/alib2data/src/rte/formal/FormalRTE.h @@ -40,6 +40,7 @@ #include "FormalRTEStructure.h" #include <core/normalize.hpp> +#include <alphabet/common/SymbolNormalize.h> namespace rte { diff --git a/alib2data/src/rte/xml/common/RTEToXmlComposer.h b/alib2data/src/rte/xml/common/RTEToXmlComposer.h index 80279f411f..8e9f31dcaa 100644 --- a/alib2data/src/rte/xml/common/RTEToXmlComposer.h +++ b/alib2data/src/rte/xml/common/RTEToXmlComposer.h @@ -13,8 +13,7 @@ #include <sax/Token.h> #include <core/xmlApi.hpp> -#include <common/ranked_symbol.hpp> -#include <alphabet/RankedSymbol.h> +#include <alphabet/xml/RankedSymbol.h> namespace rte { diff --git a/alib2data/src/tree/common/TreeNormalize.h b/alib2data/src/tree/common/TreeNormalize.h index e7a7499087..a730b7695b 100644 --- a/alib2data/src/tree/common/TreeNormalize.h +++ b/alib2data/src/tree/common/TreeNormalize.h @@ -10,7 +10,7 @@ #include <alib/tree> -#include <alphabet/RankedSymbol.h> +#include <common/ranked_symbol.hpp> #include <alphabet/common/SymbolNormalize.h> namespace tree { diff --git a/alib2data/test-src/alphabet/SymbolTest.cpp b/alib2data/test-src/alphabet/SymbolTest.cpp index 1abe582fa6..0ece732e72 100644 --- a/alib2data/test-src/alphabet/SymbolTest.cpp +++ b/alib2data/test-src/alphabet/SymbolTest.cpp @@ -7,7 +7,6 @@ #include "alphabet/BlankSymbol.h" #include "alphabet/StartSymbol.h" #include "alphabet/EndSymbol.h" -#include "alphabet/RankedSymbol.h" #include "alphabet/BarSymbol.h" #include <common/DefaultSymbolType.h> @@ -28,8 +27,8 @@ void SymbolTest::testOrder ( ) { alphabet::StartSymbol ss; alphabet::EndSymbol es; - alphabet::RankedSymbol < > rs1 ( DefaultSymbolType ( alphabet::BarSymbol { } ), DefaultRankType ( 0 ) ); - alphabet::RankedSymbol < > rs2 ( DefaultSymbolType ( alphabet::BarSymbol { } ), DefaultRankType ( 0 ) ); + common::ranked_symbol < > rs1 ( DefaultSymbolType ( alphabet::BarSymbol { } ), DefaultRankType ( 0 ) ); + common::ranked_symbol < > rs2 ( DefaultSymbolType ( alphabet::BarSymbol { } ), DefaultRankType ( 0 ) ); CPPUNIT_EXCLUSIVE_OR ( bs < ss, ss < bs ); CPPUNIT_EXCLUSIVE_OR ( bs < es, es < bs ); diff --git a/alib2str/src/alphabet/string/RankedSymbol.cpp b/alib2str/src/alphabet/string/RankedSymbol.cpp index 4c12d4eb64..6cbd25f748 100644 --- a/alib2str/src/alphabet/string/RankedSymbol.cpp +++ b/alib2str/src/alphabet/string/RankedSymbol.cpp @@ -12,10 +12,8 @@ namespace { -static auto stringWrite = registration::StringWriterRegister < alphabet::RankedSymbol < > > ( ); -static auto stringWrite2 = registration::StringWriterRegister < common::ranked_symbol < > > ( ); +static auto stringWrite = registration::StringWriterRegister < common::ranked_symbol < > > ( ); -static auto stringWriteGroup = registration::StringWriterRegisterTypeInGroup < object::Object, alphabet::RankedSymbol < > > ( ); -static auto stringWriteGroup2 = registration::StringWriterRegisterTypeInGroup < object::Object, common::ranked_symbol < > > ( ); +static auto stringWriteGroup = registration::StringWriterRegisterTypeInGroup < object::Object, common::ranked_symbol < > > ( ); } /* namespace */ diff --git a/alib2str/src/alphabet/string/RankedSymbol.h b/alib2str/src/alphabet/string/RankedSymbol.h index 8592e29db1..0d4640a1e7 100644 --- a/alib2str/src/alphabet/string/RankedSymbol.h +++ b/alib2str/src/alphabet/string/RankedSymbol.h @@ -8,7 +8,7 @@ #ifndef _STRING_RANKED_SYMBOL_H_ #define _STRING_RANKED_SYMBOL_H_ -#include <alphabet/RankedSymbol.h> +#include <common/ranked_symbol.hpp> #include <core/stringApi.hpp> #include <primitive/string/Unsigned.h> @@ -37,28 +37,6 @@ void stringApi < common::ranked_symbol < SymbolType, RankType > >::compose ( std core::stringApi < RankType >::compose ( output, symbol.getRank ( ) ); } -template < class SymbolType, class RankType > -struct stringApi < alphabet::RankedSymbol < SymbolType, RankType > > { - static alphabet::RankedSymbol < SymbolType, RankType > parse ( std::istream & input ); - static bool first ( std::istream & input ); - static void compose ( std::ostream & output, const alphabet::RankedSymbol < SymbolType, RankType > & symbol ); -}; - -template < class SymbolType, class RankType > -alphabet::RankedSymbol < SymbolType, RankType > stringApi < alphabet::RankedSymbol < SymbolType, RankType > >::parse ( std::istream & input ) { - return stringApi < common::ranked_symbol < SymbolType, RankType > >::parse ( input ); -} - -template < class SymbolType, class RankType > -bool stringApi < alphabet::RankedSymbol < SymbolType, RankType > >::first ( std::istream & input ) { - return stringApi < common::ranked_symbol < SymbolType, RankType > >::first ( input ); -} - -template < class SymbolType, class RankType > -void stringApi < alphabet::RankedSymbol < SymbolType, RankType > >::compose ( std::ostream & output, const alphabet::RankedSymbol < SymbolType, RankType > & symbol ) { - stringApi < common::ranked_symbol < SymbolType, RankType > >::compose ( output, symbol ); -} - } /* namespace core */ #endif /* _STRING_RANKED_SYMBOL_H_ */ -- GitLab