diff --git a/alib2data/src/alphabet/BarSymbol.h b/alib2data/src/alphabet/BarSymbol.h index e619a832b9d713f0a211d0fdaf183d1f9f1005ed..e155487cf6f4174fdb3c6c8f1e71b48f97dc5230 100644 --- a/alib2data/src/alphabet/BarSymbol.h +++ b/alib2data/src/alphabet/BarSymbol.h @@ -11,6 +11,7 @@ #include "SymbolBase.h" #include "Symbol.h" #include <object/Object.h> +#include <common/ranked_symbol.hpp> namespace alphabet { @@ -75,6 +76,11 @@ inline object::Object BarSymbol::instance < object::Object > ( ) { return object::Object ( BarSymbol ( ) ); } +template < > +inline common::ranked_symbol < > BarSymbol::instance < common::ranked_symbol < > > ( ) { + return common::ranked_symbol < > ( BarSymbol::instance < DefaultSymbolType > ( ), DefaultRankType ( 0 ) ); +} + } /* namespace alphabet */ #endif /* BAR_SYMBOL_H_ */ diff --git a/alib2data/src/alphabet/BlankSymbol.h b/alib2data/src/alphabet/BlankSymbol.h index ab3ee3d820efd2b83a8d31022e459426a172438d..044e516807b8eecbef32164beb03b2f01111d63b 100644 --- a/alib2data/src/alphabet/BlankSymbol.h +++ b/alib2data/src/alphabet/BlankSymbol.h @@ -11,6 +11,7 @@ #include "SymbolBase.h" #include "Symbol.h" #include <object/Object.h> +#include <common/ranked_symbol.hpp> namespace alphabet { @@ -55,6 +56,11 @@ inline typename std::enable_if < std::is_integral < Base >::value, Base >::type return ' '; } +template < > +inline object::Object BlankSymbol::instance < object::Object > ( ) { + return object::Object ( BlankSymbol ( ) ); +} + template < > inline std::string BlankSymbol::instance < std::string > ( ) { return std::string ( 1, BlankSymbol::instance < char > ( ) ); @@ -71,8 +77,8 @@ inline Symbol BlankSymbol::instance < Symbol > ( ) { } template < > -inline object::Object BlankSymbol::instance < object::Object > ( ) { - return object::Object ( BlankSymbol ( ) ); +inline common::ranked_symbol < > BlankSymbol::instance < common::ranked_symbol < > > ( ) { + return common::ranked_symbol < > ( BlankSymbol::instance < DefaultSymbolType > ( ), DefaultRankType ( 0 ) ); } } /* namespace alphabet */ diff --git a/alib2data/src/alphabet/BottomOfTheStackSymbol.h b/alib2data/src/alphabet/BottomOfTheStackSymbol.h index 12040d49b021f64e57bbf238596fbb22bccc36ed..c85c33cd9596133cdb4d84a7a8d469bfe0a70019 100644 --- a/alib2data/src/alphabet/BottomOfTheStackSymbol.h +++ b/alib2data/src/alphabet/BottomOfTheStackSymbol.h @@ -11,6 +11,7 @@ #include "SymbolBase.h" #include "Symbol.h" #include <object/Object.h> +#include <common/ranked_symbol.hpp> namespace alphabet { @@ -55,6 +56,11 @@ inline typename std::enable_if < std::is_integral < Base >::value, Base >::type return '_'; } +template < > +inline object::Object BottomOfTheStackSymbol::instance < object::Object > ( ) { + return object::Object ( BottomOfTheStackSymbol ( ) ); +} + template < > inline std::string BottomOfTheStackSymbol::instance < std::string > ( ) { return std::string ( 1, BottomOfTheStackSymbol::instance < char > ( ) ); @@ -71,8 +77,8 @@ inline Symbol BottomOfTheStackSymbol::instance < Symbol > ( ) { } template < > -inline object::Object BottomOfTheStackSymbol::instance < object::Object > ( ) { - return object::Object ( BottomOfTheStackSymbol ( ) ); +inline common::ranked_symbol < > BottomOfTheStackSymbol::instance < common::ranked_symbol < > > ( ) { + return common::ranked_symbol < > ( BottomOfTheStackSymbol::instance < DefaultSymbolType > ( ), DefaultRankType ( 0 ) ); } } /* namespace alphabet */ diff --git a/alib2data/src/alphabet/EndSymbol.h b/alib2data/src/alphabet/EndSymbol.h index 239733bc21e0619267aadfd39067b9a398b51beb..b7ef7b6eac453aa3758d0c0f04e32d835e37ec73 100644 --- a/alib2data/src/alphabet/EndSymbol.h +++ b/alib2data/src/alphabet/EndSymbol.h @@ -11,6 +11,7 @@ #include "SymbolBase.h" #include "Symbol.h" #include <object/Object.h> +#include <common/ranked_symbol.hpp> namespace alphabet { @@ -55,6 +56,11 @@ inline typename std::enable_if < std::is_integral < Base >::value, Base >::type return '$'; } +template < > +inline object::Object EndSymbol::instance < object::Object > ( ) { + return object::Object ( EndSymbol ( ) ); +} + template < > inline std::string EndSymbol::instance < std::string > ( ) { return std::string ( 1, EndSymbol::instance < char > ( ) ); @@ -71,8 +77,8 @@ inline Symbol EndSymbol::instance < Symbol > ( ) { } template < > -inline object::Object EndSymbol::instance < object::Object > ( ) { - return object::Object ( EndSymbol ( ) ); +inline common::ranked_symbol < > EndSymbol::instance < common::ranked_symbol < > > ( ) { + return common::ranked_symbol < > ( EndSymbol::instance < DefaultSymbolType > ( ), DefaultRankType ( 0 ) ); } } /* namespace alphabet */ diff --git a/alib2data/src/alphabet/InitialSymbol.h b/alib2data/src/alphabet/InitialSymbol.h index 04fda2327588398eafceef2950f8ca361865e69a..2fe0f045d500c14c71cd9697b483c10cbd2383f6 100644 --- a/alib2data/src/alphabet/InitialSymbol.h +++ b/alib2data/src/alphabet/InitialSymbol.h @@ -11,6 +11,7 @@ #include "SymbolBase.h" #include "Symbol.h" #include <object/Object.h> +#include <common/ranked_symbol.hpp> namespace alphabet { @@ -56,6 +57,11 @@ inline typename std::enable_if < std::is_integral < Base >::value, Base >::type return 0; } +template < > +inline object::Object InitialSymbol::instance < object::Object > ( ) { + return object::Object ( InitialSymbol ( ) ); +} + template < > inline std::string InitialSymbol::instance < std::string > ( ) { return std::string ( "S" ); @@ -72,8 +78,8 @@ inline Symbol InitialSymbol::instance < Symbol > ( ) { } template < > -inline object::Object InitialSymbol::instance < object::Object > ( ) { - return object::Object ( InitialSymbol ( ) ); +inline common::ranked_symbol < > InitialSymbol::instance < common::ranked_symbol < > > ( ) { + return common::ranked_symbol < > ( InitialSymbol::instance < DefaultSymbolType > ( ), DefaultRankType ( 0 ) ); } } /* namespace alphabet */ diff --git a/alib2data/src/alphabet/StartSymbol.h b/alib2data/src/alphabet/StartSymbol.h index 309174178f782a9c4de3e2ff3fd40d91c6271368..b6ea2a0093d5805a14a58c9e0b97af6308443eff 100644 --- a/alib2data/src/alphabet/StartSymbol.h +++ b/alib2data/src/alphabet/StartSymbol.h @@ -11,6 +11,7 @@ #include "SymbolBase.h" #include "Symbol.h" #include <object/Object.h> +#include <common/ranked_symbol.hpp> namespace alphabet { @@ -55,6 +56,11 @@ inline typename std::enable_if < std::is_integral < Base >::value, Base >::type return '^'; } +template < > +inline object::Object StartSymbol::instance < object::Object > ( ) { + return object::Object ( StartSymbol ( ) ); +} + template < > inline std::string StartSymbol::instance < std::string > ( ) { return std::string ( 1, StartSymbol::instance < char > ( ) ); @@ -71,8 +77,8 @@ inline Symbol StartSymbol::instance < Symbol > ( ) { } template < > -inline object::Object StartSymbol::instance < object::Object > ( ) { - return object::Object ( StartSymbol ( ) ); +inline common::ranked_symbol < > StartSymbol::instance < common::ranked_symbol < > > ( ) { + return common::ranked_symbol < > ( StartSymbol::instance < DefaultSymbolType > ( ), DefaultRankType ( 0 ) ); } } /* namespace alphabet */ diff --git a/alib2data/src/alphabet/SubtreeWildcardSymbol.h b/alib2data/src/alphabet/SubtreeWildcardSymbol.h index c95b6dd9c7281cd8b967e16d2434e70229cf5865..b74e5503ab971fb3c451f3d09ea44c12e5c88f4f 100644 --- a/alib2data/src/alphabet/SubtreeWildcardSymbol.h +++ b/alib2data/src/alphabet/SubtreeWildcardSymbol.h @@ -56,6 +56,11 @@ inline typename std::enable_if < std::is_integral < Base >::value, Base >::type return 'S'; } +template < > +inline object::Object SubtreeWildcardSymbol::instance < object::Object > ( ) { + return object::Object ( SubtreeWildcardSymbol ( ) ); +} + template < > inline std::string SubtreeWildcardSymbol::instance < std::string > ( ) { return std::string ( 1, SubtreeWildcardSymbol::instance < char > ( ) ); @@ -74,7 +79,7 @@ inline Symbol SubtreeWildcardSymbol::instance < Symbol > ( ) { // TODO make partially specialised when needed by classes or variables, functions can't be partially specialsed template < > inline common::ranked_symbol < > SubtreeWildcardSymbol::instance < common::ranked_symbol < > > ( ) { - return common::ranked_symbol < > ( DefaultSymbolType ( SubtreeWildcardSymbol ( ) ), DefaultRankType ( 0 ) ); + return common::ranked_symbol < > ( SubtreeWildcardSymbol::instance < DefaultSymbolType > ( ), DefaultRankType ( 0 ) ); } template < > @@ -82,11 +87,6 @@ inline RankedSymbol < > SubtreeWildcardSymbol::instance < RankedSymbol < > > ( ) return RankedSymbol < > ( SubtreeWildcardSymbol::instance < common::ranked_symbol < > > ( ) ); } -template < > -inline object::Object SubtreeWildcardSymbol::instance < object::Object > ( ) { - return object::Object ( SubtreeWildcardSymbol ( ) ); -} - } /* namespace alphabet */ #endif /* SUBTREE_WILDCARD_SYMBOL_H_ */ diff --git a/alib2data/src/alphabet/VariablesBarSymbol.h b/alib2data/src/alphabet/VariablesBarSymbol.h index c64699aff2dfe04d3c75230dd26caad240972773..cd06cc00370bf0486f797d1b5d073ec8f5a326ed 100644 --- a/alib2data/src/alphabet/VariablesBarSymbol.h +++ b/alib2data/src/alphabet/VariablesBarSymbol.h @@ -56,6 +56,11 @@ inline typename std::enable_if < std::is_integral < Base >::value, Base >::type return '!'; } +template < > +inline object::Object VariablesBarSymbol::instance < object::Object > ( ) { + return object::Object ( VariablesBarSymbol ( ) ); +} + template < > inline std::string VariablesBarSymbol::instance < std::string > ( ) { return std::string ( 1, VariablesBarSymbol::instance < char > ( ) ); @@ -74,7 +79,7 @@ inline Symbol VariablesBarSymbol::instance < Symbol > ( ) { // TODO make partially specialised when needed by classes or variables, functions can be partially specialsed template < > inline common::ranked_symbol < > VariablesBarSymbol::instance < common::ranked_symbol < > > ( ) { - return common::ranked_symbol < > ( DefaultSymbolType ( VariablesBarSymbol ( ) ), DefaultRankType ( 0 ) ); + return common::ranked_symbol < > ( VariablesBarSymbol::instance < DefaultSymbolType > ( ), DefaultRankType ( 0 ) ); } template < > @@ -82,11 +87,6 @@ inline RankedSymbol < > VariablesBarSymbol::instance < RankedSymbol < > > ( ) { return RankedSymbol < > ( VariablesBarSymbol::instance < common::ranked_symbol < > > ( ) ); } -template < > -inline object::Object VariablesBarSymbol::instance < object::Object > ( ) { - return object::Object ( VariablesBarSymbol ( ) ); -} - } /* namespace alphabet */ #endif /* VARIABLES_BAR_SYMBOL_H_ */