diff options
author | isiv <isiv@yandex-team.ru> | 2022-02-10 16:47:54 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:47:54 +0300 |
commit | f20e3f1949626df2ef9d81d7618ec367b0c34f6b (patch) | |
tree | 36465c9262a386743fc483efb848be6d76c5ac04 /contrib/libs/antlr3_cpp_runtime/include/antlr3traits.hpp | |
parent | 7a839432184dcd989efaeccf678e4238d71bd9b0 (diff) | |
download | ydb-f20e3f1949626df2ef9d81d7618ec367b0c34f6b.tar.gz |
Restoring authorship annotation for <isiv@yandex-team.ru>. Commit 1 of 2.
Diffstat (limited to 'contrib/libs/antlr3_cpp_runtime/include/antlr3traits.hpp')
-rw-r--r-- | contrib/libs/antlr3_cpp_runtime/include/antlr3traits.hpp | 646 |
1 files changed, 323 insertions, 323 deletions
diff --git a/contrib/libs/antlr3_cpp_runtime/include/antlr3traits.hpp b/contrib/libs/antlr3_cpp_runtime/include/antlr3traits.hpp index c5741ce985..e390f0277b 100644 --- a/contrib/libs/antlr3_cpp_runtime/include/antlr3traits.hpp +++ b/contrib/libs/antlr3_cpp_runtime/include/antlr3traits.hpp @@ -1,377 +1,377 @@ #ifndef _ANTLR3_TRAITS_HPP #define _ANTLR3_TRAITS_HPP -namespace antlr3 { +namespace antlr3 { -/** - * Users implementing overrides should inherit from this - * - * All classes typenames reffer to Empty class - */ +/** + * Users implementing overrides should inherit from this + * + * All classes typenames reffer to Empty class + */ template<class ImplTraits> class CustomTraitsBase { public: - typedef Empty AllocPolicyType; - typedef Empty StringType; - typedef Empty StringStreamType; - typedef Empty StreamDataType; - typedef Empty Endianness; - - //collections - typedef Empty BitsetType; - typedef Empty BitsetListType; - - typedef Empty InputStreamType; - - template<class StreamType> - class IntStreamType : public Empty - { - public: - typedef Empty BaseType; - }; - - typedef Empty LexStateType; - - typedef Empty CommonTokenType; - typedef Empty TokenUserDataType; - - typedef Empty TokenIntStreamType; - typedef Empty TokenStreamType; - - typedef Empty TreeNodeIntStreamType; - typedef Empty TreeNodeStreamType; - - - typedef Empty DebugEventListenerType; - template<class StreamType> - class RecognizerSharedStateType : public Empty - { - public: - typedef Empty BaseType; - }; - - template<class StreamType> - class RecognizerType : public Empty - { - public: - typedef Empty BaseType; - }; - - typedef Empty TreeType; - typedef Empty TreeUserDataType; - typedef Empty TreeAdaptorType; - typedef Empty TreeStoreType; - - template<class StreamType> - class ExceptionBaseType : public Empty - { - public: - typedef Empty BaseType; - }; - - //this should be overridden with generated lexer - typedef Empty BaseLexerType; - - typedef Empty TokenSourceType; - typedef Empty BaseParserType;//this should be overridden with generated lexer - typedef Empty BaseTreeParserType; - - template<class ElementType> - class RewriteStreamType : public Empty - { - public: - typedef Empty BaseType; - }; - - typedef Empty RuleReturnValueType; - - //If we want to change the way tokens are stored - static const bool TOKENS_ACCESSED_FROM_OWNING_RULE = false; - static const unsigned TOKEN_FILL_BUFFER_INCREMENT = 100; //used only if the above val is true - - static void displayRecognitionError( const std::string& str ) { printf("%s", str.c_str() ); } + typedef Empty AllocPolicyType; + typedef Empty StringType; + typedef Empty StringStreamType; + typedef Empty StreamDataType; + typedef Empty Endianness; + + //collections + typedef Empty BitsetType; + typedef Empty BitsetListType; + + typedef Empty InputStreamType; + + template<class StreamType> + class IntStreamType : public Empty + { + public: + typedef Empty BaseType; + }; + + typedef Empty LexStateType; + + typedef Empty CommonTokenType; + typedef Empty TokenUserDataType; + + typedef Empty TokenIntStreamType; + typedef Empty TokenStreamType; + + typedef Empty TreeNodeIntStreamType; + typedef Empty TreeNodeStreamType; + + + typedef Empty DebugEventListenerType; + template<class StreamType> + class RecognizerSharedStateType : public Empty + { + public: + typedef Empty BaseType; + }; + + template<class StreamType> + class RecognizerType : public Empty + { + public: + typedef Empty BaseType; + }; + + typedef Empty TreeType; + typedef Empty TreeUserDataType; + typedef Empty TreeAdaptorType; + typedef Empty TreeStoreType; + + template<class StreamType> + class ExceptionBaseType : public Empty + { + public: + typedef Empty BaseType; + }; + + //this should be overridden with generated lexer + typedef Empty BaseLexerType; + + typedef Empty TokenSourceType; + typedef Empty BaseParserType;//this should be overridden with generated lexer + typedef Empty BaseTreeParserType; + + template<class ElementType> + class RewriteStreamType : public Empty + { + public: + typedef Empty BaseType; + }; + + typedef Empty RuleReturnValueType; + + //If we want to change the way tokens are stored + static const bool TOKENS_ACCESSED_FROM_OWNING_RULE = false; + static const unsigned TOKEN_FILL_BUFFER_INCREMENT = 100; //used only if the above val is true + + static void displayRecognitionError( const std::string& str ) { printf("%s", str.c_str() ); } }; -/** - * Traits manipulation classes - */ +/** + * Traits manipulation classes + */ template<class A, class B> class TraitsSelector { public: - typedef A selected; + typedef A selected; }; template<class B> class TraitsSelector<Empty, B> { public: - typedef B selected; + typedef B selected; }; template<class A, class B, class C> class TraitsOneArgSelector { public: - typedef A selected; + typedef A selected; }; template<class A, class B> class TraitsOneArgSelector<A,B,Empty> { public: - typedef B selected; + typedef B selected; }; template<bool v, class A, class B> class BoolSelector { public: - typedef A selected; + typedef A selected; }; template<class A, class B> class BoolSelector<false, A, B> { public: - typedef B selected; + typedef B selected; }; -/** - * Base traits template - * - * This class contains default typenames for every trait - */ +/** + * Base traits template + * + * This class contains default typenames for every trait + */ template< template<class ImplTraits> class UserTraits > class TraitsBase { public: - typedef TraitsBase TraitsType; - - typedef typename TraitsSelector< typename UserTraits<TraitsType>::AllocPolicyType, - DefaultAllocPolicy - >::selected AllocPolicyType; - - typedef typename TraitsSelector< typename UserTraits<TraitsType>::StringType, - std::string - >::selected StringType; - - typedef typename TraitsSelector< typename UserTraits<TraitsType>::StringStreamType, - std::stringstream - >::selected StringStreamType; - - typedef typename TraitsSelector< typename UserTraits<TraitsType>::StreamDataType, - ANTLR_UINT8 - >::selected StreamDataType; - - typedef typename TraitsSelector< typename UserTraits<TraitsType>::Endianness, - RESOLVE_ENDIAN_AT_RUNTIME - >::selected Endianness; - - typedef typename TraitsSelector< typename UserTraits<TraitsType>::BitsetType, - Bitset<TraitsType> - >::selected BitsetType; - typedef typename TraitsSelector< typename UserTraits<TraitsType>::BitsetListType, - BitsetList<TraitsType> - >::selected BitsetListType; - - typedef typename TraitsSelector< typename UserTraits<TraitsType>::InputStreamType, - InputStream<TraitsType> - >::selected InputStreamType; - - template<class SuperType> - class IntStreamType : public TraitsOneArgSelector< typename UserTraits<TraitsType>::template IntStreamType<SuperType>, - IntStream<TraitsType, SuperType>, - typename UserTraits<TraitsType>::template IntStreamType<SuperType>::BaseType - >::selected - { }; - - typedef typename TraitsSelector< typename UserTraits<TraitsType>::LexStateType, - LexState<TraitsType> - >::selected LexStateType; - - static const bool TOKENS_ACCESSED_FROM_OWNING_RULE = UserTraits<TraitsType>::TOKENS_ACCESSED_FROM_OWNING_RULE; - static const unsigned TOKEN_FILL_BUFFER_INCREMENT = UserTraits<TraitsType>::TOKEN_FILL_BUFFER_INCREMENT; //used only if the above val is true - - static void displayRecognitionError( const StringType& str ) { UserTraits<TraitsType>::displayRecognitionError(str); } + typedef TraitsBase TraitsType; + + typedef typename TraitsSelector< typename UserTraits<TraitsType>::AllocPolicyType, + DefaultAllocPolicy + >::selected AllocPolicyType; + + typedef typename TraitsSelector< typename UserTraits<TraitsType>::StringType, + std::string + >::selected StringType; + + typedef typename TraitsSelector< typename UserTraits<TraitsType>::StringStreamType, + std::stringstream + >::selected StringStreamType; + + typedef typename TraitsSelector< typename UserTraits<TraitsType>::StreamDataType, + ANTLR_UINT8 + >::selected StreamDataType; + + typedef typename TraitsSelector< typename UserTraits<TraitsType>::Endianness, + RESOLVE_ENDIAN_AT_RUNTIME + >::selected Endianness; + + typedef typename TraitsSelector< typename UserTraits<TraitsType>::BitsetType, + Bitset<TraitsType> + >::selected BitsetType; + typedef typename TraitsSelector< typename UserTraits<TraitsType>::BitsetListType, + BitsetList<TraitsType> + >::selected BitsetListType; + + typedef typename TraitsSelector< typename UserTraits<TraitsType>::InputStreamType, + InputStream<TraitsType> + >::selected InputStreamType; + + template<class SuperType> + class IntStreamType : public TraitsOneArgSelector< typename UserTraits<TraitsType>::template IntStreamType<SuperType>, + IntStream<TraitsType, SuperType>, + typename UserTraits<TraitsType>::template IntStreamType<SuperType>::BaseType + >::selected + { }; + + typedef typename TraitsSelector< typename UserTraits<TraitsType>::LexStateType, + LexState<TraitsType> + >::selected LexStateType; + + static const bool TOKENS_ACCESSED_FROM_OWNING_RULE = UserTraits<TraitsType>::TOKENS_ACCESSED_FROM_OWNING_RULE; + static const unsigned TOKEN_FILL_BUFFER_INCREMENT = UserTraits<TraitsType>::TOKEN_FILL_BUFFER_INCREMENT; //used only if the above val is true + + static void displayRecognitionError( const StringType& str ) { UserTraits<TraitsType>::displayRecognitionError(str); } +}; + +/** + * Final traits + * + * They combine Traits and user provided traits(UserTraits) + */ +template< class LxrType, + class PsrType, + template<class ImplTraits> class UserTraits = CustomTraitsBase + //, + //class TreePsrType = antlr3::Empty + //template<class ImplTraits> class TreePsrType = TreeParser + > +class Traits : public TraitsBase<UserTraits> +{ +public: + typedef Traits TraitsType; + typedef TraitsBase<UserTraits> BaseTraitsType; + + // CommonTokenType + typedef typename TraitsSelector< typename UserTraits<TraitsType>::CommonTokenType, + CommonToken<TraitsType> >::selected CommonTokenType; + + // TokenUserDataType + typedef typename TraitsSelector< typename UserTraits<TraitsType>::TokenUserDataType, + Empty >::selected TokenUserDataType; + + // TokenListType + typedef typename BaseTraitsType::AllocPolicyType::template ListType<const CommonTokenType*> TokenListType; + + // TokenIntStreamType + typedef typename TraitsSelector< typename UserTraits<TraitsType>::TokenIntStreamType, + TokenIntStream<TraitsType> >::selected TokenIntStreamType; + // TokenStreamType + typedef typename TraitsSelector< typename UserTraits<TraitsType>::TokenStreamType, + CommonTokenStream<TraitsType> >::selected TokenStreamType; + + // TreeNodeIntStreamType + typedef typename TraitsSelector< typename UserTraits<TraitsType>::TreeNodeIntStreamType, + TreeNodeIntStream<TraitsType> >::selected TreeNodeIntStreamType; + + // TreeNodeStreamType + typedef typename TraitsSelector< typename UserTraits<TraitsType>::TreeNodeStreamType, + CommonTreeNodeStream<TraitsType> >::selected TreeNodeStreamType; + + // DebugEventListenerType + typedef typename TraitsSelector< typename UserTraits<TraitsType>::DebugEventListenerType, + DebugEventListener<TraitsType> >::selected DebugEventListenerType; + + // RecognizerSharedStateType + template<class StreamType> + class RecognizerSharedStateType : public TraitsOneArgSelector< typename UserTraits<TraitsType>::template RecognizerSharedStateType<StreamType>, + RecognizerSharedState<TraitsType, StreamType>, + typename UserTraits<TraitsType>::template RecognizerSharedStateType<StreamType>::BaseType + >::selected + {}; + + // RecognizerType + template<class StreamType> + class RecognizerType : public TraitsOneArgSelector< typename UserTraits<TraitsType>::template RecognizerType<StreamType>, + BaseRecognizer<TraitsType, StreamType>, + typename UserTraits<TraitsType>::template RecognizerType<StreamType>::BaseType + >::selected + { + public: + typedef typename TraitsOneArgSelector< typename UserTraits<TraitsType>::template RecognizerType<StreamType>, + BaseRecognizer<TraitsType, StreamType>, + typename UserTraits<TraitsType>::template RecognizerType<StreamType>::BaseType + >::selected BaseType; + typedef typename BaseType::RecognizerSharedStateType RecognizerSharedStateType; + + public: + RecognizerType(ANTLR_UINT32 sizeHint, RecognizerSharedStateType* state) + : BaseType( sizeHint, state ) + { + } + }; + + // TreeType + typedef typename TraitsSelector< typename UserTraits<TraitsType>::TreeType, + CommonTree<TraitsType> >::selected TreeType; + typedef typename TraitsSelector< typename UserTraits<TraitsType>::TreeUserDataType, + Empty >::selected TreeUserDataType; + // TreeAdaptorType + typedef typename TraitsSelector< typename UserTraits<TraitsType>::TreeAdaptorType, + CommonTreeAdaptor<TraitsType> >::selected TreeAdaptorType; + typedef typename TraitsSelector< typename UserTraits<TraitsType>::TreeStoreType, + CommonTreeStore<TraitsType> >::selected TreeStoreType; + typedef typename TreeStoreType::TreeTypePtr TreeTypePtr; + //typedef std::unique_ptr<TreeType, ResourcePoolManager<ImplTraits>> TreeTypePtr; + + // ExceptionBaseType + template<class StreamType> + class ExceptionBaseType : public TraitsOneArgSelector< typename UserTraits<TraitsType>::template ExceptionBaseType<StreamType>, + ANTLR_ExceptionBase<TraitsType, StreamType>, + typename UserTraits<TraitsType>::template ExceptionBaseType<StreamType>::BaseType + >::selected + { + public: + typedef typename TraitsOneArgSelector< typename UserTraits<TraitsType>::template ExceptionBaseType<StreamType>, + ANTLR_ExceptionBase<TraitsType, StreamType>, + typename UserTraits<TraitsType>::template ExceptionBaseType<StreamType>::BaseType + >::selected BaseType; + + protected: + ExceptionBaseType( const typename BaseTraitsType::StringType& message ) + :BaseType(message) + { + } + }; + + // this should be overridden with generated lexer + // BaseLexerType + typedef typename TraitsSelector< typename UserTraits<TraitsType>::BaseLexerType, + Lexer<TraitsType> >::selected BaseLexerType; + typedef LxrType LexerType; + + // TokenSourceType + typedef typename TraitsSelector< typename UserTraits<TraitsType>::TokenSourceType, + TokenSource<TraitsType> >::selected TokenSourceType; + + // this should be overridden with generated parser + // BaseParserType + typedef typename TraitsSelector< typename UserTraits<TraitsType>::BaseParserType, + Parser<TraitsType> >::selected BaseParserType; + typedef PsrType ParserType; + + // this should be overridden with generated treeparser (not implemented yet) + // BaseTreeParserType + typedef typename TraitsSelector< typename UserTraits<TraitsType>::BaseTreeParserType, + TreeParser<TraitsType> >::selected BaseTreeParserType; + //typedef TreePsrType<Traits> TreeParserType; + typedef BaseTreeParserType TreeParserType; + + // RewriteStreamType + template<class ElementType> + class RewriteStreamType : public TraitsOneArgSelector< typename UserTraits<TraitsType>::template RewriteStreamType<ElementType>, + RewriteRuleElementStream<TraitsType, ElementType>, + typename UserTraits<TraitsType>::template RewriteStreamType<ElementType>::BaseType + >::selected + { + public: + typedef typename TraitsOneArgSelector< typename UserTraits<TraitsType>::template RewriteStreamType<ElementType>, + RewriteRuleElementStream<TraitsType, ElementType>, + typename UserTraits<TraitsType>::template RewriteStreamType<ElementType>::BaseType + >::selected BaseType; + + //typedef typename SuperType::StreamType StreamType; + //typedef typename BaseType::RecognizerType Recognizer_Type; + //typedef typename BaseType::ElementType ElementType; + typedef typename BaseType::ElementsType ElementsType; + + public: + RewriteStreamType(TreeAdaptorType* adaptor = NULL, const char* description = NULL) + :BaseType(adaptor, description) + { + } + RewriteStreamType(TreeAdaptorType* adaptor, const char* description, ElementType* oneElement) + :BaseType(adaptor, description, oneElement) + { + } + RewriteStreamType(TreeAdaptorType* adaptor, const char* description, const ElementsType& elements) + :BaseType(adaptor, description, elements) + { + } + }; + + // RuleReturnValueType + typedef typename TraitsSelector< typename UserTraits<TraitsType>::RuleReturnValueType, + typename BoolSelector< TraitsType::TOKENS_ACCESSED_FROM_OWNING_RULE, + RuleReturnValue_1<TraitsType>, + RuleReturnValue<TraitsType> + >::selected + >::selected RuleReturnValueType; }; -/** - * Final traits - * - * They combine Traits and user provided traits(UserTraits) - */ -template< class LxrType, - class PsrType, - template<class ImplTraits> class UserTraits = CustomTraitsBase - //, - //class TreePsrType = antlr3::Empty - //template<class ImplTraits> class TreePsrType = TreeParser - > -class Traits : public TraitsBase<UserTraits> -{ -public: - typedef Traits TraitsType; - typedef TraitsBase<UserTraits> BaseTraitsType; - - // CommonTokenType - typedef typename TraitsSelector< typename UserTraits<TraitsType>::CommonTokenType, - CommonToken<TraitsType> >::selected CommonTokenType; - - // TokenUserDataType - typedef typename TraitsSelector< typename UserTraits<TraitsType>::TokenUserDataType, - Empty >::selected TokenUserDataType; - - // TokenListType - typedef typename BaseTraitsType::AllocPolicyType::template ListType<const CommonTokenType*> TokenListType; - - // TokenIntStreamType - typedef typename TraitsSelector< typename UserTraits<TraitsType>::TokenIntStreamType, - TokenIntStream<TraitsType> >::selected TokenIntStreamType; - // TokenStreamType - typedef typename TraitsSelector< typename UserTraits<TraitsType>::TokenStreamType, - CommonTokenStream<TraitsType> >::selected TokenStreamType; - - // TreeNodeIntStreamType - typedef typename TraitsSelector< typename UserTraits<TraitsType>::TreeNodeIntStreamType, - TreeNodeIntStream<TraitsType> >::selected TreeNodeIntStreamType; - - // TreeNodeStreamType - typedef typename TraitsSelector< typename UserTraits<TraitsType>::TreeNodeStreamType, - CommonTreeNodeStream<TraitsType> >::selected TreeNodeStreamType; - - // DebugEventListenerType - typedef typename TraitsSelector< typename UserTraits<TraitsType>::DebugEventListenerType, - DebugEventListener<TraitsType> >::selected DebugEventListenerType; - - // RecognizerSharedStateType - template<class StreamType> - class RecognizerSharedStateType : public TraitsOneArgSelector< typename UserTraits<TraitsType>::template RecognizerSharedStateType<StreamType>, - RecognizerSharedState<TraitsType, StreamType>, - typename UserTraits<TraitsType>::template RecognizerSharedStateType<StreamType>::BaseType - >::selected - {}; - - // RecognizerType - template<class StreamType> - class RecognizerType : public TraitsOneArgSelector< typename UserTraits<TraitsType>::template RecognizerType<StreamType>, - BaseRecognizer<TraitsType, StreamType>, - typename UserTraits<TraitsType>::template RecognizerType<StreamType>::BaseType - >::selected - { - public: - typedef typename TraitsOneArgSelector< typename UserTraits<TraitsType>::template RecognizerType<StreamType>, - BaseRecognizer<TraitsType, StreamType>, - typename UserTraits<TraitsType>::template RecognizerType<StreamType>::BaseType - >::selected BaseType; - typedef typename BaseType::RecognizerSharedStateType RecognizerSharedStateType; - - public: - RecognizerType(ANTLR_UINT32 sizeHint, RecognizerSharedStateType* state) - : BaseType( sizeHint, state ) - { - } - }; - - // TreeType - typedef typename TraitsSelector< typename UserTraits<TraitsType>::TreeType, - CommonTree<TraitsType> >::selected TreeType; - typedef typename TraitsSelector< typename UserTraits<TraitsType>::TreeUserDataType, - Empty >::selected TreeUserDataType; - // TreeAdaptorType - typedef typename TraitsSelector< typename UserTraits<TraitsType>::TreeAdaptorType, - CommonTreeAdaptor<TraitsType> >::selected TreeAdaptorType; - typedef typename TraitsSelector< typename UserTraits<TraitsType>::TreeStoreType, - CommonTreeStore<TraitsType> >::selected TreeStoreType; - typedef typename TreeStoreType::TreeTypePtr TreeTypePtr; - //typedef std::unique_ptr<TreeType, ResourcePoolManager<ImplTraits>> TreeTypePtr; - - // ExceptionBaseType - template<class StreamType> - class ExceptionBaseType : public TraitsOneArgSelector< typename UserTraits<TraitsType>::template ExceptionBaseType<StreamType>, - ANTLR_ExceptionBase<TraitsType, StreamType>, - typename UserTraits<TraitsType>::template ExceptionBaseType<StreamType>::BaseType - >::selected - { - public: - typedef typename TraitsOneArgSelector< typename UserTraits<TraitsType>::template ExceptionBaseType<StreamType>, - ANTLR_ExceptionBase<TraitsType, StreamType>, - typename UserTraits<TraitsType>::template ExceptionBaseType<StreamType>::BaseType - >::selected BaseType; - - protected: - ExceptionBaseType( const typename BaseTraitsType::StringType& message ) - :BaseType(message) - { - } - }; - - // this should be overridden with generated lexer - // BaseLexerType - typedef typename TraitsSelector< typename UserTraits<TraitsType>::BaseLexerType, - Lexer<TraitsType> >::selected BaseLexerType; - typedef LxrType LexerType; - - // TokenSourceType - typedef typename TraitsSelector< typename UserTraits<TraitsType>::TokenSourceType, - TokenSource<TraitsType> >::selected TokenSourceType; - - // this should be overridden with generated parser - // BaseParserType - typedef typename TraitsSelector< typename UserTraits<TraitsType>::BaseParserType, - Parser<TraitsType> >::selected BaseParserType; - typedef PsrType ParserType; - - // this should be overridden with generated treeparser (not implemented yet) - // BaseTreeParserType - typedef typename TraitsSelector< typename UserTraits<TraitsType>::BaseTreeParserType, - TreeParser<TraitsType> >::selected BaseTreeParserType; - //typedef TreePsrType<Traits> TreeParserType; - typedef BaseTreeParserType TreeParserType; - - // RewriteStreamType - template<class ElementType> - class RewriteStreamType : public TraitsOneArgSelector< typename UserTraits<TraitsType>::template RewriteStreamType<ElementType>, - RewriteRuleElementStream<TraitsType, ElementType>, - typename UserTraits<TraitsType>::template RewriteStreamType<ElementType>::BaseType - >::selected - { - public: - typedef typename TraitsOneArgSelector< typename UserTraits<TraitsType>::template RewriteStreamType<ElementType>, - RewriteRuleElementStream<TraitsType, ElementType>, - typename UserTraits<TraitsType>::template RewriteStreamType<ElementType>::BaseType - >::selected BaseType; - - //typedef typename SuperType::StreamType StreamType; - //typedef typename BaseType::RecognizerType Recognizer_Type; - //typedef typename BaseType::ElementType ElementType; - typedef typename BaseType::ElementsType ElementsType; - - public: - RewriteStreamType(TreeAdaptorType* adaptor = NULL, const char* description = NULL) - :BaseType(adaptor, description) - { - } - RewriteStreamType(TreeAdaptorType* adaptor, const char* description, ElementType* oneElement) - :BaseType(adaptor, description, oneElement) - { - } - RewriteStreamType(TreeAdaptorType* adaptor, const char* description, const ElementsType& elements) - :BaseType(adaptor, description, elements) - { - } - }; - - // RuleReturnValueType - typedef typename TraitsSelector< typename UserTraits<TraitsType>::RuleReturnValueType, - typename BoolSelector< TraitsType::TOKENS_ACCESSED_FROM_OWNING_RULE, - RuleReturnValue_1<TraitsType>, - RuleReturnValue<TraitsType> - >::selected - >::selected RuleReturnValueType; -}; - -} +} #endif //_ANTLR3_TRAITS_HPP |