]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.databoard/cpp/DataBoardTest/libantlr3c-3.2/src/antlr3exception.c
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.databoard / cpp / DataBoardTest / libantlr3c-3.2 / src / antlr3exception.c
index 3bcd701325cfdf58b754f9449c096ecbeb5751e6..339721c07f36e6c8cb5cfbe721e6d0fb78be2914 100644 (file)
-/** \file\r
- * Contains default functions for creating and destroying as well as\r
- * otherwise handling ANTLR3 standard exception structures.\r
- */\r
-\r
-// [The "BSD licence"]\r
-// Copyright (c) 2005-2009 Jim Idle, Temporal Wave LLC\r
-// http://www.temporal-wave.com\r
-// http://www.linkedin.com/in/jimidle\r
-//\r
-// All rights reserved.\r
-//\r
-// Redistribution and use in source and binary forms, with or without\r
-// modification, are permitted provided that the following conditions\r
-// are met:\r
-// 1. Redistributions of source code must retain the above copyright\r
-//    notice, this list of conditions and the following disclaimer.\r
-// 2. Redistributions in binary form must reproduce the above copyright\r
-//    notice, this list of conditions and the following disclaimer in the\r
-//    documentation and/or other materials provided with the distribution.\r
-// 3. The name of the author may not be used to endorse or promote products\r
-//    derived from this software without specific prior written permission.\r
-//\r
-// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\r
-// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\r
-// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\r
-// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\r
-// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\r
-// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\r
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\r
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\r
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\r
-// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
-\r
-#include    <antlr3exception.h>\r
-\r
-static    void antlr3ExceptionPrint(pANTLR3_EXCEPTION ex);\r
-static    void antlr3ExceptionFree (pANTLR3_EXCEPTION ex);\r
-\r
-/**\r
- * \brief\r
- * Creates a new ANTLR3 exception structure\r
- * \r
- * \param[in] exception\r
- * One of the ANTLR3_xxx_EXCEPTION indicators such as #ANTLR3_RECOGNITION_EXCEPTION\r
- * \r
- * \param[in] message\r
- * Pointer to message string \r
- * \r
- * \param[in] freeMessage\r
- * Set to ANTLR3_TRUE if the message parameter should be freed by a call to \r
- * ANTLR3_FREE() when the exception is destroyed.\r
- * \r
- * \returns\r
- * Pointer to newly initialized exception structure, or an ANTLR3_ERR_xx defined value\r
- * upon failure.\r
- * \r
- * An exception is 'thrown' by a recognizer  when input is seen that is not predicted by\r
- * the grammar productions or when some other error condition occurs. In C we do not have\r
- * the luxury of try and catch blocks, so exceptions are added in the order they occur to \r
- * a list in the baserecognizer structure. The last one to be thrown is inserted at the head of\r
- * the list and the one currently installed is pointed to by the newly installed exception.\r
- * \r
- * \remarks\r
- * After an exception is created, you may add a pointer to your own structure and a pointer\r
- * to a function to free this structure when the exception is destroyed.\r
- * \r
- * \see\r
- * ANTLR3_EXCEPTION\r
- */\r
-pANTLR3_EXCEPTION\r
-antlr3ExceptionNew(ANTLR3_UINT32 exception, void * name, void * message, ANTLR3_BOOLEAN freeMessage)\r
-{\r
-       pANTLR3_EXCEPTION       ex;\r
-\r
-       /* Allocate memory for the structure\r
-       */\r
-       ex      = (pANTLR3_EXCEPTION) ANTLR3_CALLOC(1, sizeof(ANTLR3_EXCEPTION));\r
-\r
-       /* Check for memory allocation\r
-       */\r
-       if      (ex == NULL)\r
-       {\r
-               return  NULL;\r
-       }\r
-\r
-       ex->name                = name;         /* Install exception name       */\r
-       ex->type                = exception;    /* Install the exception number */\r
-       ex->message             = message;      /* Install message string       */\r
-\r
-       /* Indicate whether the string should be freed if exception is destroyed    \r
-       */\r
-       ex->freeMessage = freeMessage;\r
-\r
-       /* Install the API\r
-       */\r
-       ex->print           =  antlr3ExceptionPrint;\r
-       ex->freeEx          =  antlr3ExceptionFree;\r
-\r
-       return ex;\r
-}\r
-\r
-/**\r
- * \brief\r
- * Prints out the message in all the exceptions in the supplied chain.\r
- * \r
- * \param[in] ex\r
- * Pointer to the exception structure to print.\r
- * \r
- * \remarks\r
- * You may wish to override this function by installing a pointer to a new function\r
- * in the base recognizer context structure.\r
- * \r
- * \see\r
- * ANTLR3_BASE_RECOGNIZER\r
- */\r
-static void\r
-antlr3ExceptionPrint(pANTLR3_EXCEPTION ex)\r
-{\r
-    /* Ensure valid pointer\r
-     */\r
-    while   (ex != NULL)\r
-    {\r
-       /* Number if no message, else the message\r
-        */\r
-       if  (ex->message == NULL)\r
-       {\r
-           ANTLR3_FPRINTF(stderr, "ANTLR3_EXCEPTION number %d (%08X).\n", ex->type, ex->type);\r
-       }\r
-       else\r
-       {\r
-           ANTLR3_FPRINTF(stderr, "ANTLR3_EXCEPTION: %s\n", (char *)(ex->message));\r
-       }\r
-\r
-       /* Move to next in the chain (if any)\r
-        */\r
-       ex = ex->nextException;\r
-    }\r
-\r
-    return;\r
-}\r
-\r
-/**\r
- * \brief\r
- * Frees up a chain of ANTLR3 exceptions\r
- * \r
- * \param[in] ex\r
- * Pointer to the first exception in the chain to free.\r
- * \r
- * \see\r
- * ANTLR3_EXCEPTION\r
- */\r
-static void\r
-antlr3ExceptionFree(pANTLR3_EXCEPTION ex)\r
-{\r
-    pANTLR3_EXCEPTION next;\r
-\r
-    /* Ensure valid pointer\r
-     */\r
-    while   (ex != NULL)\r
-    {\r
-       /* Pick up anythign following now, before we free the\r
-        * current memory block.\r
-        */\r
-       next    = ex->nextException;\r
-\r
-       /* Free the message pointer if advised to\r
-        */\r
-       if  (ex->freeMessage == ANTLR3_TRUE)\r
-       {\r
-           ANTLR3_FREE(ex->message);\r
-       }\r
-\r
-       /* Call the programmer's custom free routine if advised to\r
-        */\r
-       if  (ex->freeCustom != NULL)\r
-       {\r
-           ex->freeCustom(ex->custom);\r
-       }\r
-\r
-       /* Free the actual structure itself\r
-        */\r
-       ANTLR3_FREE(ex);\r
-\r
-       ex = next;\r
-    }\r
-\r
-    return;\r
-}\r
-\r
+/** \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;
+}
+