]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.databoard/cpp/DataBoardTest/libantlr3c-3.2/src/antlr3filestream.c
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.databoard / cpp / DataBoardTest / libantlr3c-3.2 / src / antlr3filestream.c
index 0187d77b2fae2f941555f818a36ac018b2fba406..5c1eecc0bf63d20dff1b5fd43a69765398a3c0e4 100644 (file)
-/** \file\r
- * \brief The ANTLR3 C filestream is used when the source character stream\r
- * is a filesystem based input set and all the characters in the filestream\r
- * can be loaded at once into memory and away the lexer goes.\r
- *\r
- * A number of initializers are provided in order that various character\r
- * sets can be supported from input files. The ANTLR3 C runtime expects\r
- * to deal with UTF32 characters only (the reasons for this are to\r
- * do with the simplification of C code when using this form of Unicode \r
- * encoding, though this is not a panacea. More information can be\r
- * found on this by consulting: \r
- *   - http://www.unicode.org/versions/Unicode4.0.0/ch02.pdf#G11178\r
- * Where a well grounded discussion of the encoding formats available\r
- * may be found.\r
- *\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    <antlr3.h>\r
-\r
-\r
-/** \brief Use the contents of an operating system file as the input\r
- *         for an input stream.\r
- *\r
- * \param fileName Name of operating system file to read.\r
- * \return\r
- *     - Pointer to new input stream context upon success\r
- *     - One of the ANTLR3_ERR_ defines on error.\r
- */\r
-ANTLR3_API pANTLR3_INPUT_STREAM\r
-antlr3AsciiFileStreamNew(pANTLR3_UINT8 fileName)\r
-{\r
-       // Pointer to the input stream we are going to create\r
-       //\r
-       pANTLR3_INPUT_STREAM    input;\r
-       ANTLR3_UINT32       status;\r
-\r
-       if      (fileName == NULL)\r
-       {\r
-               return NULL;\r
-       }\r
-\r
-       // Allocate memory for the input stream structure\r
-       //\r
-       input   = (pANTLR3_INPUT_STREAM)\r
-               ANTLR3_CALLOC(1, sizeof(ANTLR3_INPUT_STREAM));\r
-\r
-       if      (input == NULL)\r
-       {\r
-               return  NULL;\r
-       }\r
-\r
-       // Structure was allocated correctly, now we can read the file.\r
-       //\r
-       status  = antlr3readAscii(input, fileName);\r
-\r
-       // Call the common 8 bit ASCII input stream handler\r
-       // Initializer type thingy doobry function.\r
-       //\r
-       antlr3AsciiSetupStream(input, ANTLR3_CHARSTREAM);\r
-\r
-       // Now we can set up the file name\r
-       //      \r
-       input->istream->streamName      = input->strFactory->newStr(input->strFactory, fileName);\r
-       input->fileName                         = input->istream->streamName;\r
-\r
-       if      (status != ANTLR3_SUCCESS)\r
-       {\r
-               input->close(input);\r
-               return  NULL;\r
-       }\r
-\r
-       return  input;\r
-}\r
-\r
-ANTLR3_API ANTLR3_UINT32\r
-antlr3readAscii(pANTLR3_INPUT_STREAM    input, pANTLR3_UINT8 fileName)\r
-{\r
-       ANTLR3_FDSC                 infile;\r
-       ANTLR3_UINT32       fSize;\r
-\r
-       /* Open the OS file in read binary mode\r
-       */\r
-       infile  = antlr3Fopen(fileName, "rb");\r
-\r
-       /* Check that it was there\r
-       */\r
-       if      (infile == NULL)\r
-       {\r
-               return  (ANTLR3_UINT32)ANTLR3_ERR_NOFILE;\r
-       }\r
-\r
-       /* It was there, so we can read the bytes now\r
-       */\r
-       fSize   = antlr3Fsize(fileName);        /* Size of input file   */\r
-\r
-       /* Allocate buffer for this input set   \r
-       */\r
-       input->data         = ANTLR3_MALLOC((size_t)fSize);\r
-       input->sizeBuf  = fSize;\r
-\r
-       if      (input->data == NULL)\r
-       {\r
-               return  (ANTLR3_UINT32)ANTLR3_ERR_NOMEM;\r
-       }\r
-\r
-       input->isAllocated      = ANTLR3_TRUE;\r
-\r
-       /* Now we read the file. Characters are not converted to\r
-       * the internal ANTLR encoding until they are read from the buffer\r
-       */\r
-       antlr3Fread(infile, fSize, input->data);\r
-\r
-       /* And close the file handle\r
-       */\r
-       antlr3Fclose(infile);\r
-\r
-       return  ANTLR3_SUCCESS;\r
-}\r
-\r
-/** \brief Open an operating system file and return the descriptor\r
- * We just use the common open() and related functions here. \r
- * Later we might find better ways on systems\r
- * such as Windows and OpenVMS for instance. But the idea is to read the \r
- * while file at once anyway, so it may be irrelevant.\r
- */\r
-ANTLR3_API ANTLR3_FDSC\r
-antlr3Fopen(pANTLR3_UINT8 filename, const char * mode)\r
-{\r
-    return  (ANTLR3_FDSC)fopen((const char *)filename, mode);\r
-}\r
-\r
-/** \brief Close an operating system file and free any handles\r
- *  etc.\r
- */\r
-ANTLR3_API void\r
-antlr3Fclose(ANTLR3_FDSC fd)\r
-{\r
-    fclose(fd);\r
-}\r
-ANTLR3_API ANTLR3_UINT32\r
-antlr3Fsize(pANTLR3_UINT8 fileName)\r
-{   \r
-    struct _stat       statbuf;\r
-\r
-    _stat((const char *)fileName, &statbuf);\r
-\r
-    return (ANTLR3_UINT32)statbuf.st_size;\r
-}\r
-\r
-ANTLR3_API ANTLR3_UINT32\r
-antlr3Fread(ANTLR3_FDSC fdsc, ANTLR3_UINT32 count,  void * data)\r
-{\r
-    return  (ANTLR3_UINT32)fread(data, (size_t)count, 1, fdsc);\r
-}\r
+/** \file
+ * \brief The ANTLR3 C filestream is used when the source character stream
+ * is a filesystem based input set and all the characters in the filestream
+ * can be loaded at once into memory and away the lexer goes.
+ *
+ * A number of initializers are provided in order that various character
+ * sets can be supported from input files. The ANTLR3 C runtime expects
+ * to deal with UTF32 characters only (the reasons for this are to
+ * do with the simplification of C code when using this form of Unicode 
+ * encoding, though this is not a panacea. More information can be
+ * found on this by consulting: 
+ *   - http://www.unicode.org/versions/Unicode4.0.0/ch02.pdf#G11178
+ * Where a well grounded discussion of the encoding formats available
+ * may be found.
+ *
+ */
+
+// [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    <antlr3.h>
+
+
+/** \brief Use the contents of an operating system file as the input
+ *         for an input stream.
+ *
+ * \param fileName Name of operating system file to read.
+ * \return
+ *     - Pointer to new input stream context upon success
+ *     - One of the ANTLR3_ERR_ defines on error.
+ */
+ANTLR3_API pANTLR3_INPUT_STREAM
+antlr3AsciiFileStreamNew(pANTLR3_UINT8 fileName)
+{
+       // Pointer to the input stream we are going to create
+       //
+       pANTLR3_INPUT_STREAM    input;
+       ANTLR3_UINT32       status;
+
+       if      (fileName == NULL)
+       {
+               return NULL;
+       }
+
+       // Allocate memory for the input stream structure
+       //
+       input   = (pANTLR3_INPUT_STREAM)
+               ANTLR3_CALLOC(1, sizeof(ANTLR3_INPUT_STREAM));
+
+       if      (input == NULL)
+       {
+               return  NULL;
+       }
+
+       // Structure was allocated correctly, now we can read the file.
+       //
+       status  = antlr3readAscii(input, fileName);
+
+       // Call the common 8 bit ASCII input stream handler
+       // Initializer type thingy doobry function.
+       //
+       antlr3AsciiSetupStream(input, ANTLR3_CHARSTREAM);
+
+       // Now we can set up the file name
+       //      
+       input->istream->streamName      = input->strFactory->newStr(input->strFactory, fileName);
+       input->fileName                         = input->istream->streamName;
+
+       if      (status != ANTLR3_SUCCESS)
+       {
+               input->close(input);
+               return  NULL;
+       }
+
+       return  input;
+}
+
+ANTLR3_API ANTLR3_UINT32
+antlr3readAscii(pANTLR3_INPUT_STREAM    input, pANTLR3_UINT8 fileName)
+{
+       ANTLR3_FDSC                 infile;
+       ANTLR3_UINT32       fSize;
+
+       /* Open the OS file in read binary mode
+       */
+       infile  = antlr3Fopen(fileName, "rb");
+
+       /* Check that it was there
+       */
+       if      (infile == NULL)
+       {
+               return  (ANTLR3_UINT32)ANTLR3_ERR_NOFILE;
+       }
+
+       /* It was there, so we can read the bytes now
+       */
+       fSize   = antlr3Fsize(fileName);        /* Size of input file   */
+
+       /* Allocate buffer for this input set   
+       */
+       input->data         = ANTLR3_MALLOC((size_t)fSize);
+       input->sizeBuf  = fSize;
+
+       if      (input->data == NULL)
+       {
+               return  (ANTLR3_UINT32)ANTLR3_ERR_NOMEM;
+       }
+
+       input->isAllocated      = ANTLR3_TRUE;
+
+       /* Now we read the file. Characters are not converted to
+       * the internal ANTLR encoding until they are read from the buffer
+       */
+       antlr3Fread(infile, fSize, input->data);
+
+       /* And close the file handle
+       */
+       antlr3Fclose(infile);
+
+       return  ANTLR3_SUCCESS;
+}
+
+/** \brief Open an operating system file and return the descriptor
+ * We just use the common open() and related functions here. 
+ * Later we might find better ways on systems
+ * such as Windows and OpenVMS for instance. But the idea is to read the 
+ * while file at once anyway, so it may be irrelevant.
+ */
+ANTLR3_API ANTLR3_FDSC
+antlr3Fopen(pANTLR3_UINT8 filename, const char * mode)
+{
+    return  (ANTLR3_FDSC)fopen((const char *)filename, mode);
+}
+
+/** \brief Close an operating system file and free any handles
+ *  etc.
+ */
+ANTLR3_API void
+antlr3Fclose(ANTLR3_FDSC fd)
+{
+    fclose(fd);
+}
+ANTLR3_API ANTLR3_UINT32
+antlr3Fsize(pANTLR3_UINT8 fileName)
+{   
+    struct _stat       statbuf;
+
+    _stat((const char *)fileName, &statbuf);
+
+    return (ANTLR3_UINT32)statbuf.st_size;
+}
+
+ANTLR3_API ANTLR3_UINT32
+antlr3Fread(ANTLR3_FDSC fdsc, ANTLR3_UINT32 count,  void * data)
+{
+    return  (ANTLR3_UINT32)fread(data, (size_t)count, 1, fdsc);
+}