summaryrefslogtreecommitdiff
path: root/impl/antlr/libantlr3c-3.4/src/antlr3exception.c
diff options
context:
space:
mode:
authorCarlo Zancanaro <carlo@pc-4w14-0.cs.usyd.edu.au>2012-07-10 13:01:48 +1000
committerCarlo Zancanaro <carlo@pc-4w14-0.cs.usyd.edu.au>2012-07-10 13:01:48 +1000
commitf9fc35785b53aa097a09ab1b865d33497ee1802e (patch)
treea6c8ea8e913ceab2c08e9f7698332bff08681552 /impl/antlr/libantlr3c-3.4/src/antlr3exception.c
parentd11acd6d52351b35c102e9c18e32d38a11975c5b (diff)
Move antlr. Add `make test` to Makefile.
Diffstat (limited to 'impl/antlr/libantlr3c-3.4/src/antlr3exception.c')
-rw-r--r--impl/antlr/libantlr3c-3.4/src/antlr3exception.c190
1 files changed, 0 insertions, 190 deletions
diff --git a/impl/antlr/libantlr3c-3.4/src/antlr3exception.c b/impl/antlr/libantlr3c-3.4/src/antlr3exception.c
deleted file mode 100644
index 339721c..0000000
--- a/impl/antlr/libantlr3c-3.4/src/antlr3exception.c
+++ /dev/null
@@ -1,190 +0,0 @@
-/** \file
- * Contains default functions for creating and destroying as well as
- * otherwise handling ANTLR3 standard exception structures.
- */
-
-// [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 <antlr3exception.h>
-
-static void antlr3ExceptionPrint(pANTLR3_EXCEPTION ex);
-static void antlr3ExceptionFree (pANTLR3_EXCEPTION ex);
-
-/**
- * \brief
- * Creates a new ANTLR3 exception structure
- *
- * \param[in] exception
- * One of the ANTLR3_xxx_EXCEPTION indicators such as #ANTLR3_RECOGNITION_EXCEPTION
- *
- * \param[in] message
- * Pointer to message string
- *
- * \param[in] freeMessage
- * Set to ANTLR3_TRUE if the message parameter should be freed by a call to
- * ANTLR3_FREE() when the exception is destroyed.
- *
- * \returns
- * Pointer to newly initialized exception structure, or an ANTLR3_ERR_xx defined value
- * upon failure.
- *
- * An exception is 'thrown' by a recognizer when input is seen that is not predicted by
- * the grammar productions or when some other error condition occurs. In C we do not have
- * the luxury of try and catch blocks, so exceptions are added in the order they occur to
- * a list in the baserecognizer structure. The last one to be thrown is inserted at the head of
- * the list and the one currently installed is pointed to by the newly installed exception.
- *
- * \remarks
- * After an exception is created, you may add a pointer to your own structure and a pointer
- * to a function to free this structure when the exception is destroyed.
- *
- * \see
- * ANTLR3_EXCEPTION
- */
-pANTLR3_EXCEPTION
-antlr3ExceptionNew(ANTLR3_UINT32 exception, void * name, void * message, ANTLR3_BOOLEAN freeMessage)
-{
- pANTLR3_EXCEPTION ex;
-
- /* Allocate memory for the structure
- */
- ex = (pANTLR3_EXCEPTION) ANTLR3_CALLOC(1, sizeof(ANTLR3_EXCEPTION));
-
- /* Check for memory allocation
- */
- if (ex == NULL)
- {
- return NULL;
- }
-
- ex->name = name; /* Install exception name */
- ex->type = exception; /* Install the exception number */
- ex->message = message; /* Install message string */
-
- /* Indicate whether the string should be freed if exception is destroyed
- */
- ex->freeMessage = freeMessage;
-
- /* Install the API
- */
- ex->print = antlr3ExceptionPrint;
- ex->freeEx = antlr3ExceptionFree;
-
- return ex;
-}
-
-/**
- * \brief
- * Prints out the message in all the exceptions in the supplied chain.
- *
- * \param[in] ex
- * Pointer to the exception structure to print.
- *
- * \remarks
- * You may wish to override this function by installing a pointer to a new function
- * in the base recognizer context structure.
- *
- * \see
- * ANTLR3_BASE_RECOGNIZER
- */
-static void
-antlr3ExceptionPrint(pANTLR3_EXCEPTION ex)
-{
- /* Ensure valid pointer
- */
- while (ex != NULL)
- {
- /* Number if no message, else the message
- */
- if (ex->message == NULL)
- {
- ANTLR3_FPRINTF(stderr, "ANTLR3_EXCEPTION number %d (%08X).\n", ex->type, ex->type);
- }
- else
- {
- ANTLR3_FPRINTF(stderr, "ANTLR3_EXCEPTION: %s\n", (char *)(ex->message));
- }
-
- /* Move to next in the chain (if any)
- */
- ex = ex->nextException;
- }
-
- return;
-}
-
-/**
- * \brief
- * Frees up a chain of ANTLR3 exceptions
- *
- * \param[in] ex
- * Pointer to the first exception in the chain to free.
- *
- * \see
- * ANTLR3_EXCEPTION
- */
-static void
-antlr3ExceptionFree(pANTLR3_EXCEPTION ex)
-{
- pANTLR3_EXCEPTION next;
-
- /* Ensure valid pointer
- */
- while (ex != NULL)
- {
- /* Pick up anythign following now, before we free the
- * current memory block.
- */
- next = ex->nextException;
-
- /* Free the message pointer if advised to
- */
- if (ex->freeMessage == ANTLR3_TRUE)
- {
- ANTLR3_FREE(ex->message);
- }
-
- /* Call the programmer's custom free routine if advised to
- */
- if (ex->freeCustom != NULL)
- {
- ex->freeCustom(ex->custom);
- }
-
- /* Free the actual structure itself
- */
- ANTLR3_FREE(ex);
-
- ex = next;
- }
-
- return;
-}
-