diff --git a/alib2algo_experimental/src/grammar/parsing/AbsorbTerminalSymbol.h b/alib2algo_experimental/src/grammar/parsing/AbsorbTerminalSymbol.h index 6ac109e685c5377ba6479571ed3083e9dea089a2..088b055235dfae1c6cfa3f2a01f69e072cc04908 100644 --- a/alib2algo_experimental/src/grammar/parsing/AbsorbTerminalSymbol.h +++ b/alib2algo_experimental/src/grammar/parsing/AbsorbTerminalSymbol.h @@ -8,7 +8,7 @@ #ifndef ABSORB_TERMINAL_SYMBOL_H_ #define ABSORB_TERMINAL_SYMBOL_H_ -#include <grammar/GrammarFeatures.h> +#include <grammar/ContextFree/CFG.h> #include <alphabet/Symbol.h> #include <alib/set> #include <alib/map> diff --git a/alib2algo_experimental/src/grammar/parsing/CornerSubstitution.h b/alib2algo_experimental/src/grammar/parsing/CornerSubstitution.h index 8d0edd36b4b8bad3ff4f3f75386facc71d6ea7ae..d577ed22e1c0534044463774a8877291191c9152 100644 --- a/alib2algo_experimental/src/grammar/parsing/CornerSubstitution.h +++ b/alib2algo_experimental/src/grammar/parsing/CornerSubstitution.h @@ -8,7 +8,7 @@ #ifndef CORNER_SUBSTITUTION_H_ #define CORNER_SUBSTITUTION_H_ -#include <grammar/GrammarFeatures.h> +#include <grammar/ContextFree/CFG.h> #include <alphabet/Symbol.h> namespace grammar { diff --git a/alib2algo_experimental/src/grammar/parsing/DeterministicLL1Grammar.h b/alib2algo_experimental/src/grammar/parsing/DeterministicLL1Grammar.h index caf6d9168523eeb483ab241ff407954bb8a9ca23..8a34cae48112cefdcaafab9224cf1689dab40e74 100644 --- a/alib2algo_experimental/src/grammar/parsing/DeterministicLL1Grammar.h +++ b/alib2algo_experimental/src/grammar/parsing/DeterministicLL1Grammar.h @@ -8,7 +8,7 @@ #ifndef DETERMINISTIC_LL_1_GRAMMAR_H_ #define DETERMINISTIC_LL_1_GRAMMAR_H_ -#include <grammar/GrammarFeatures.h> +#include <grammar/ContextFree/CFG.h> namespace grammar { diff --git a/alib2algo_experimental/src/grammar/parsing/ExtractRightContext.h b/alib2algo_experimental/src/grammar/parsing/ExtractRightContext.h index 7821f5c04c789613bcdffbb7df16eec19958ad9b..060c2741541d2fa4fd006b9366266b00e61a645d 100644 --- a/alib2algo_experimental/src/grammar/parsing/ExtractRightContext.h +++ b/alib2algo_experimental/src/grammar/parsing/ExtractRightContext.h @@ -8,7 +8,7 @@ #ifndef EXTRACT_RIGHT_CONTEXT_H_ #define EXTRACT_RIGHT_CONTEXT_H_ -#include <grammar/GrammarFeatures.h> +#include <grammar/ContextFree/CFG.h> #include <alphabet/Symbol.h> #include <alib/set> diff --git a/alib2algo_experimental/src/grammar/parsing/HandleFirstFirstConflict.h b/alib2algo_experimental/src/grammar/parsing/HandleFirstFirstConflict.h index cfc6dc16ad941b2c3459360b3f793a405cb7d6f4..25158338a03e97b9f1a640b22dc7e071b38552b8 100644 --- a/alib2algo_experimental/src/grammar/parsing/HandleFirstFirstConflict.h +++ b/alib2algo_experimental/src/grammar/parsing/HandleFirstFirstConflict.h @@ -8,7 +8,7 @@ #ifndef HANDLE_FIRST_FIRST_CONFLICT_H_ #define HANDLE_FIRST_FIRST_CONFLICT_H_ -#include <grammar/GrammarFeatures.h> +#include <grammar/ContextFree/CFG.h> #include <alphabet/Symbol.h> #include <alib/vector> diff --git a/alib2algo_experimental/src/grammar/parsing/HandleFirstFollowConflict.h b/alib2algo_experimental/src/grammar/parsing/HandleFirstFollowConflict.h index 02eb3611fec549d6b4172573575cee1d9acdb46e..18bb291c0833f0abf7fe5b7cffca63321eecc489 100644 --- a/alib2algo_experimental/src/grammar/parsing/HandleFirstFollowConflict.h +++ b/alib2algo_experimental/src/grammar/parsing/HandleFirstFollowConflict.h @@ -8,7 +8,7 @@ #ifndef HANDLE_FIRST_FOLLOW_CONFLICT_H_ #define HANDLE_FIRST_FOLLOW_CONFLICT_H_ -#include <grammar/GrammarFeatures.h> +#include <grammar/ContextFree/CFG.h> #include <alphabet/Symbol.h> #include <alib/vector> #include <alib/set> diff --git a/alib2algo_experimental/src/grammar/parsing/LeftFactorize.h b/alib2algo_experimental/src/grammar/parsing/LeftFactorize.h index e698e2225b882da54b2a13e9638f45bcd412a160..c7d51be4ceee80ec98dbd595d7822459c84d5f0a 100644 --- a/alib2algo_experimental/src/grammar/parsing/LeftFactorize.h +++ b/alib2algo_experimental/src/grammar/parsing/LeftFactorize.h @@ -9,7 +9,7 @@ #define LEFT_FACTORIZE_H_ #include <alphabet/Symbol.h> -#include <grammar/GrammarFeatures.h> +#include <grammar/ContextFree/CFG.h> namespace grammar { diff --git a/alib2algo_experimental/src/grammar/parsing/common/Substitute.h b/alib2algo_experimental/src/grammar/parsing/common/Substitute.h index 2799e225fa45c0a1e077ae1c1935e9dd4c225259..f151b80f4466f13bd1779e91437ac1cdc89ef8d7 100644 --- a/alib2algo_experimental/src/grammar/parsing/common/Substitute.h +++ b/alib2algo_experimental/src/grammar/parsing/common/Substitute.h @@ -8,7 +8,7 @@ #ifndef SUBSTITUTE_H_ #define SUBSTITUTE_H_ -#include <grammar/GrammarFeatures.h> +#include <grammar/ContextFree/CFG.h> #include <alphabet/Symbol.h> #include <alib/vector> diff --git a/alib2data/src/alphabet/Symbol.h b/alib2data/src/alphabet/Symbol.h index e981051f3c24b5bbb9e9d2d1428e46041027aab3..53cad5417327c43507bb930580aa06b00149cf70 100644 --- a/alib2data/src/alphabet/Symbol.h +++ b/alib2data/src/alphabet/Symbol.h @@ -14,7 +14,7 @@ #include <alib/set> #include <alib/string> -#include <label/LabelFeatures.h> +#include <label/Label.h> namespace alphabet { diff --git a/alib2data/src/grammar/ContextFree/CFG.h b/alib2data/src/grammar/ContextFree/CFG.h index aaee4196e0a44dbdfba47d1837fe417a65397bd0..42cf0d8dec66289f67b413383921c295d4384716 100644 --- a/alib2data/src/grammar/ContextFree/CFG.h +++ b/alib2data/src/grammar/ContextFree/CFG.h @@ -33,13 +33,16 @@ #include <core/components.hpp> #include <object/UniqueObject.h> -#include "../GrammarBase.h" -#include "../GrammarFeatures.h" -#include "../GrammarException.h" -#include "../common/GrammarNormalize.h" -#include <alphabet/common/SymbolNormalize.h> +#include <common/DefaultSymbolType.h> + +#include <grammar/GrammarBase.h> +#include <grammar/GrammarException.h> #include <core/normalize.hpp> +#include <alphabet/common/SymbolNormalize.h> +#include <grammar/common/GrammarNormalize.h> + +#include "EpsilonFreeCFG.h" namespace grammar { @@ -61,7 +64,7 @@ class InitialSymbol; * * \tparam SymbolType used for the terminal alphabet, the nonterminal alphabet, and the initial symbol of the grammar. */ -template < class SymbolType > +template < class SymbolType = DefaultSymbolType > class CFG final : public GrammarBase, public core::Components < CFG < SymbolType >, ext::set < SymbolType >, component::Set, std::tuple < TerminalAlphabet, NonterminalAlphabet >, SymbolType, component::Value, InitialSymbol > { /** * Rules function as mapping from nonterminal symbol on the left hand side to a set of sequences of terminal and nonterminal symbols. @@ -311,12 +314,6 @@ public: virtual object::ObjectBase * inc ( ) && override; }; -} /* namespace grammar */ - -#include "EpsilonFreeCFG.h" - -namespace grammar { - template < class SymbolType > CFG < SymbolType >::CFG ( SymbolType initialSymbol ) : CFG ( ext::set < SymbolType > { initialSymbol }, ext::set < SymbolType > ( ), initialSymbol ) { } diff --git a/alib2data/src/grammar/ContextFree/CNF.h b/alib2data/src/grammar/ContextFree/CNF.h index 1a1f0ccebae448d10979457fa31c8e77590171af..5f80302b7156f604e52ef3bada9d355289625bbd 100644 --- a/alib2data/src/grammar/ContextFree/CNF.h +++ b/alib2data/src/grammar/ContextFree/CNF.h @@ -34,13 +34,14 @@ #include <core/components.hpp> #include <object/UniqueObject.h> -#include "../GrammarBase.h" -#include "../GrammarFeatures.h" -#include "../GrammarException.h" -#include "../common/GrammarNormalize.h" -#include <alphabet/common/SymbolNormalize.h> +#include <common/DefaultSymbolType.h> + +#include <grammar/GrammarBase.h> +#include <grammar/GrammarException.h> #include <core/normalize.hpp> +#include <alphabet/common/SymbolNormalize.h> +#include <grammar/common/GrammarNormalize.h> namespace grammar { @@ -62,7 +63,7 @@ class InitialSymbol; * * \tparam SymbolType used for the terminal alphabet, the nonterminal alphabet, and the initial symbol of the grammar. */ -template < class SymbolType > +template < class SymbolType = DefaultSymbolType > class CNF final : public GrammarBase, public core::Components < CNF < SymbolType >, ext::set < SymbolType >, component::Set, std::tuple < TerminalAlphabet, NonterminalAlphabet >, SymbolType, component::Value, InitialSymbol > { /** * Rules function as mapping from nonterminal symbol on the left hand side to a set of sequences of terminal and nonterminal symbols. diff --git a/alib2data/src/grammar/ContextFree/EpsilonFreeCFG.h b/alib2data/src/grammar/ContextFree/EpsilonFreeCFG.h index 932b7f19a689560448a12924badf0d2662fd712c..21b37a6418a6709bb1d25d1f88ce7a041596dfc5 100644 --- a/alib2data/src/grammar/ContextFree/EpsilonFreeCFG.h +++ b/alib2data/src/grammar/ContextFree/EpsilonFreeCFG.h @@ -33,13 +33,14 @@ #include <core/components.hpp> #include <object/UniqueObject.h> -#include "../GrammarBase.h" -#include "../GrammarFeatures.h" -#include "../GrammarException.h" -#include "../common/GrammarNormalize.h" -#include <alphabet/common/SymbolNormalize.h> +#include <common/DefaultSymbolType.h> + +#include <grammar/GrammarBase.h> +#include <grammar/GrammarException.h> #include <core/normalize.hpp> +#include <alphabet/common/SymbolNormalize.h> +#include <grammar/common/GrammarNormalize.h> namespace grammar { @@ -61,7 +62,7 @@ class InitialSymbol; * * \tparam SymbolType used for the terminal alphabet, the nonterminal alphabet, and the initial symbol of the grammar. */ -template < class SymbolType > +template < class SymbolType = DefaultSymbolType > class EpsilonFreeCFG final : public GrammarBase, public core::Components < EpsilonFreeCFG < SymbolType >, ext::set < SymbolType >, component::Set, std::tuple < TerminalAlphabet, NonterminalAlphabet >, SymbolType, component::Value, InitialSymbol > { /** * Rules function as mapping from nonterminal symbol on the left hand side to a set of sequences of terminal and nonterminal symbols. diff --git a/alib2data/src/grammar/ContextFree/GNF.h b/alib2data/src/grammar/ContextFree/GNF.h index 8a9ebe1d4a560f3edeb8060d7dc746c953e2d465..42d245a4997b45231df9c49fa9dd5e9c58233ce5 100644 --- a/alib2data/src/grammar/ContextFree/GNF.h +++ b/alib2data/src/grammar/ContextFree/GNF.h @@ -33,13 +33,14 @@ #include <core/components.hpp> #include <object/UniqueObject.h> -#include "../GrammarBase.h" -#include "../GrammarFeatures.h" -#include "../GrammarException.h" -#include "../common/GrammarNormalize.h" -#include <alphabet/common/SymbolNormalize.h> +#include <common/DefaultSymbolType.h> + +#include <grammar/GrammarBase.h> +#include <grammar/GrammarException.h> #include <core/normalize.hpp> +#include <alphabet/common/SymbolNormalize.h> +#include <grammar/common/GrammarNormalize.h> namespace grammar { @@ -61,7 +62,7 @@ class InitialSymbol; * * \tparam SymbolType used for the terminal alphabet, the nonterminal alphabet, and the initial symbol of the grammar. */ -template < class SymbolType > +template < class SymbolType = DefaultSymbolType > class GNF final : public GrammarBase, public core::Components < GNF < SymbolType >, ext::set < SymbolType >, component::Set, std::tuple < TerminalAlphabet, NonterminalAlphabet >, SymbolType, component::Value, InitialSymbol > { /** * Rules function as mapping from nonterminal symbol on the left hand side to a set of sequences of terminal and nonterminal symbols. diff --git a/alib2data/src/grammar/ContextFree/LG.h b/alib2data/src/grammar/ContextFree/LG.h index 084b89cf0091edb47fdf9a3ba41212211937f029..1b071ae9d7eb5e8723c156b248b2d5425ce2f203 100644 --- a/alib2data/src/grammar/ContextFree/LG.h +++ b/alib2data/src/grammar/ContextFree/LG.h @@ -35,13 +35,14 @@ #include <core/components.hpp> #include <object/UniqueObject.h> -#include "../GrammarBase.h" -#include "../GrammarFeatures.h" -#include "../GrammarException.h" -#include "../common/GrammarNormalize.h" -#include <alphabet/common/SymbolNormalize.h> +#include <common/DefaultSymbolType.h> + +#include <grammar/GrammarBase.h> +#include <grammar/GrammarException.h> #include <core/normalize.hpp> +#include <alphabet/common/SymbolNormalize.h> +#include <grammar/common/GrammarNormalize.h> namespace grammar { @@ -63,7 +64,7 @@ class InitialSymbol; * * \tparam SymbolType used for the terminal alphabet, the nonterminal alphabet, and the initial symbol of the grammar. */ -template < class SymbolType > +template < class SymbolType = DefaultSymbolType > class LG final : public GrammarBase, public core::Components < LG < SymbolType >, ext::set < SymbolType >, component::Set, std::tuple < TerminalAlphabet, NonterminalAlphabet >, SymbolType, component::Value, InitialSymbol > { /** * Rules function as mapping from nonterminal symbol on the left hand side to a set of sequences of terminal and nonterminal symbols. diff --git a/alib2data/src/grammar/ContextSensitive/CSG.h b/alib2data/src/grammar/ContextSensitive/CSG.h index ba8d832d163dece9ec4d0baf59d7f912455a1d7d..748d7bb4a68b4d1ca0b531e9920c943a2e0929bc 100644 --- a/alib2data/src/grammar/ContextSensitive/CSG.h +++ b/alib2data/src/grammar/ContextSensitive/CSG.h @@ -33,13 +33,14 @@ #include <core/components.hpp> #include <object/UniqueObject.h> -#include "../GrammarBase.h" -#include "../GrammarFeatures.h" -#include "../GrammarException.h" -#include "../common/GrammarNormalize.h" -#include <alphabet/common/SymbolNormalize.h> +#include <common/DefaultSymbolType.h> + +#include <grammar/GrammarBase.h> +#include <grammar/GrammarException.h> #include <core/normalize.hpp> +#include <alphabet/common/SymbolNormalize.h> +#include <grammar/common/GrammarNormalize.h> namespace grammar { @@ -61,7 +62,7 @@ class InitialSymbol; * * \tparam SymbolType used for the terminal alphabet, the nonterminal alphabet, and the initial symbol of the grammar. */ -template < class SymbolType > +template < class SymbolType = DefaultSymbolType > class CSG final : public GrammarBase, public core::Components < CSG < SymbolType >, ext::set < SymbolType >, component::Set, std::tuple < TerminalAlphabet, NonterminalAlphabet >, SymbolType, component::Value, InitialSymbol > { /** * Rules function as mapping from nonterminal symbol and contexts on the left hand side to a set of sequences of terminal and nonterminal symbols. diff --git a/alib2data/src/grammar/ContextSensitive/NonContractingGrammar.h b/alib2data/src/grammar/ContextSensitive/NonContractingGrammar.h index 26f0ee9a70b59e26a86746f4ee7e701cc110d3c8..27fba1492ace8e54abd29d2831a5144592f0481b 100644 --- a/alib2data/src/grammar/ContextSensitive/NonContractingGrammar.h +++ b/alib2data/src/grammar/ContextSensitive/NonContractingGrammar.h @@ -33,13 +33,14 @@ #include <core/components.hpp> #include <object/UniqueObject.h> -#include "../GrammarBase.h" -#include "../GrammarFeatures.h" -#include "../GrammarException.h" -#include "../common/GrammarNormalize.h" -#include <alphabet/common/SymbolNormalize.h> +#include <common/DefaultSymbolType.h> + +#include <grammar/GrammarBase.h> +#include <grammar/GrammarException.h> #include <core/normalize.hpp> +#include <alphabet/common/SymbolNormalize.h> +#include <grammar/common/GrammarNormalize.h> namespace grammar { @@ -61,7 +62,7 @@ class InitialSymbol; * * \tparam SymbolType used for the terminal alphabet, the nonterminal alphabet, and the initial symbol of the grammar. */ -template < class SymbolType > +template < class SymbolType = DefaultSymbolType > class NonContractingGrammar final : public GrammarBase, public core::Components < NonContractingGrammar < SymbolType >, ext::set < SymbolType >, component::Set, std::tuple < TerminalAlphabet, NonterminalAlphabet >, SymbolType, component::Value, InitialSymbol > { /** * Rules function as mapping from nonterminal symbol on the left hand side to a set of sequences of terminal and nonterminal symbols. diff --git a/alib2data/src/grammar/GrammarFeatures.h b/alib2data/src/grammar/GrammarFeatures.h deleted file mode 100644 index 49e94fa390745ff234900dc444c5139e485da37f..0000000000000000000000000000000000000000 --- a/alib2data/src/grammar/GrammarFeatures.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * GrammarFeatures.h - * - * Created on: Jun 19, 2014 - * Author: Jan Travnicek - */ - -#ifndef GRAMMAR_FEATURES_H_ -#define GRAMMAR_FEATURES_H_ - -#include <common/DefaultSymbolType.h> - -namespace grammar { - -class Grammar; -class GrammarBase; - -template<class SymbolType = DefaultSymbolType > -class LeftLG; -template<class SymbolType = DefaultSymbolType > -class LeftRG; -template<class SymbolType = DefaultSymbolType > -class RightLG; -template<class SymbolType = DefaultSymbolType > -class RightRG; -template<class SymbolType = DefaultSymbolType > -class LG; -template<class SymbolType = DefaultSymbolType > -class CFG; -template<class SymbolType = DefaultSymbolType > -class EpsilonFreeCFG; -template<class SymbolType = DefaultSymbolType > -class CNF; -template<class SymbolType = DefaultSymbolType > -class GNF; -template<class SymbolType = DefaultSymbolType > -class CSG; -template<class SymbolType = DefaultSymbolType > -class NonContractingGrammar; -template<class SymbolType = DefaultSymbolType > -class ContextPreservingUnrestrictedGrammar; -template<class SymbolType = DefaultSymbolType > -class UnrestrictedGrammar; - -} /* namespace grammar */ - -#endif /* GRAMMAR_FEATURES_H_ */ diff --git a/alib2data/src/grammar/Regular/LeftLG.h b/alib2data/src/grammar/Regular/LeftLG.h index 88b3280862fdef9a95350ea30f8b16003b990967..0137a99030ac7a96e162c7f8876ce46a23c432c4 100644 --- a/alib2data/src/grammar/Regular/LeftLG.h +++ b/alib2data/src/grammar/Regular/LeftLG.h @@ -34,13 +34,14 @@ #include <core/components.hpp> #include <object/UniqueObject.h> -#include "../GrammarBase.h" -#include "../GrammarFeatures.h" -#include "../GrammarException.h" -#include "../common/GrammarNormalize.h" -#include <alphabet/common/SymbolNormalize.h> +#include <common/DefaultSymbolType.h> + +#include <grammar/GrammarBase.h> +#include <grammar/GrammarException.h> #include <core/normalize.hpp> +#include <alphabet/common/SymbolNormalize.h> +#include <grammar/common/GrammarNormalize.h> namespace grammar { @@ -62,7 +63,7 @@ class InitialSymbol; * * \tparam SymbolType used for the terminal alphabet, the nonterminal alphabet, and the initial symbol of the grammar. */ -template < class SymbolType > +template < class SymbolType = DefaultSymbolType > class LeftLG final : public GrammarBase, public core::Components < LeftLG < SymbolType >, ext::set < SymbolType >, component::Set, std::tuple < TerminalAlphabet, NonterminalAlphabet >, SymbolType, component::Value, InitialSymbol > { /** * Rules as mapping from nonterminal symbol on the left hand side to set of either sequence of terminal symbols or doublets of sequence of terminal symbols and nonterminal symbol. diff --git a/alib2data/src/grammar/Regular/LeftRG.h b/alib2data/src/grammar/Regular/LeftRG.h index 4d3c94483422ee95e506a74fea92272e62801e71..89f53eea50ac84585f58330d4425e67a1f458eb6 100644 --- a/alib2data/src/grammar/Regular/LeftRG.h +++ b/alib2data/src/grammar/Regular/LeftRG.h @@ -34,13 +34,14 @@ #include <core/components.hpp> #include <object/UniqueObject.h> +#include <common/DefaultSymbolType.h> + #include <grammar/GrammarBase.h> -#include <grammar/GrammarFeatures.h> #include <grammar/GrammarException.h> -#include <grammar/common/GrammarNormalize.h> -#include <alphabet/common/SymbolNormalize.h> #include <core/normalize.hpp> +#include <alphabet/common/SymbolNormalize.h> +#include <grammar/common/GrammarNormalize.h> namespace grammar { @@ -66,7 +67,7 @@ class InitialSymbol; * * \tparam SymbolType used for the terminal alphabet, the nonterminal alphabet, and the initial symbol of the grammar. */ -template < class SymbolType > +template < class SymbolType = DefaultSymbolType > class LeftRG final : public GrammarBase, public core::Components < LeftRG < SymbolType >, ext::set < SymbolType >, component::Set, std::tuple < TerminalAlphabet, NonterminalAlphabet >, SymbolType, component::Value, InitialSymbol > { /** * Rules as mapping from nonterminal symbol on the left hand side to set of either terminal symbols or doublets of terminal symbol and nonterminal symbol. diff --git a/alib2data/src/grammar/Regular/RightLG.h b/alib2data/src/grammar/Regular/RightLG.h index 4ed5386fff2f1659241cb91c81f31b2df7a88ece..ee8b24379f9ca4c5ec40007d2abd4257f55a6734 100644 --- a/alib2data/src/grammar/Regular/RightLG.h +++ b/alib2data/src/grammar/Regular/RightLG.h @@ -34,13 +34,14 @@ #include <core/components.hpp> #include <object/UniqueObject.h> -#include "../GrammarBase.h" -#include "../GrammarFeatures.h" -#include "../GrammarException.h" -#include "../common/GrammarNormalize.h" -#include <alphabet/common/SymbolNormalize.h> +#include <common/DefaultSymbolType.h> + +#include <grammar/GrammarBase.h> +#include <grammar/GrammarException.h> #include <core/normalize.hpp> +#include <alphabet/common/SymbolNormalize.h> +#include <grammar/common/GrammarNormalize.h> namespace grammar { @@ -62,7 +63,7 @@ class InitialSymbol; * * \tparam SymbolType used for the terminal alphabet, the nonterminal alphabet, and the initial symbol of the grammar. */ -template < class SymbolType > +template < class SymbolType = DefaultSymbolType > class RightLG final : public GrammarBase, public core::Components < RightLG < SymbolType >, ext::set < SymbolType >, component::Set, std::tuple < TerminalAlphabet, NonterminalAlphabet >, SymbolType, component::Value, InitialSymbol > { /** * Rules as mapping from nonterminal symbol on the left hand side to set of either sequence of terminal symbols or doublets of sequence of nonterminal symbol and terminal symbols. diff --git a/alib2data/src/grammar/Regular/RightRG.h b/alib2data/src/grammar/Regular/RightRG.h index 5c3df888eb56b2bbbdc56c7bf2453fb81e623b4a..8bed8b56e432926dcfe88f187fb996a6d8f12602 100644 --- a/alib2data/src/grammar/Regular/RightRG.h +++ b/alib2data/src/grammar/Regular/RightRG.h @@ -34,13 +34,14 @@ #include <core/components.hpp> #include <object/UniqueObject.h> -#include "../GrammarBase.h" -#include "../GrammarFeatures.h" -#include "../GrammarException.h" -#include "../common/GrammarNormalize.h" -#include <alphabet/common/SymbolNormalize.h> +#include <common/DefaultSymbolType.h> + +#include <grammar/GrammarBase.h> +#include <grammar/GrammarException.h> #include <core/normalize.hpp> +#include <alphabet/common/SymbolNormalize.h> +#include <grammar/common/GrammarNormalize.h> namespace grammar { @@ -66,7 +67,7 @@ class InitialSymbol; * * \tparam SymbolType used for the terminal alphabet, the nonterminal alphabet, and the initial symbol of the grammar. */ -template < class SymbolType > +template < class SymbolType = DefaultSymbolType > class RightRG final : public GrammarBase, public core::Components < RightRG < SymbolType >, ext::set < SymbolType >, component::Set, std::tuple < TerminalAlphabet, NonterminalAlphabet >, SymbolType, component::Value, InitialSymbol > { /** * Rules function as mapping from nonterminal symbol on the left hand side to set of either terminal symbols or doublets of terminal symbol and nonterminal symbol. diff --git a/alib2data/src/grammar/Unrestricted/ContextPreservingUnrestrictedGrammar.h b/alib2data/src/grammar/Unrestricted/ContextPreservingUnrestrictedGrammar.h index 84965ffe38be1ae56e9222533262a0f51922dddd..17e2a93124613f1ce4b2d2a014d4b4f97d716499 100644 --- a/alib2data/src/grammar/Unrestricted/ContextPreservingUnrestrictedGrammar.h +++ b/alib2data/src/grammar/Unrestricted/ContextPreservingUnrestrictedGrammar.h @@ -33,13 +33,14 @@ #include <core/components.hpp> #include <object/UniqueObject.h> -#include "../GrammarBase.h" -#include "../GrammarFeatures.h" -#include "../GrammarException.h" -#include "../common/GrammarNormalize.h" -#include <alphabet/common/SymbolNormalize.h> +#include <common/DefaultSymbolType.h> + +#include <grammar/GrammarBase.h> +#include <grammar/GrammarException.h> #include <core/normalize.hpp> +#include <alphabet/common/SymbolNormalize.h> +#include <grammar/common/GrammarNormalize.h> namespace grammar { @@ -61,7 +62,7 @@ class InitialSymbol; * * \tparam SymbolType used for the terminal alphabet, the nonterminal alphabet, and the initial symbol of the grammar. */ -template < class SymbolType > +template < class SymbolType = DefaultSymbolType > class ContextPreservingUnrestrictedGrammar final : public GrammarBase, public core::Components < ContextPreservingUnrestrictedGrammar < SymbolType >, ext::set < SymbolType >, component::Set, std::tuple < TerminalAlphabet, NonterminalAlphabet >, SymbolType, component::Value, InitialSymbol > { /** * Rules function as mapping from nonterminal symbol and contexts on the left hand side to a set of sequences of terminal and nonterminal symbols. diff --git a/alib2data/src/grammar/Unrestricted/UnrestrictedGrammar.h b/alib2data/src/grammar/Unrestricted/UnrestrictedGrammar.h index e0158d1e6fb5eb9e7d4f802dba1b016536caed04..5105e85f863e2aa475bcab6334664b23763d14eb 100644 --- a/alib2data/src/grammar/Unrestricted/UnrestrictedGrammar.h +++ b/alib2data/src/grammar/Unrestricted/UnrestrictedGrammar.h @@ -33,13 +33,14 @@ #include <core/components.hpp> #include <object/UniqueObject.h> -#include "../GrammarBase.h" -#include "../GrammarFeatures.h" -#include "../GrammarException.h" -#include "../common/GrammarNormalize.h" -#include <alphabet/common/SymbolNormalize.h> +#include <common/DefaultSymbolType.h> + +#include <grammar/GrammarBase.h> +#include <grammar/GrammarException.h> #include <core/normalize.hpp> +#include <alphabet/common/SymbolNormalize.h> +#include <grammar/common/GrammarNormalize.h> namespace grammar { @@ -61,7 +62,7 @@ class InitialSymbol; * * \tparam SymbolType used for the terminal alphabet, the nonterminal alphabet, and the initial symbol of the grammar. */ -template < class SymbolType > +template < class SymbolType = DefaultSymbolType > class UnrestrictedGrammar final : public GrammarBase, public core::Components < UnrestrictedGrammar < SymbolType >, ext::set < SymbolType >, component::Set, std::tuple < TerminalAlphabet, NonterminalAlphabet >, SymbolType, component::Value, InitialSymbol > { /** * Rules function as mapping from nonterminal symbol and contexts on the left hand side to a set of sequences of terminal and nonterminal symbols. diff --git a/alib2data/src/label/LabelFeatures.h b/alib2data/src/label/LabelFeatures.h deleted file mode 100644 index ed4327bde79f0558c02e88186faae707a35b924b..0000000000000000000000000000000000000000 --- a/alib2data/src/label/LabelFeatures.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - * LabelFeatures.h - * - * Created on: Jun 19, 2014 - * Author: Jan Travnicek - */ - -#ifndef LABEL_FEATURES_H_ -#define LABEL_FEATURES_H_ - -namespace label { - -class Label; -class LabelBase; - -class PrimitiveLabel; -class UniqueLabel; -class InitialStateLabel; -class FailStateLabel; -class FinalStateLabel; - -} /* namespace label */ - -#endif /* LABEL_FEATURES_H_ */ diff --git a/alib2data/src/string/CyclicString.h b/alib2data/src/string/CyclicString.h index 22d1e5c2656f621933828e63524faccb100837fb..a18f17c189550ed97c1915bf9893468453de9c6b 100644 --- a/alib2data/src/string/CyclicString.h +++ b/alib2data/src/string/CyclicString.h @@ -32,12 +32,15 @@ #include <core/components.hpp> #include <object/UniqueObject.h> -#include "StringBase.h" -#include "StringFeatures.h" +#include <common/DefaultSymbolType.h> + +#include <string/StringBase.h> #include <exception/CommonException.h> -#include <alphabet/common/SymbolNormalize.h> #include <core/normalize.hpp> +#include <alphabet/common/SymbolNormalize.h> + +#include "Epsilon.h" namespace string { @@ -57,7 +60,7 @@ class GeneralAlphabet; * * \tparam SymbolType used for the terminal alphabet */ -template < class SymbolType > +template < class SymbolType = DefaultSymbolType > class CyclicString final : public StringBase, public core::Components < CyclicString < SymbolType >, ext::set < SymbolType >, component::Set, GeneralAlphabet > { /** * Representation of the string content. diff --git a/alib2data/src/string/Epsilon.h b/alib2data/src/string/Epsilon.h index 7b6655c6fe1a8b785df4967a0174573f9252c2a1..e862b45c5da4d9b20c19c440827dcb91cc38bb88 100644 --- a/alib2data/src/string/Epsilon.h +++ b/alib2data/src/string/Epsilon.h @@ -30,11 +30,13 @@ #include <core/components.hpp> #include <object/UniqueObject.h> -#include "StringBase.h" -#include "StringFeatures.h" -#include <alphabet/common/SymbolNormalize.h> +#include <common/DefaultSymbolType.h> + +#include <string/StringBase.h> +#include <exception/CommonException.h> #include <core/normalize.hpp> +#include <alphabet/common/SymbolNormalize.h> namespace string { @@ -54,7 +56,7 @@ class GeneralAlphabet; * * \tparam SymbolType used for the terminal alphabet */ -template < class SymbolType > +template < class SymbolType = DefaultSymbolType > class Epsilon final : public StringBase, public core::Components < Epsilon < SymbolType >, ext::set < SymbolType >, component::Set, GeneralAlphabet > { /** * Representation of the epsilon content. diff --git a/alib2data/src/string/LinearString.h b/alib2data/src/string/LinearString.h index 8e252c720af896c9c94f3d3ebe31e104103591ec..45dd9bb1a7d6fb64bfc981ba104037a83c5c0594 100644 --- a/alib2data/src/string/LinearString.h +++ b/alib2data/src/string/LinearString.h @@ -32,12 +32,15 @@ #include <core/components.hpp> #include <object/UniqueObject.h> -#include "StringBase.h" -#include "StringFeatures.h" +#include <common/DefaultSymbolType.h> + +#include <string/StringBase.h> #include <exception/CommonException.h> -#include <alphabet/common/SymbolNormalize.h> #include <core/normalize.hpp> +#include <alphabet/common/SymbolNormalize.h> + +#include "Epsilon.h" namespace string { @@ -54,7 +57,7 @@ class GeneralAlphabet; * * \tparam SymbolType used for the terminal alphabet */ -template < class SymbolType > +template < class SymbolType = DefaultSymbolType > class LinearString final : public StringBase, public core::Components < LinearString < SymbolType >, ext::set < SymbolType >, component::Set, GeneralAlphabet > { /** * Representation of the string content. diff --git a/alib2data/src/string/StringFeatures.h b/alib2data/src/string/StringFeatures.h deleted file mode 100644 index a0dd06fc26d1a451e22d9ea04aa8729dec0db919..0000000000000000000000000000000000000000 --- a/alib2data/src/string/StringFeatures.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - * StringFeatures.h - * - * Created on: Jun 19, 2014 - * Author: Jan Travnicek - */ - -#ifndef STRING_FEATURES_H_ -#define STRING_FEATURES_H_ - -#include <common/DefaultSymbolType.h> - -namespace string { - -class String; -class StringBase; - -template < class SymbolType = DefaultSymbolType > -class Epsilon; -template < class SymbolType = DefaultSymbolType > -class LinearString; -template < class SymbolType = DefaultSymbolType > -class WildcardLinearString; -template < class SymbolType = DefaultSymbolType > -class CyclicString; - -} /* namespace string */ - -#endif /* STRING_FEATURES_H_ */ diff --git a/alib2data/src/string/WildcardLinearString.h b/alib2data/src/string/WildcardLinearString.h index 67ba0e27da51e4cecc7c2edf8e5e5c257c5d79c0..93daf8143fdbee4b1e05e6617bdb30320568777d 100644 --- a/alib2data/src/string/WildcardLinearString.h +++ b/alib2data/src/string/WildcardLinearString.h @@ -16,15 +16,16 @@ #include <core/components.hpp> #include <object/UniqueObject.h> -#include "StringBase.h" -#include "StringFeatures.h" -#include "LinearString.h" -#include <exception/CommonException.h> -#include <alphabet/common/SymbolNormalize.h> - #include <alphabet/WildcardSymbol.h> +#include <common/DefaultSymbolType.h> + +#include <string/StringBase.h> +#include <exception/CommonException.h> #include <core/normalize.hpp> +#include <alphabet/common/SymbolNormalize.h> + +#include "LinearString.h" namespace string { @@ -43,7 +44,7 @@ class WildcardSymbol; * * \tparam SymbolType used for the terminal alphabet */ -template < class SymbolType > +template < class SymbolType = DefaultSymbolType > class WildcardLinearString final : public StringBase, public core::Components < WildcardLinearString < SymbolType >, ext::set < SymbolType >, component::Set, GeneralAlphabet, SymbolType, component::Value, WildcardSymbol > { /** * Representation of the string content. diff --git a/alib2data_experimental/src/string/LinearStringTerminatingSymbol.h b/alib2data_experimental/src/string/LinearStringTerminatingSymbol.h index 5947d522e6f654befb85f5665598fe67aebc0bc1..196cd30c13e5856787ef9fbf097b701a0803b723 100644 --- a/alib2data_experimental/src/string/LinearStringTerminatingSymbol.h +++ b/alib2data_experimental/src/string/LinearStringTerminatingSymbol.h @@ -14,7 +14,6 @@ #include <alib/deque> #include <string/StringBase.h> -#include <string/StringFeatures.h> #include <alphabet/Symbol.h> #include <core/components.hpp> @@ -22,6 +21,8 @@ #include <sax/Token.h> #include <core/xmlApi.hpp> +#include <string/LinearString.h> + namespace string { class GeneralAlphabet;