| /** \file |
| * Declarations for all the antlr3 C runtime interfaces/classes. This |
| * allows the structures that define the interfaces to contain pointers to |
| * each other without trying to sort out the cyclic interdependencies that |
| * would otherwise result. |
| */ |
| #ifndef _ANTLR3_INTERFACES_HPP |
| #define _ANTLR3_INTERFACES_HPP |
| |
| // [The "BSD licence"] |
| // Copyright (c) 2005-2009 Gokulakannan Somasundaram, ElectronDB |
| // |
| // All rights reserved. |
| // |
| // Redistribution and use in source and binary forms, with or without |
| // modification, are permitted provided that the following conditions |
| // are met: |
| // 1. Redistributions of source code must retain the above copyright |
| // notice, this list of conditions and the following disclaimer. |
| // 2. Redistributions in binary form must reproduce the above copyright |
| // notice, this list of conditions and the following disclaimer in the |
| // documentation and/or other materials provided with the distribution. |
| // 3. The name of the author may not be used to endorse or promote products |
| // derived from this software without specific prior written permission. |
| // |
| // THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR |
| // IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES |
| // OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
| // IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, |
| // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT |
| // NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
| // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
| // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
| // THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| |
| ANTLR_BEGIN_NAMESPACE() |
| |
| template<class ImplTraits, class SuperType> |
| class IntStream; |
| |
| /// Pointer to an instantiation of 'class' #ANTLR3_RECOGNIZER_SHARED_STATE |
| /// \ingroup ANTLR3_RECOGNIZER_SHARED_STATE |
| /// |
| template<class ImplTraits, class SuperType> |
| class RecognizerSharedState; |
| |
| /// Pointer to an instantiation of 'class' #ANTLR3_BITSET_LIST |
| /// \ingroup ANTLR3_BITSET_LIST |
| /// |
| template<class AllocatorType> |
| class BitsetList; |
| |
| /// Pointer to an instantiation of 'class' #ANTLR3_BITSET |
| /// \ingroup ANTLR3_BITSET |
| /// |
| template<class AllocatorType> |
| class Bitset; |
| |
| /// Pointer to an instantiation of 'class' #ANTLR3_COMMON_TOKEN |
| /// \ingroup ANTLR3_COMMON_TOKEN |
| /// |
| template<class ImplTraits> |
| class CommonToken; |
| |
| template<class ImplTraits> |
| class CommonTokenFunctions; |
| |
| /// Pointer to an instantiation of 'class' #ANTLR3_EXCEPTION |
| /// \ingroup ANTLR3_EXCEPTION |
| /// |
| enum ExceptionType |
| { |
| /** Indicates that the recognizer received a token |
| * in the input that was not predicted. |
| */ |
| RECOGNITION_EXCEPTION = 0 |
| /** Indicates that the recognizer was expecting one token and found a |
| * a different one. |
| */ |
| , MISMATCHED_TOKEN_EXCEPTION |
| |
| /** Recognizer could not find a valid alternative from the input |
| */ |
| , NO_VIABLE_ALT_EXCEPTION |
| |
| /* Character in a set was not found |
| */ |
| , MISMATCHED_SET_EXCEPTION |
| |
| /* A rule predicting at least n elements found less than that, |
| * such as: WS: " "+; |
| */ |
| , EARLY_EXIT_EXCEPTION |
| |
| , FAILED_PREDICATE_EXCEPTION |
| |
| , MISMATCHED_TREE_NODE_EXCEPTION |
| |
| , REWRITE_EARLY_EXCEPTION |
| |
| , UNWANTED_TOKEN_EXCEPTION |
| |
| , MISSING_TOKEN_EXCEPTION |
| }; |
| |
| template<class ImplTraits, ExceptionType Ex, class StreamType> |
| class ANTLR_Exception; |
| |
| /// Pointer to an instantiation of 'class' #ANTLR3_TOPO |
| /// \ingroup ANTLR3_TOPO |
| /// |
| template<class AllocPolicyType> |
| class Topo; |
| |
| /// Pointer to an instantiation of 'class' #ANTLR3_INPUT_STREAM |
| /// \ingroup ANTLR3_INPUT_STREAM |
| /// |
| template<class ImplTraits> |
| class InputStream; |
| |
| /// Pointer to an instantiation of 'class' #ANTLR3_LEX_STATE |
| /// \ingroup ANTLR3_LEX_STATE |
| /// |
| template<class ImplTraits> |
| class LexState; |
| |
| /// Pointer to an instantiation of 'class' #ANTLR3_TOKEN_SOURCE |
| /// \ingroup ANTLR3_TOKEN_SOURCE |
| /// |
| template<class ImplTraits> |
| class TokenSource; |
| template<class ImplTraits, class SuperType> |
| class TokenSourceFunctions; |
| |
| /// Pointer to an instantiation of 'class' #ANTLR3_TOKEN_STREAM |
| /// \ingroup ANTLR3_TOKEN_STREAM |
| /// |
| template<class ImplTraits> |
| class TokenStream; |
| template<class ImplTraits> |
| class TokenStreamFunctions; |
| |
| /// Pointer to an instantiation of 'class' #ANTLR3_COMMON_TOKEN_STREAM |
| /// \ingroup ANTLR3_COMMON_TOKEN_STREAM |
| /// |
| template<class ImplTraits> |
| class CommonTokenStream; |
| template<class ImplTraits> |
| class CommonTokenStreamFunctions; |
| |
| |
| /// Pointer to an instantiation of 'class' #ANTLR3_CYCLIC_DFA |
| /// \ingroup ANTLR3_CYCLIC_DFA |
| /// |
| template<class ImplTraits, class ComponentType> |
| class CyclicDFA; |
| |
| /// Pointer to an instantiation of 'class' #ANTLR3_LEXER |
| /// \ingroup ANTLR3_LEXER |
| /// |
| template<class ImplTraits> |
| class Lexer; |
| |
| /// Pointer to an instantiation of 'class' #ANTLR3_PARSER |
| /// \ingroup ANTLR3_PARSER |
| /// |
| template<class ImplTraits> |
| class Parser; |
| |
| /// Pointer to an instantiation of 'class' #ANTLR3_BASE_TREE |
| /// \ingroup ANTLR3_BASE_TREE |
| /// |
| template<class ImplTraits> |
| class BaseTree; |
| template<class ImplTraits> |
| class BaseTreeFunctions; |
| |
| |
| /// Pointer to an instantiation of 'class' #ANTLR3_COMMON_TREE |
| /// \ingroup ANTLR3_COMMON_TREE |
| /// |
| template<class ImplTraits> |
| class CommonTree; |
| template<class ImplTraits> |
| class CommonTreeFunctions; |
| |
| /// Pointer to an instantiation of 'class' #ANTLR3_PARSE_TREE |
| /// \ingroup ANTLR3_PARSE_TREE |
| /// |
| template<class ImplTraits> |
| class ParseTree; |
| |
| /// Pointer to an instantiation of 'class' #ANTLR3_TREE_NODE_STREAM |
| /// \ingroup ANTLR3_TREE_NODE_STREAM |
| /// |
| template<class ImplTraits> |
| class TreeNodeStream; |
| |
| /// Pointer to an instantiation of 'class' #ANTLR3_COMMON_TREE_NODE_STREAM |
| /// \ingroup ANTLR3_COMMON_TREE_NODE_STREAM |
| /// |
| template<class ImplTraits> |
| class CommonTreeNodeStream; |
| |
| /// Pointer to an instantiation of 'class' #ANTLR3_TREE_WALK_STATE |
| /// \ingroup ANTLR3_TREE_WALK_STATE |
| /// |
| template<class ImplTraits> |
| class TreeWalkState; |
| |
| /// Pointer to an instantiation of 'class' #ANTLR3_BASE_TREE_ADAPTOR |
| /// \ingroup ANTLR3_BASE_TREE_ADAPTOR |
| /// |
| template<class ImplTraits> |
| class BaseTreeAdaptor; |
| template<class ImplTraits> |
| class BaseTreeAdaptorFunctions; |
| |
| |
| /// Pointer to an instantiation of 'class' #ANTLR3_COMMON_TREE_ADAPTOR |
| /// \ingroup ANTLR3_COMMON_TREE_ADAPTOR |
| /// |
| template<class ImplTraits> |
| class CommonTreeAdaptor; |
| template<class ImplTraits> |
| class CommonTreeAdaptorFunctions; |
| |
| |
| /// Pointer to an instantiation of 'class' #ANTLR3_TREE_PARSER |
| /// \ingroup ANTLR3_TREE_PARSER |
| /// |
| template<class ImplTraits> |
| class TreeParser; |
| |
| /// Pointer to an instantiation of 'class' #ANTLR3_INT_TRIE |
| /// \ingroup ANTLR3_INT_TRIE |
| /// |
| template< class DataType, class AllocPolicyType > |
| class IntTrie; |
| |
| /// Pointer to an instantiation of 'class' #ANTLR3_REWRITE_RULE_ELEMENT_STREAM |
| /// \ingroup ANTLR3_REWRITE_RULE_ELEMENT_STREAM |
| /// |
| template<class ImplTraits, class SuperType> |
| class RewriteRuleElementStream; |
| |
| template<class ImplTraits> |
| class RewriteRuleTokenStream; |
| |
| template<class ImplTraits> |
| class RewriteRuleSubtreeStream; |
| |
| template<class ImplTraits> |
| class RewriteRuleNodeStream; |
| |
| /// Pointer to an instantiation of 'class' #ANTLR3_DEBUG_EVENT_LISTENER |
| /// \ingroup ANTLR3_DEBUG_EVENT_LISTENER |
| /// |
| template<class ImplTraits> |
| class DebugEventListener; |
| |
| //A Class just used for forwarding other classes for simplifying class forwarding |
| //Logic: constructor is made simple |
| template<class A> |
| class ClassForwarder {}; |
| |
| template<bool b> |
| class BoolForwarder {}; |
| class Empty {}; |
| |
| template<class ImplTraits, class StreamType> |
| class ComponentTypeFinder |
| { |
| }; |
| |
| template<class ImplTraits> |
| class ComponentTypeFinder< ImplTraits, typename ImplTraits::InputStreamType> |
| { |
| public: |
| typedef typename ImplTraits::LexerType ComponentType; |
| }; |
| |
| template<class ImplTraits> |
| class ComponentTypeFinder< ImplTraits, typename ImplTraits::TokenStreamType> |
| { |
| public: |
| typedef typename ImplTraits::ParserType ComponentType; |
| }; |
| |
| template<class ImplTraits> |
| class ComponentTypeFinder< ImplTraits, typename ImplTraits::TreeNodeStreamType> |
| { |
| public: |
| typedef typename ImplTraits::TreeParserType ComponentType; |
| }; |
| |
| |
| ANTLR_END_NAMESPACE() |
| |
| #endif |