summaryrefslogtreecommitdiff
path: root/impl/antlr/libantlr3c-3.4/src/antlr3parser.c
diff options
context:
space:
mode:
Diffstat (limited to 'impl/antlr/libantlr3c-3.4/src/antlr3parser.c')
-rw-r--r--impl/antlr/libantlr3c-3.4/src/antlr3parser.c193
1 files changed, 0 insertions, 193 deletions
diff --git a/impl/antlr/libantlr3c-3.4/src/antlr3parser.c b/impl/antlr/libantlr3c-3.4/src/antlr3parser.c
deleted file mode 100644
index 2b7e0e3..0000000
--- a/impl/antlr/libantlr3c-3.4/src/antlr3parser.c
+++ /dev/null
@@ -1,193 +0,0 @@
-/** \file
- * Implementation of the base functionality for an ANTLR3 parser.
- */
-
-// [The "BSD licence"]
-// Copyright (c) 2005-2009 Jim Idle, Temporal Wave LLC
-// http://www.temporal-wave.com
-// http://www.linkedin.com/in/jimidle
-//
-// 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.
-
-#include <antlr3parser.h>
-
-/* Parser API
- */
-static void setDebugListener (pANTLR3_PARSER parser, pANTLR3_DEBUG_EVENT_LISTENER dbg);
-static void setTokenStream (pANTLR3_PARSER parser, pANTLR3_TOKEN_STREAM);
-static pANTLR3_TOKEN_STREAM getTokenStream (pANTLR3_PARSER parser);
-static void freeParser (pANTLR3_PARSER parser);
-
-ANTLR3_API pANTLR3_PARSER
-antlr3ParserNewStreamDbg (ANTLR3_UINT32 sizeHint, pANTLR3_TOKEN_STREAM tstream, pANTLR3_DEBUG_EVENT_LISTENER dbg, pANTLR3_RECOGNIZER_SHARED_STATE state)
-{
- pANTLR3_PARSER parser;
-
- parser = antlr3ParserNewStream(sizeHint, tstream, state);
-
- if (parser == NULL)
- {
- return NULL;
- }
-
- parser->setDebugListener(parser, dbg);
-
- return parser;
-}
-
-ANTLR3_API pANTLR3_PARSER
-antlr3ParserNew (ANTLR3_UINT32 sizeHint, pANTLR3_RECOGNIZER_SHARED_STATE state)
-{
- pANTLR3_PARSER parser;
-
- /* Allocate memory
- */
- parser = (pANTLR3_PARSER) ANTLR3_MALLOC(sizeof(ANTLR3_PARSER));
-
- if (parser == NULL)
- {
- return NULL;
- }
-
- /* Install a base parser
- */
- parser->rec = antlr3BaseRecognizerNew(ANTLR3_TYPE_PARSER, sizeHint, state);
-
- if (parser->rec == NULL)
- {
- parser->free(parser);
- return NULL;
- }
-
- parser->rec->super = parser;
-
- /* Parser overrides
- */
- parser->rec->exConstruct = antlr3MTExceptionNew;
-
- /* Install the API
- */
- parser->setDebugListener = setDebugListener;
- parser->setTokenStream = setTokenStream;
- parser->getTokenStream = getTokenStream;
-
- parser->free = freeParser;
-
- return parser;
-}
-
-ANTLR3_API pANTLR3_PARSER
-antlr3ParserNewStream (ANTLR3_UINT32 sizeHint, pANTLR3_TOKEN_STREAM tstream, pANTLR3_RECOGNIZER_SHARED_STATE state)
-{
- pANTLR3_PARSER parser;
-
- parser = antlr3ParserNew(sizeHint, state);
-
- if (parser == NULL)
- {
- return NULL;
- }
-
- /* Everything seems to be hunky dory so we can install the
- * token stream.
- */
- parser->setTokenStream(parser, tstream);
-
- return parser;
-}
-
-static void
-freeParser (pANTLR3_PARSER parser)
-{
- if (parser->rec != NULL)
- {
- // This may have ben a delegate or delegator parser, in which case the
- // state may already have been freed (and set to NULL therefore)
- // so we ignore the state if we don't have it.
- //
- if (parser->rec->state != NULL)
- {
- if (parser->rec->state->following != NULL)
- {
- parser->rec->state->following->free(parser->rec->state->following);
- parser->rec->state->following = NULL;
- }
- }
- parser->rec->free(parser->rec);
- parser->rec = NULL;
-
- }
- ANTLR3_FREE(parser);
-}
-
-static void
-setDebugListener (pANTLR3_PARSER parser, pANTLR3_DEBUG_EVENT_LISTENER dbg)
-{
- // Set the debug listener. There are no methods to override
- // because currently the only ones that notify the debugger
- // are error reporting and recovery. Hence we can afford to
- // check and see if the debugger interface is null or not
- // there. If there is ever an occasion for a performance
- // sensitive function to use the debugger interface, then
- // a replacement function for debug mode should be supplied
- // and installed here.
- //
- parser->rec->debugger = dbg;
-
- // If there was a tokenstream installed already
- // then we need to tell it about the debug interface
- //
- if (parser->tstream != NULL)
- {
- parser->tstream->setDebugListener(parser->tstream, dbg);
- }
-}
-
-static void
-setTokenStream (pANTLR3_PARSER parser, pANTLR3_TOKEN_STREAM tstream)
-{
- parser->tstream = tstream;
- parser->rec->reset(parser->rec);
-}
-
-static pANTLR3_TOKEN_STREAM
-getTokenStream (pANTLR3_PARSER parser)
-{
- return parser->tstream;
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-