From d7a9a9bd8e265a9412a6c63df891f863c546b143 Mon Sep 17 00:00:00 2001 From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz> Date: Tue, 9 Jun 2015 09:06:42 +0200 Subject: [PATCH] optimize includes in alphabet --- alib2data/src/XmlApi.cpp | 13 +++++++++++++ alib2data/src/alphabet/Alphabet.h | 3 +-- alib2data/src/alphabet/BarSymbol.h | 2 +- alib2data/src/alphabet/BlankSymbol.h | 2 +- alib2data/src/alphabet/BottomOfTheStackSymbol.h | 2 +- alib2data/src/alphabet/EndSymbol.h | 2 +- alib2data/src/alphabet/LabeledSymbol.h | 1 - alib2data/src/alphabet/NextSymbol.h | 5 ++--- alib2data/src/alphabet/RankedSymbol.h | 3 --- alib2data/src/alphabet/StartSymbol.h | 2 +- alib2data/src/alphabet/SubtreeWildcardSymbol.h | 2 +- alib2data/src/alphabet/Symbol.h | 13 ++++++++++++- alib2data/src/alphabet/SymbolFeatures.h | 15 +++++++++++++++ .../src/alphabet/SymbolFromStringLexer.cpp | 1 - alib2data/src/alphabet/SymbolFromStringLexer.h | 2 +- .../src/alphabet/SymbolFromStringParser.cpp | 2 -- alib2data/src/alphabet/SymbolFromStringParser.h | 2 +- alib2data/src/alphabet/SymbolFromXMLParser.cpp | 15 ++++++++++++++- alib2data/src/alphabet/SymbolFromXMLParser.h | 16 ---------------- alib2data/src/alphabet/SymbolPairSymbol.h | 4 ---- alib2data/src/alphabet/SymbolSetSymbol.h | 4 ---- alib2data/src/alphabet/SymbolToXMLComposer.cpp | 6 ++++++ alib2data/src/alphabet/SymbolToXMLComposer.h | 1 - alib2data/src/alphabet/UniqueSymbol.h | 5 ----- alib2data/src/alphabet/VariablesBarSymbol.h | 2 +- alib2data/src/object/ObjectBase.h | 17 +---------------- alib2data/test-src/alphabet/SymbolTest.cpp | 2 ++ alib2data/test-src/automaton/AutomatonTest.cpp | 1 + alib2data/test-src/tree/PatternTest.cpp | 3 ++- alib2data/test-src/tree/TreeTest.cpp | 2 +- 30 files changed, 79 insertions(+), 71 deletions(-) diff --git a/alib2data/src/XmlApi.cpp b/alib2data/src/XmlApi.cpp index 716ecdc511..aa44642a31 100644 --- a/alib2data/src/XmlApi.cpp +++ b/alib2data/src/XmlApi.cpp @@ -7,6 +7,19 @@ #include "XmlApi.hpp" +#include "alphabet/LabeledSymbol.h" +#include "alphabet/BlankSymbol.h" +#include "alphabet/BottomOfTheStackSymbol.h" +#include "alphabet/BarSymbol.h" +#include "alphabet/VariablesBarSymbol.h" +#include "alphabet/StartSymbol.h" +#include "alphabet/EndSymbol.h" +#include "alphabet/RankedSymbol.h" +#include "alphabet/SymbolPairSymbol.h" +#include "alphabet/SymbolSetSymbol.h" +#include "alphabet/SubtreeWildcardSymbol.h" +#include "alphabet/UniqueSymbol.h" + namespace alib { const label::LabelFromXMLParser FromXMLParsers::labelParser; diff --git a/alib2data/src/alphabet/Alphabet.h b/alib2data/src/alphabet/Alphabet.h index 0dce3a5704..806fc6bae2 100644 --- a/alib2data/src/alphabet/Alphabet.h +++ b/alib2data/src/alphabet/Alphabet.h @@ -8,10 +8,9 @@ #ifndef ALPHABET_H_ #define ALPHABET_H_ -#include <iostream> #include <set> -#include "../alphabet/Symbol.h" +#include "Symbol.h" namespace alphabet { diff --git a/alib2data/src/alphabet/BarSymbol.h b/alib2data/src/alphabet/BarSymbol.h index 11cae0120c..fcb16661e2 100644 --- a/alib2data/src/alphabet/BarSymbol.h +++ b/alib2data/src/alphabet/BarSymbol.h @@ -8,7 +8,7 @@ #ifndef BAR_SYMBOL_H_ #define BAR_SYMBOL_H_ -#include "Symbol.h" +#include "SymbolBase.h" namespace alphabet { diff --git a/alib2data/src/alphabet/BlankSymbol.h b/alib2data/src/alphabet/BlankSymbol.h index f404638d51..36096a238d 100644 --- a/alib2data/src/alphabet/BlankSymbol.h +++ b/alib2data/src/alphabet/BlankSymbol.h @@ -8,7 +8,7 @@ #ifndef BLANK_SYMBOL_H_ #define BLANK_SYMBOL_H_ -#include "Symbol.h" +#include "SymbolBase.h" namespace alphabet { diff --git a/alib2data/src/alphabet/BottomOfTheStackSymbol.h b/alib2data/src/alphabet/BottomOfTheStackSymbol.h index 187781882f..0fc54fcf27 100644 --- a/alib2data/src/alphabet/BottomOfTheStackSymbol.h +++ b/alib2data/src/alphabet/BottomOfTheStackSymbol.h @@ -8,7 +8,7 @@ #ifndef BOTTOM_OF_THE_STACK_SYMBOL_H_ #define BOTTOM_OF_THE_STACK_SYMBOL_H_ -#include "Symbol.h" +#include "SymbolBase.h" namespace alphabet { diff --git a/alib2data/src/alphabet/EndSymbol.h b/alib2data/src/alphabet/EndSymbol.h index c71c829f1a..ab6c21b4cc 100644 --- a/alib2data/src/alphabet/EndSymbol.h +++ b/alib2data/src/alphabet/EndSymbol.h @@ -8,7 +8,7 @@ #ifndef END_SYMBOL_H_ #define END_SYMBOL_H_ -#include "Symbol.h" +#include "SymbolBase.h" namespace alphabet { diff --git a/alib2data/src/alphabet/LabeledSymbol.h b/alib2data/src/alphabet/LabeledSymbol.h index 32aa076f1b..9c5b480829 100644 --- a/alib2data/src/alphabet/LabeledSymbol.h +++ b/alib2data/src/alphabet/LabeledSymbol.h @@ -10,7 +10,6 @@ #include "../label/Label.h" #include "SymbolBase.h" -#include <ostream> namespace alphabet { diff --git a/alib2data/src/alphabet/NextSymbol.h b/alib2data/src/alphabet/NextSymbol.h index a01a5b330f..9d0586fc83 100644 --- a/alib2data/src/alphabet/NextSymbol.h +++ b/alib2data/src/alphabet/NextSymbol.h @@ -8,9 +8,8 @@ #ifndef NEXT_SYMBOL_H_ #define NEXT_SYMBOL_H_ -#include <list> -#include "Symbol.h" -#include "../sax/Token.h" +#include "SymbolFeatures.h" +#include "SymbolBase.h" namespace alphabet { diff --git a/alib2data/src/alphabet/RankedSymbol.h b/alib2data/src/alphabet/RankedSymbol.h index 3d053b037d..387077813a 100644 --- a/alib2data/src/alphabet/RankedSymbol.h +++ b/alib2data/src/alphabet/RankedSymbol.h @@ -8,10 +8,7 @@ #ifndef RANKED_SYMBOL_H_ #define RANKED_SYMBOL_H_ -#include "../label/Label.h" -#include "SymbolBase.h" #include "Symbol.h" -#include <ostream> #include "../primitive/Unsigned.h" namespace alphabet { diff --git a/alib2data/src/alphabet/StartSymbol.h b/alib2data/src/alphabet/StartSymbol.h index 09a7d8e1cf..ca0631db3a 100644 --- a/alib2data/src/alphabet/StartSymbol.h +++ b/alib2data/src/alphabet/StartSymbol.h @@ -8,7 +8,7 @@ #ifndef START_SYMBOL_H_ #define START_SYMBOL_H_ -#include "Symbol.h" +#include "SymbolBase.h" namespace alphabet { diff --git a/alib2data/src/alphabet/SubtreeWildcardSymbol.h b/alib2data/src/alphabet/SubtreeWildcardSymbol.h index fb2094334e..0c737efa12 100644 --- a/alib2data/src/alphabet/SubtreeWildcardSymbol.h +++ b/alib2data/src/alphabet/SubtreeWildcardSymbol.h @@ -8,7 +8,7 @@ #ifndef SUBTREE_WILDCARD_SYMBOL_H_ #define SUBTREE_WILDCARD_SYMBOL_H_ -#include "Symbol.h" +#include "SymbolBase.h" namespace alphabet { diff --git a/alib2data/src/alphabet/Symbol.h b/alib2data/src/alphabet/Symbol.h index 12f893d68a..8b06ad97ba 100644 --- a/alib2data/src/alphabet/Symbol.h +++ b/alib2data/src/alphabet/Symbol.h @@ -19,7 +19,18 @@ namespace alphabet { /** * Wrapper around automata. */ -typedef alib::wrapper<SymbolBase> Symbol; +class Symbol : public alib::wrapper<SymbolBase> { +public: + explicit Symbol(SymbolBase* data) : alib::wrapper<SymbolBase>(data) { + } + + explicit Symbol(const SymbolBase& data) : alib::wrapper<SymbolBase>(data.clone()) { + } + + explicit Symbol(SymbolBase&& data) : alib::wrapper<SymbolBase>(std::move(data).plunder()) { + } + +}; /** * Creates and adds unique state to grammar. If given state name is diff --git a/alib2data/src/alphabet/SymbolFeatures.h b/alib2data/src/alphabet/SymbolFeatures.h index 6b7b586b81..65c3e03060 100644 --- a/alib2data/src/alphabet/SymbolFeatures.h +++ b/alib2data/src/alphabet/SymbolFeatures.h @@ -25,6 +25,21 @@ enum class FEATURES { START }; +class Symbol; + +class LabeledSymbol; +class BlankSymbol; +class BottomOfTheStackSymbol; +class EndSymbol; +class StartSymbol; +class RankedSymbol; +class BarSymbol; +class VariablesBarSymbol; +class SubtreeWildcardSymbol; +class SymbolPairSymbol; +class SymbolSetSymbol; +class UniqueSymbol; + } /* namespace alphabet */ #endif /* SYMBOL_FEATURES_H_ */ diff --git a/alib2data/src/alphabet/SymbolFromStringLexer.cpp b/alib2data/src/alphabet/SymbolFromStringLexer.cpp index e7617cfd8a..ee9f115eba 100644 --- a/alib2data/src/alphabet/SymbolFromStringLexer.cpp +++ b/alib2data/src/alphabet/SymbolFromStringLexer.cpp @@ -6,7 +6,6 @@ */ #include "SymbolFromStringLexer.h" -#include "../label/LabelFromStringLexer.h" namespace alphabet { diff --git a/alib2data/src/alphabet/SymbolFromStringLexer.h b/alib2data/src/alphabet/SymbolFromStringLexer.h index 49f080924a..1130a66d44 100644 --- a/alib2data/src/alphabet/SymbolFromStringLexer.h +++ b/alib2data/src/alphabet/SymbolFromStringLexer.h @@ -9,7 +9,7 @@ #define SYMBOL_FROM_STRING_LEXER_H_ #include <string> -#include <sstream> +#include <istream> namespace alphabet { diff --git a/alib2data/src/alphabet/SymbolFromStringParser.cpp b/alib2data/src/alphabet/SymbolFromStringParser.cpp index e75cfc7881..9972f6e58b 100644 --- a/alib2data/src/alphabet/SymbolFromStringParser.cpp +++ b/alib2data/src/alphabet/SymbolFromStringParser.cpp @@ -13,8 +13,6 @@ #include "StartSymbol.h" #include "LabeledSymbol.h" -#include "../label/Label.h" - #include "../StringApi.hpp" namespace alphabet { diff --git a/alib2data/src/alphabet/SymbolFromStringParser.h b/alib2data/src/alphabet/SymbolFromStringParser.h index 5d467712a1..a8ddbbdc89 100644 --- a/alib2data/src/alphabet/SymbolFromStringParser.h +++ b/alib2data/src/alphabet/SymbolFromStringParser.h @@ -8,9 +8,9 @@ #ifndef SYMBOL_FROM_STRING_PARSER_H_ #define SYMBOL_FROM_STRING_PARSER_H_ -#include "Symbol.h" #include "SymbolFromStringLexer.h" #include "SymbolFeatures.h" +#include <set> namespace alib { diff --git a/alib2data/src/alphabet/SymbolFromXMLParser.cpp b/alib2data/src/alphabet/SymbolFromXMLParser.cpp index 4fa0ce2579..29941d4b00 100644 --- a/alib2data/src/alphabet/SymbolFromXMLParser.cpp +++ b/alib2data/src/alphabet/SymbolFromXMLParser.cpp @@ -8,10 +8,23 @@ #include "SymbolFromXMLParser.h" #include "../sax/ParserException.h" -#include "../label/Label.h" #include "../XmlApi.hpp" +#include "Symbol.h" +#include "BlankSymbol.h" +#include "BottomOfTheStackSymbol.h" +#include "EndSymbol.h" +#include "StartSymbol.h" +#include "LabeledSymbol.h" +#include "RankedSymbol.h" +#include "BarSymbol.h" +#include "VariablesBarSymbol.h" +#include "SubtreeWildcardSymbol.h" +#include "SymbolPairSymbol.h" +#include "SymbolSetSymbol.h" +#include "UniqueSymbol.h" + namespace alphabet { Symbol SymbolFromXMLParser::parseSymbol(std::deque<sax::Token>::iterator& input) const { diff --git a/alib2data/src/alphabet/SymbolFromXMLParser.h b/alib2data/src/alphabet/SymbolFromXMLParser.h index f21c8da768..2c0a2eca3e 100644 --- a/alib2data/src/alphabet/SymbolFromXMLParser.h +++ b/alib2data/src/alphabet/SymbolFromXMLParser.h @@ -9,25 +9,9 @@ #define SYMBOL_FROM_XML_PARSER_H_ #include "../sax/FromXMLParserHelper.h" -#include <vector> #include <set> -#include "Symbol.h" #include "SymbolFeatures.h" #include "../sax/Token.h" -#include "../label/Label.h" - -#include "BlankSymbol.h" -#include "BottomOfTheStackSymbol.h" -#include "EndSymbol.h" -#include "StartSymbol.h" -#include "LabeledSymbol.h" -#include "RankedSymbol.h" -#include "BarSymbol.h" -#include "VariablesBarSymbol.h" -#include "SubtreeWildcardSymbol.h" -#include "SymbolPairSymbol.h" -#include "SymbolSetSymbol.h" -#include "UniqueSymbol.h" namespace alib { diff --git a/alib2data/src/alphabet/SymbolPairSymbol.h b/alib2data/src/alphabet/SymbolPairSymbol.h index c0f2fa411b..355a52d49f 100644 --- a/alib2data/src/alphabet/SymbolPairSymbol.h +++ b/alib2data/src/alphabet/SymbolPairSymbol.h @@ -8,11 +8,7 @@ #ifndef SYMBOL_PAIR_SYMBOL_H_ #define SYMBOL_PAIR_SYMBOL_H_ -#include <string> -#include <ostream> - #include "Symbol.h" -#include "SymbolBase.h" #include <pair> namespace alphabet { diff --git a/alib2data/src/alphabet/SymbolSetSymbol.h b/alib2data/src/alphabet/SymbolSetSymbol.h index 70286e2363..d2fa117dac 100644 --- a/alib2data/src/alphabet/SymbolSetSymbol.h +++ b/alib2data/src/alphabet/SymbolSetSymbol.h @@ -8,11 +8,7 @@ #ifndef SYMBOL_SET_SYMBOL_H_ #define SYMBOL_SET_SYMBOL_H_ -#include <string> -#include <ostream> - #include "Symbol.h" -#include "SymbolBase.h" #include <set> namespace alphabet { diff --git a/alib2data/src/alphabet/SymbolToXMLComposer.cpp b/alib2data/src/alphabet/SymbolToXMLComposer.cpp index b21e0b423c..9971cf0705 100644 --- a/alib2data/src/alphabet/SymbolToXMLComposer.cpp +++ b/alib2data/src/alphabet/SymbolToXMLComposer.cpp @@ -9,6 +9,12 @@ #include "../XmlApi.hpp" +#include "LabeledSymbol.h" +#include "RankedSymbol.h" +#include "SymbolPairSymbol.h" +#include "SymbolSetSymbol.h" +#include "UniqueSymbol.h" + namespace alphabet { void SymbolToXMLComposer::compose(std::deque<sax::Token>& out, const Symbol& symbol) const { diff --git a/alib2data/src/alphabet/SymbolToXMLComposer.h b/alib2data/src/alphabet/SymbolToXMLComposer.h index cf8701a3c1..fb254e4450 100644 --- a/alib2data/src/alphabet/SymbolToXMLComposer.h +++ b/alib2data/src/alphabet/SymbolToXMLComposer.h @@ -11,7 +11,6 @@ #include <deque> #include "Symbol.h" #include "../sax/Token.h" -#include "../label/Label.h" namespace alib { diff --git a/alib2data/src/alphabet/UniqueSymbol.h b/alib2data/src/alphabet/UniqueSymbol.h index 40a5f89b0f..d5c85fd7cd 100644 --- a/alib2data/src/alphabet/UniqueSymbol.h +++ b/alib2data/src/alphabet/UniqueSymbol.h @@ -8,12 +8,7 @@ #ifndef SYMBOL_ID_SYMBOL_H_ #define SYMBOL_ID_SYMBOL_H_ -#include <string> -#include <ostream> - #include "Symbol.h" -#include "SymbolBase.h" -#include <set> #include "../primitive/Integer.h" namespace alphabet { diff --git a/alib2data/src/alphabet/VariablesBarSymbol.h b/alib2data/src/alphabet/VariablesBarSymbol.h index f1ed01f07d..82d8367a7d 100644 --- a/alib2data/src/alphabet/VariablesBarSymbol.h +++ b/alib2data/src/alphabet/VariablesBarSymbol.h @@ -8,7 +8,7 @@ #ifndef VARIABLES_BAR_SYMBOL_H_ #define VARIABLES_BAR_SYMBOL_H_ -#include "Symbol.h" +#include "SymbolBase.h" namespace alphabet { diff --git a/alib2data/src/object/ObjectBase.h b/alib2data/src/object/ObjectBase.h index f6649b1100..7d56974867 100644 --- a/alib2data/src/object/ObjectBase.h +++ b/alib2data/src/object/ObjectBase.h @@ -100,22 +100,7 @@ class Epsilon; } -namespace alphabet { - -class StartSymbol; -class LabeledSymbol; -class BlankSymbol; -class BottomOfTheStackSymbol; -class RankedSymbol; -class BarSymbol; -class VariablesBarSymbol; -class SubtreeWildcardSymbol; -class SymbolSetSymbol; -class SymbolPairSymbol; -class UniqueSymbol; -class EndSymbol; - -} +#include "../alphabet/SymbolFeatures.h" namespace container { diff --git a/alib2data/test-src/alphabet/SymbolTest.cpp b/alib2data/test-src/alphabet/SymbolTest.cpp index abdec2a3cd..6624695729 100644 --- a/alib2data/test-src/alphabet/SymbolTest.cpp +++ b/alib2data/test-src/alphabet/SymbolTest.cpp @@ -7,6 +7,8 @@ #include "alphabet/Symbol.h" #include "alphabet/LabeledSymbol.h" #include "alphabet/BlankSymbol.h" +#include "alphabet/StartSymbol.h" +#include "alphabet/EndSymbol.h" #include "factory/XmlDataFactory.hpp" #include "factory/StringDataFactory.hpp" diff --git a/alib2data/test-src/automaton/AutomatonTest.cpp b/alib2data/test-src/automaton/AutomatonTest.cpp index 8779db6825..4b8383a0ab 100644 --- a/alib2data/test-src/automaton/AutomatonTest.cpp +++ b/alib2data/test-src/automaton/AutomatonTest.cpp @@ -15,6 +15,7 @@ #include "factory/StringDataFactory.hpp" #include "alphabet/LabeledSymbol.h" +#include "alphabet/BottomOfTheStackSymbol.h" #include "regexp/RegExp.h" #include "regexp/unbounded/UnboundedRegExp.h" diff --git a/alib2data/test-src/tree/PatternTest.cpp b/alib2data/test-src/tree/PatternTest.cpp index d943e0b11d..4af5a23692 100644 --- a/alib2data/test-src/tree/PatternTest.cpp +++ b/alib2data/test-src/tree/PatternTest.cpp @@ -13,7 +13,8 @@ #include "alphabet/RankedSymbol.h" #include "alphabet/SubtreeWildcardSymbol.h" - +#include "alphabet/BarSymbol.h" +#include "alphabet/VariablesBarSymbol.h" #define CPPUNIT_IMPLY(x, y) CPPUNIT_ASSERT(!(x) || (y)) diff --git a/alib2data/test-src/tree/TreeTest.cpp b/alib2data/test-src/tree/TreeTest.cpp index f957fe0bf4..698479fcfd 100644 --- a/alib2data/test-src/tree/TreeTest.cpp +++ b/alib2data/test-src/tree/TreeTest.cpp @@ -14,7 +14,7 @@ #include "alphabet/RankedSymbol.h" #include "alphabet/SubtreeWildcardSymbol.h" - +#include "alphabet/BarSymbol.h" #define CPPUNIT_IMPLY(x, y) CPPUNIT_ASSERT(!(x) || (y)) -- GitLab