You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
302 lines
8.0 KiB
302 lines
8.0 KiB
/** \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
|