]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.databoard/cpp/DataBoardTest/DataBoard/LangLexer.c
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.databoard / cpp / DataBoardTest / DataBoard / LangLexer.c
diff --git a/bundles/org.simantics.databoard/cpp/DataBoardTest/DataBoard/LangLexer.c b/bundles/org.simantics.databoard/cpp/DataBoardTest/DataBoard/LangLexer.c
new file mode 100644 (file)
index 0000000..63e01ee
--- /dev/null
@@ -0,0 +1,1089 @@
+/** \file\r
+ *  This C source file was generated by $ANTLR version 3.2 Sep 23, 2009 12:02:23\r
+ *\r
+ *     -  From the grammar source file : Lang.g\r
+ *     -                            On : 2010-02-24 13:27:55\r
+ *     -                 for the lexer : LangLexerLexer *\r
+ * Editing it, at least manually, is not wise. \r
+ *\r
+ * C language generator and runtime by Jim Idle, jimi|hereisanat|idle|dotgoeshere|ws.\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
+/* -----------------------------------------\r
+ * Include the ANTLR3 generated header file.\r
+ */\r
+#include    "LangLexer.h"\r
+/* ----------------------------------------- */\r
+\r
+\r
+/** String literals used by LangLexer that we must do things like MATCHS() with.\r
+ *  C will normally just lay down 8 bit characters, and you can use L"xxx" to\r
+ *  get wchar_t, but wchar_t is 16 bits on Windows, which is not UTF32 and so\r
+ *  we perform this little trick of defining the literals as arrays of UINT32\r
+ *  and passing in the address of these.\r
+ */\r
+static ANTLR3_UCHAR    lit_1[]  = { 0x69, 0x6E, 0x74,  ANTLR3_STRING_TERMINATOR};\r
+static ANTLR3_UCHAR    lit_2[]  = { 0x66, 0x6C, 0x6F, 0x61, 0x74,  ANTLR3_STRING_TERMINATOR};\r
+\r
+\r
+\r
+\r
+/* MACROS that hide the C interface implementations from the\r
+ * generated code, which makes it a little more understandable to the human eye.\r
+ * I am very much against using C pre-processor macros for function calls and bits\r
+ * of code as you cannot see what is happening when single stepping in debuggers\r
+ * and so on. The exception (in my book at least) is for generated code, where you are\r
+ * not maintaining it, but may wish to read and understand it. If you single step it, you know that input()\r
+ * hides some indirect calls, but is always referring to the input stream. This is\r
+ * probably more readable than ctx->input->istream->input(snarfle0->blarg) and allows me to rejig\r
+ * the runtime interfaces without changing the generated code too often, without\r
+ * confusing the reader of the generated output, who may not wish to know the gory\r
+ * details of the interface inheritance.\r
+ */\r
\r
+#define                CTX     ctx\r
+\r
+/* Aids in accessing scopes for grammar programmers\r
+ */\r
+#undef SCOPE_TYPE\r
+#undef SCOPE_STACK\r
+#undef SCOPE_TOP\r
+#define        SCOPE_TYPE(scope)   pLangLexer_##scope##_SCOPE\r
+#define SCOPE_STACK(scope)  pLangLexer_##scope##Stack\r
+#define        SCOPE_TOP(scope)    ctx->pLangLexer_##scope##Top\r
+#define        SCOPE_SIZE(scope)               ctx->pLangLexer_##scope##Stack_limit\r
+#define SCOPE_INSTANCE(scope, i)       (ctx->SCOPE_STACK(scope)->get(ctx->SCOPE_STACK(scope),i))\r
+\r
\r
+/* Macros for accessing things in a lexer\r
+ */\r
+#undef     LEXER\r
+#undef     RECOGNIZER              \r
+#undef     RULEMEMO                \r
+#undef     GETCHARINDEX\r
+#undef     GETLINE\r
+#undef     GETCHARPOSITIONINLINE\r
+#undef     EMIT\r
+#undef     EMITNEW\r
+#undef     MATCHC\r
+#undef     MATCHS\r
+#undef     MATCHRANGE\r
+#undef     LTOKEN\r
+#undef     HASFAILED\r
+#undef     FAILEDFLAG\r
+#undef     INPUT\r
+#undef     STRSTREAM\r
+#undef     LA\r
+#undef     HASEXCEPTION\r
+#undef     EXCEPTION\r
+#undef     CONSTRUCTEX\r
+#undef     CONSUME\r
+#undef     LRECOVER\r
+#undef     MARK\r
+#undef     REWIND\r
+#undef     REWINDLAST\r
+#undef     BACKTRACKING\r
+#undef         MATCHANY\r
+#undef         MEMOIZE\r
+#undef         HAVEPARSEDRULE\r
+#undef         GETTEXT\r
+#undef         INDEX\r
+#undef         SEEK\r
+#undef         PUSHSTREAM\r
+#undef         POPSTREAM\r
+#undef         SETTEXT\r
+#undef         SETTEXT8\r
+\r
+#define            LEXER                                       ctx->pLexer\r
+#define            RECOGNIZER                      LEXER->rec\r
+#define                LEXSTATE                                RECOGNIZER->state\r
+#define                TOKSOURCE                               LEXSTATE->tokSource\r
+#define            GETCHARINDEX()                      LEXER->getCharIndex(LEXER)\r
+#define            GETLINE()                           LEXER->getLine(LEXER)\r
+#define            GETTEXT()                           LEXER->getText(LEXER)\r
+#define            GETCHARPOSITIONINLINE() LEXER->getCharPositionInLine(LEXER)\r
+#define            EMIT()                                      LEXSTATE->type = _type; LEXER->emit(LEXER)\r
+#define            EMITNEW(t)                          LEXER->emitNew(LEXER, t)\r
+#define            MATCHC(c)                           LEXER->matchc(LEXER, c)\r
+#define            MATCHS(s)                           LEXER->matchs(LEXER, s)\r
+#define            MATCHRANGE(c1,c2)       LEXER->matchRange(LEXER, c1, c2)\r
+#define            MATCHANY()                          LEXER->matchAny(LEXER)\r
+#define            LTOKEN                              LEXSTATE->token\r
+#define            HASFAILED()                         (LEXSTATE->failed == ANTLR3_TRUE)\r
+#define            BACKTRACKING                        LEXSTATE->backtracking\r
+#define            FAILEDFLAG                          LEXSTATE->failed\r
+#define            INPUT                                       LEXER->input\r
+#define            STRSTREAM                           INPUT\r
+#define                ISTREAM                                 INPUT->istream\r
+#define                INDEX()                                 ISTREAM->index(ISTREAM)\r
+#define                SEEK(n)                                 ISTREAM->seek(ISTREAM, n)\r
+#define            EOF_TOKEN                           &(LEXSTATE->tokSource->eofToken)\r
+#define            HASEXCEPTION()                      (LEXSTATE->error == ANTLR3_TRUE)\r
+#define            EXCEPTION                           LEXSTATE->exception\r
+#define            CONSTRUCTEX()                       RECOGNIZER->exConstruct(RECOGNIZER)\r
+#define            LRECOVER()                          LEXER->recover(LEXER)\r
+#define            MARK()                                      ISTREAM->mark(ISTREAM)\r
+#define            REWIND(m)                           ISTREAM->rewind(ISTREAM, m)\r
+#define            REWINDLAST()                        ISTREAM->rewindLast(ISTREAM)\r
+#define                MEMOIZE(ri,si)                  RECOGNIZER->memoize(RECOGNIZER, ri, si)\r
+#define                HAVEPARSEDRULE(r)               RECOGNIZER->alreadyParsedRule(RECOGNIZER, r)\r
+#define                PUSHSTREAM(str)                 LEXER->pushCharStream(LEXER, str)\r
+#define                POPSTREAM()                             LEXER->popCharStream(LEXER)\r
+#define                SETTEXT(str)                    LEXSTATE->text = str\r
+#define                SKIP()                                  LEXSTATE->token = &(TOKSOURCE->skipToken)\r
+#define                USER1                                   LEXSTATE->user1\r
+#define                USER2                                   LEXSTATE->user2\r
+#define                USER3                                   LEXSTATE->user3\r
+#define                CUSTOM                                  LEXSTATE->custom\r
+#define                RULEMEMO                                LEXSTATE->ruleMemo\r
+#define                DBG                                             RECOGNIZER->debugger\r
+\r
+/* If we have been told we can rely on the standard 8 bit or 16 bit input\r
+ * stream, then we can define our macros to use the direct pointers\r
+ * in the input object, which is much faster than indirect calls. This\r
+ * is really only significant to lexers with a lot of fragment rules (which\r
+ * do not place LA(1) in a temporary at the moment) and even then\r
+ * only if there is a lot of input (order of say 1M or so).\r
+ */\r
+#if    defined(ANTLR3_INLINE_INPUT_ASCII) || defined(ANTLR3_INLINE_INPUT_UTF16)\r
+\r
+# ifdef        ANTLR3_INLINE_INPUT_ASCII\r
+\r
+/* 8 bit "ASCII" (actually any 8 bit character set) */\r
+\r
+#  define          NEXTCHAR                    ((pANTLR3_UINT8)(INPUT->nextChar))\r
+#  define          DATAP                               ((pANTLR3_UINT8)(INPUT->data))\r
+\r
+# else\r
+\r
+#  define          NEXTCHAR                    ((pANTLR3_UINT16)(INPUT->nextChar)) \r
+#  define          DATAP                               ((pANTLR3_UINT16)(INPUT->data))\r
+\r
+# endif\r
+\r
+# define           LA(n) ((NEXTCHAR + n) > (DATAP + INPUT->sizeBuf) ? ANTLR3_CHARSTREAM_EOF : (ANTLR3_UCHAR)(*(NEXTCHAR + n - 1)))\r
+# define           CONSUME()                                                                                   \\r
+{                                                                                                                                      \\r
+    if (NEXTCHAR < (DATAP + INPUT->sizeBuf))                                           \\r
+    {                                                                                                                          \\r
+               INPUT->charPositionInLine++;                                                            \\r
+               if  ((ANTLR3_UCHAR)(*NEXTCHAR) == INPUT->newlineChar)           \\r
+               {                                                                                                                       \\r
+                       INPUT->line++;                                                                                  \\r
+                       INPUT->charPositionInLine       = 0;                                            \\r
+                       INPUT->currentLine              = (void *)(NEXTCHAR + 1);               \\r
+               }                                                                                                                       \\r
+               INPUT->nextChar = (void *)(NEXTCHAR + 1);                                       \\r
+    }                                                                                                                          \\r
+}\r
+\r
+#else\r
+\r
+// Pick up the input character by calling the input stream implementation.\r
+//\r
+#define            CONSUME()                           INPUT->istream->consume(INPUT->istream)\r
+#define            LA(n)                                       INPUT->istream->_LA(INPUT->istream, n)\r
+\r
+#endif\r
+#define                TOKTEXT(tok, txt)                               tok, (pANTLR3_UINT8)txt\r
+\r
+/* The 4 tokens defined below may well clash with your own #defines or token types. If so\r
+ * then for the present you must use different names for your defines as these are hard coded\r
+ * in the code generator. It would be better not to use such names internally, and maybe\r
+ * we can change this in a forthcoming release. I deliberately do not #undef these\r
+ * here as this will at least give you a redefined error somewhere if they clash.\r
+ */\r
+#define            UP      ANTLR3_TOKEN_UP\r
+#define            DOWN    ANTLR3_TOKEN_DOWN\r
+#define            EOR     ANTLR3_TOKEN_EOR\r
+#define            INVALID ANTLR3_TOKEN_INVALID\r
+\r
+\r
+/* =============================================================================\r
+ * Functions to create and destroy scopes. First come the rule scopes, followed\r
+ * by the global declared scopes.\r
+ */\r
+\r
+\r
+\r
+/* ============================================================================= */\r
+\r
+/* =============================================================================\r
+ * Start of recognizer\r
+ */\r
+\r
+\r
+/* Forward declare the locally static matching functions we have generated and any predicate functions.\r
+ */\r
+static ANTLR3_INLINE  void     mT__10    (pLangLexer ctx);\r
+static ANTLR3_INLINE  void     mINTTYPE    (pLangLexer ctx);\r
+static ANTLR3_INLINE  void     mFLOATTYPE    (pLangLexer ctx);\r
+static ANTLR3_INLINE  void     mID    (pLangLexer ctx);\r
+static ANTLR3_INLINE  void     mINT    (pLangLexer ctx);\r
+static ANTLR3_INLINE  void     mWS    (pLangLexer ctx);\r
+static ANTLR3_INLINE  void     mTokens    (pLangLexer ctx);\r
+static void    LangLexerFree(pLangLexer ctx);\r
+\r
+/* =========================================================================\r
+ * Lexer matching rules end.\r
+ * =========================================================================\r
+ */\r
+\r
+\r
+\r
+static void\r
+LangLexerFree  (pLangLexer ctx)\r
+{\r
+    LEXER->free(LEXER);\r
+    \r
+    ANTLR3_FREE(ctx);\r
+}\r
+\r
+/** \brief Name of the grammar file that generated this code\r
+ */\r
+static const char fileName[] = "Lang.g";\r
+\r
+/** \brief Return the name of the grammar file that generated this code.\r
+ */\r
+static const char * getGrammarFileName()\r
+{\r
+       return fileName;\r
+}\r
+\r
+/** \brief Create a new lexer called LangLexer\r
+ *\r
+ * \param[in]    instream Pointer to an initialized input stream\r
+ * \return \r
+ *     - Success pLangLexer initialized for the lex start\r
+ *     - Fail NULL\r
+ */\r
+ANTLR3_API pLangLexer LangLexerNew         \r
+(pANTLR3_INPUT_STREAM instream)\r
+{\r
+       // See if we can create a new lexer with the standard constructor\r
+       //\r
+       return LangLexerNewSSD(instream, NULL);\r
+}\r
+\r
+/** \brief Create a new lexer called LangLexer\r
+ *\r
+ * \param[in]    instream Pointer to an initialized input stream\r
+ * \param[state] state Previously created shared recognizer stat\r
+ * \return \r
+ *     - Success pLangLexer initialized for the lex start\r
+ *     - Fail NULL\r
+ */\r
+ANTLR3_API pLangLexer LangLexerNewSSD         \r
+(pANTLR3_INPUT_STREAM instream, pANTLR3_RECOGNIZER_SHARED_STATE state)\r
+{\r
+    pLangLexer ctx; // Context structure we will build and return\r
+\r
+    ctx = (pLangLexer) ANTLR3_CALLOC(1, sizeof(LangLexer));\r
+\r
+    if  (ctx == NULL)\r
+    {\r
+        // Failed to allocate memory for lexer context\r
+        return  NULL;\r
+    }\r
+\r
+    /* -------------------------------------------------------------------\r
+     * Memory for basic structure is allocated, now to fill in\r
+     * in base ANTLR3 structures. We initialize the function pointers\r
+     * for the standard ANTLR3 lexer function set, but upon return\r
+     * from here, the programmer may set the pointers to provide custom\r
+     * implementations of each function. \r
+     *\r
+     * We don't use the macros defined in LangLexer.h here so you can get a sense\r
+     * of what goes where.\r
+     */\r
+    \r
+    /* Create a base lexer, using the supplied input stream\r
+     */\r
+    ctx->pLexer        = antlr3LexerNewStream(ANTLR3_SIZE_HINT, instream, state);\r
+    \r
+    /* Check that we allocated the memory correctly\r
+     */\r
+    if (ctx->pLexer == NULL)\r
+    {\r
+               ANTLR3_FREE(ctx);\r
+               return  NULL;\r
+    }\r
+    /* Install the implementation of our LangLexer interface\r
+     */\r
+    ctx->mT__10        = mT__10;\r
+    ctx->mINTTYPE      = mINTTYPE;\r
+    ctx->mFLOATTYPE    = mFLOATTYPE;\r
+    ctx->mID   = mID;\r
+    ctx->mINT  = mINT;\r
+    ctx->mWS   = mWS;\r
+    ctx->mTokens       = mTokens;\r
+    \r
+    /** When the nextToken() call is made to this lexer's pANTLR3_TOKEN_SOURCE\r
+     *  it will call mTokens() in this generated code, and will pass it the ctx\r
+     * pointer of this lexer, not the context of the base lexer, so store that now.\r
+     */\r
+    ctx->pLexer->ctx       = ctx;\r
+    \r
+    /**Install the token matching function\r
+     */\r
+    ctx->pLexer->mTokens = (void (*) (void *))(mTokens);\r
+    \r
+    ctx->getGrammarFileName    = getGrammarFileName;\r
+    ctx->free          = LangLexerFree;\r
+\r
+    \r
+    \r
+\r
+\r
+    /* Return the newly built lexer to the caller\r
+     */\r
+    return  ctx;\r
+}\r
\r
+\r
+/* =========================================================================\r
+ * Functions to match the lexer grammar defined tokens from the input stream\r
+ */\r
+\r
+//   Comes from: 7:7: ( ';' )\r
+/** \brief Lexer rule generated by ANTLR3\r
+ *\r
+ * $ANTLR start T__10\r
+ *\r
+ * Looks to match the characters the constitute the token T__10\r
+ * from the attached input stream.\r
+ *\r
+ *\r
+ * \remark\r
+ *  - lexer->error == ANTLR3_TRUE if an exception was thrown.\r
+ */\r
+static ANTLR3_INLINE\r
+void mT__10(pLangLexer ctx)\r
+{\r
+       ANTLR3_UINT32   _type;\r
+\r
+    _type          = T__10;\r
+       \r
+    \r
+    // Lang.g:7:7: ( ';' )\r
+    // Lang.g:7:9: ';'\r
+    {\r
+        MATCHC(';'); \r
+        if  (HASEXCEPTION())\r
+        {\r
+            goto ruleT__10Ex;\r
+        }\r
+\r
+\r
+    }\r
+\r
+       LEXSTATE->type = _type;\r
+\r
+    // This is where rules clean up and exit\r
+    //\r
+    goto ruleT__10Ex; /* Prevent compiler warnings */\r
+    ruleT__10Ex: ;\r
+\r
+}\r
+// $ANTLR end T__10\r
+\r
+//   Comes from: 30:13: ( 'int' )\r
+/** \brief Lexer rule generated by ANTLR3\r
+ *\r
+ * $ANTLR start INTTYPE\r
+ *\r
+ * Looks to match the characters the constitute the token INTTYPE\r
+ * from the attached input stream.\r
+ *\r
+ *\r
+ * \remark\r
+ *  - lexer->error == ANTLR3_TRUE if an exception was thrown.\r
+ */\r
+static ANTLR3_INLINE\r
+void mINTTYPE(pLangLexer ctx)\r
+{\r
+       ANTLR3_UINT32   _type;\r
+\r
+    _type          = INTTYPE;\r
+       \r
+    \r
+    // Lang.g:30:13: ( 'int' )\r
+    // Lang.g:30:15: 'int'\r
+    {\r
+        MATCHS(lit_1); \r
+        if  (HASEXCEPTION())\r
+        {\r
+            goto ruleINTTYPEEx;\r
+        }\r
+\r
+\r
+\r
+    }\r
+\r
+       LEXSTATE->type = _type;\r
+\r
+    // This is where rules clean up and exit\r
+    //\r
+    goto ruleINTTYPEEx; /* Prevent compiler warnings */\r
+    ruleINTTYPEEx: ;\r
+\r
+}\r
+// $ANTLR end INTTYPE\r
+\r
+//   Comes from: 31:13: ( 'float' )\r
+/** \brief Lexer rule generated by ANTLR3\r
+ *\r
+ * $ANTLR start FLOATTYPE\r
+ *\r
+ * Looks to match the characters the constitute the token FLOATTYPE\r
+ * from the attached input stream.\r
+ *\r
+ *\r
+ * \remark\r
+ *  - lexer->error == ANTLR3_TRUE if an exception was thrown.\r
+ */\r
+static ANTLR3_INLINE\r
+void mFLOATTYPE(pLangLexer ctx)\r
+{\r
+       ANTLR3_UINT32   _type;\r
+\r
+    _type          = FLOATTYPE;\r
+       \r
+    \r
+    // Lang.g:31:13: ( 'float' )\r
+    // Lang.g:31:15: 'float'\r
+    {\r
+        MATCHS(lit_2); \r
+        if  (HASEXCEPTION())\r
+        {\r
+            goto ruleFLOATTYPEEx;\r
+        }\r
+\r
+\r
+\r
+    }\r
+\r
+       LEXSTATE->type = _type;\r
+\r
+    // This is where rules clean up and exit\r
+    //\r
+    goto ruleFLOATTYPEEx; /* Prevent compiler warnings */\r
+    ruleFLOATTYPEEx: ;\r
+\r
+}\r
+// $ANTLR end FLOATTYPE\r
+\r
+//   Comes from: 32:8: ( ( 'a' .. 'z' )+ )\r
+/** \brief Lexer rule generated by ANTLR3\r
+ *\r
+ * $ANTLR start ID\r
+ *\r
+ * Looks to match the characters the constitute the token ID\r
+ * from the attached input stream.\r
+ *\r
+ *\r
+ * \remark\r
+ *  - lexer->error == ANTLR3_TRUE if an exception was thrown.\r
+ */\r
+static ANTLR3_INLINE\r
+void mID(pLangLexer ctx)\r
+{\r
+       ANTLR3_UINT32   _type;\r
+\r
+    _type          = ID;\r
+       \r
+    \r
+    // Lang.g:32:8: ( ( 'a' .. 'z' )+ )\r
+    // Lang.g:32:10: ( 'a' .. 'z' )+\r
+    {\r
+        // Lang.g:32:10: ( 'a' .. 'z' )+\r
+        {\r
+            int cnt1=0;\r
+\r
+            for (;;)\r
+            {\r
+                int alt1=2;\r
+               switch ( LA(1) ) \r
+               {\r
+               case 'a':\r
+               case 'b':\r
+               case 'c':\r
+               case 'd':\r
+               case 'e':\r
+               case 'f':\r
+               case 'g':\r
+               case 'h':\r
+               case 'i':\r
+               case 'j':\r
+               case 'k':\r
+               case 'l':\r
+               case 'm':\r
+               case 'n':\r
+               case 'o':\r
+               case 'p':\r
+               case 'q':\r
+               case 'r':\r
+               case 's':\r
+               case 't':\r
+               case 'u':\r
+               case 'v':\r
+               case 'w':\r
+               case 'x':\r
+               case 'y':\r
+               case 'z':\r
+                       {\r
+                               alt1=1;\r
+                       }\r
+                   break;\r
+\r
+               }\r
+\r
+               switch (alt1) \r
+               {\r
+                   case 1:\r
+                       // Lang.g:32:10: 'a' .. 'z'\r
+                       {\r
+                           MATCHRANGE('a', 'z'); \r
+                           if  (HASEXCEPTION())\r
+                           {\r
+                               goto ruleIDEx;\r
+                           }\r
+\r
+\r
+                       }\r
+                       break;\r
+\r
+                   default:\r
+                   \r
+                       if ( cnt1 >= 1 )\r
+                       {\r
+                           goto loop1;\r
+                       }\r
+                       /* mismatchedSetEx()\r
+                        */\r
+                       CONSTRUCTEX();\r
+                       EXCEPTION->type = ANTLR3_EARLY_EXIT_EXCEPTION;\r
+                       EXCEPTION->name = (void *)ANTLR3_EARLY_EXIT_NAME;\r
+\r
+\r
+                       goto ruleIDEx;\r
+               }\r
+               cnt1++;\r
+            }\r
+            loop1: ;   /* Jump to here if this rule does not match */\r
+        }\r
+\r
+    }\r
+\r
+       LEXSTATE->type = _type;\r
+\r
+    // This is where rules clean up and exit\r
+    //\r
+    goto ruleIDEx; /* Prevent compiler warnings */\r
+    ruleIDEx: ;\r
+\r
+}\r
+// $ANTLR end ID\r
+\r
+//   Comes from: 33:9: ( ( '0' .. '9' )+ )\r
+/** \brief Lexer rule generated by ANTLR3\r
+ *\r
+ * $ANTLR start INT\r
+ *\r
+ * Looks to match the characters the constitute the token INT\r
+ * from the attached input stream.\r
+ *\r
+ *\r
+ * \remark\r
+ *  - lexer->error == ANTLR3_TRUE if an exception was thrown.\r
+ */\r
+static ANTLR3_INLINE\r
+void mINT(pLangLexer ctx)\r
+{\r
+       ANTLR3_UINT32   _type;\r
+\r
+    _type          = INT;\r
+       \r
+    \r
+    // Lang.g:33:9: ( ( '0' .. '9' )+ )\r
+    // Lang.g:33:11: ( '0' .. '9' )+\r
+    {\r
+        // Lang.g:33:11: ( '0' .. '9' )+\r
+        {\r
+            int cnt2=0;\r
+\r
+            for (;;)\r
+            {\r
+                int alt2=2;\r
+               switch ( LA(1) ) \r
+               {\r
+               case '0':\r
+               case '1':\r
+               case '2':\r
+               case '3':\r
+               case '4':\r
+               case '5':\r
+               case '6':\r
+               case '7':\r
+               case '8':\r
+               case '9':\r
+                       {\r
+                               alt2=1;\r
+                       }\r
+                   break;\r
+\r
+               }\r
+\r
+               switch (alt2) \r
+               {\r
+                   case 1:\r
+                       // Lang.g:33:11: '0' .. '9'\r
+                       {\r
+                           MATCHRANGE('0', '9'); \r
+                           if  (HASEXCEPTION())\r
+                           {\r
+                               goto ruleINTEx;\r
+                           }\r
+\r
+\r
+                       }\r
+                       break;\r
+\r
+                   default:\r
+                   \r
+                       if ( cnt2 >= 1 )\r
+                       {\r
+                           goto loop2;\r
+                       }\r
+                       /* mismatchedSetEx()\r
+                        */\r
+                       CONSTRUCTEX();\r
+                       EXCEPTION->type = ANTLR3_EARLY_EXIT_EXCEPTION;\r
+                       EXCEPTION->name = (void *)ANTLR3_EARLY_EXIT_NAME;\r
+\r
+\r
+                       goto ruleINTEx;\r
+               }\r
+               cnt2++;\r
+            }\r
+            loop2: ;   /* Jump to here if this rule does not match */\r
+        }\r
+\r
+    }\r
+\r
+       LEXSTATE->type = _type;\r
+\r
+    // This is where rules clean up and exit\r
+    //\r
+    goto ruleINTEx; /* Prevent compiler warnings */\r
+    ruleINTEx: ;\r
+\r
+}\r
+// $ANTLR end INT\r
+\r
+//   Comes from: 34:8: ( ( ' ' | '\\n' | '\\r' ) )\r
+/** \brief Lexer rule generated by ANTLR3\r
+ *\r
+ * $ANTLR start WS\r
+ *\r
+ * Looks to match the characters the constitute the token WS\r
+ * from the attached input stream.\r
+ *\r
+ *\r
+ * \remark\r
+ *  - lexer->error == ANTLR3_TRUE if an exception was thrown.\r
+ */\r
+static ANTLR3_INLINE\r
+void mWS(pLangLexer ctx)\r
+{\r
+       ANTLR3_UINT32   _type;\r
+\r
+    _type          = WS;\r
+       \r
+    \r
+    // Lang.g:34:8: ( ( ' ' | '\\n' | '\\r' ) )\r
+    // Lang.g:34:10: ( ' ' | '\\n' | '\\r' )\r
+    {\r
+        if ( LA(1) == '\n' || LA(1) == '\r' || LA(1) == ' ' )\r
+        {\r
+            CONSUME();\r
+\r
+        }\r
+        else \r
+        {\r
+            CONSTRUCTEX();\r
+            EXCEPTION->type         = ANTLR3_MISMATCHED_SET_EXCEPTION;\r
+            EXCEPTION->name         = (void *)ANTLR3_MISMATCHED_SET_NAME;\r
+\r
+            LRECOVER();    goto ruleWSEx;\r
+        }\r
+\r
+        {\r
+            LEXSTATE->channel=HIDDEN;\r
+        }\r
+\r
+    }\r
+\r
+       LEXSTATE->type = _type;\r
+\r
+    // This is where rules clean up and exit\r
+    //\r
+    goto ruleWSEx; /* Prevent compiler warnings */\r
+    ruleWSEx: ;\r
+\r
+}\r
+// $ANTLR end WS\r
+\r
+/** This is the entry point in to the lexer from an object that\r
+ *  wants to generate the next token, such as a pCOMMON_TOKEN_STREAM\r
+ */\r
+static void \r
+mTokens(pLangLexer ctx)\r
+{\r
+    {\r
+        //  Lang.g:1:8: ( T__10 | INTTYPE | FLOATTYPE | ID | INT | WS )\r
+        \r
+        ANTLR3_UINT32 alt3;\r
+\r
+        alt3=6;\r
+\r
+        switch ( LA(1) ) \r
+        {\r
+        case ';':\r
+               {\r
+                       alt3=1;\r
+               }\r
+            break;\r
+        case 'i':\r
+               {\r
+                       switch ( LA(2) ) \r
+                       {\r
+                       case 'n':\r
+                               {\r
+                                       switch ( LA(3) ) \r
+                                       {\r
+                                       case 't':\r
+                                               {\r
+                                                       switch ( LA(4) ) \r
+                                                       {\r
+                                                       case 'a':\r
+                                                       case 'b':\r
+                                                       case 'c':\r
+                                                       case 'd':\r
+                                                       case 'e':\r
+                                                       case 'f':\r
+                                                       case 'g':\r
+                                                       case 'h':\r
+                                                       case 'i':\r
+                                                       case 'j':\r
+                                                       case 'k':\r
+                                                       case 'l':\r
+                                                       case 'm':\r
+                                                       case 'n':\r
+                                                       case 'o':\r
+                                                       case 'p':\r
+                                                       case 'q':\r
+                                                       case 'r':\r
+                                                       case 's':\r
+                                                       case 't':\r
+                                                       case 'u':\r
+                                                       case 'v':\r
+                                                       case 'w':\r
+                                                       case 'x':\r
+                                                       case 'y':\r
+                                                       case 'z':\r
+                                                               {\r
+                                                                       alt3=4;\r
+                                                               }\r
+                                                           break;\r
+\r
+                                                       default:\r
+                                                           alt3=2;}\r
+\r
+                                               }\r
+                                           break;\r
+\r
+                                       default:\r
+                                           alt3=4;}\r
+\r
+                               }\r
+                           break;\r
+\r
+                       default:\r
+                           alt3=4;}\r
+\r
+               }\r
+            break;\r
+        case 'f':\r
+               {\r
+                       switch ( LA(2) ) \r
+                       {\r
+                       case 'l':\r
+                               {\r
+                                       switch ( LA(3) ) \r
+                                       {\r
+                                       case 'o':\r
+                                               {\r
+                                                       switch ( LA(4) ) \r
+                                                       {\r
+                                                       case 'a':\r
+                                                               {\r
+                                                                       switch ( LA(5) ) \r
+                                                                       {\r
+                                                                       case 't':\r
+                                                                               {\r
+                                                                                       switch ( LA(6) ) \r
+                                                                                       {\r
+                                                                                       case 'a':\r
+                                                                                       case 'b':\r
+                                                                                       case 'c':\r
+                                                                                       case 'd':\r
+                                                                                       case 'e':\r
+                                                                                       case 'f':\r
+                                                                                       case 'g':\r
+                                                                                       case 'h':\r
+                                                                                       case 'i':\r
+                                                                                       case 'j':\r
+                                                                                       case 'k':\r
+                                                                                       case 'l':\r
+                                                                                       case 'm':\r
+                                                                                       case 'n':\r
+                                                                                       case 'o':\r
+                                                                                       case 'p':\r
+                                                                                       case 'q':\r
+                                                                                       case 'r':\r
+                                                                                       case 's':\r
+                                                                                       case 't':\r
+                                                                                       case 'u':\r
+                                                                                       case 'v':\r
+                                                                                       case 'w':\r
+                                                                                       case 'x':\r
+                                                                                       case 'y':\r
+                                                                                       case 'z':\r
+                                                                                               {\r
+                                                                                                       alt3=4;\r
+                                                                                               }\r
+                                                                                           break;\r
+\r
+                                                                                       default:\r
+                                                                                           alt3=3;}\r
+\r
+                                                                               }\r
+                                                                           break;\r
+\r
+                                                                       default:\r
+                                                                           alt3=4;}\r
+\r
+                                                               }\r
+                                                           break;\r
+\r
+                                                       default:\r
+                                                           alt3=4;}\r
+\r
+                                               }\r
+                                           break;\r
+\r
+                                       default:\r
+                                           alt3=4;}\r
+\r
+                               }\r
+                           break;\r
+\r
+                       default:\r
+                           alt3=4;}\r
+\r
+               }\r
+            break;\r
+        case 'a':\r
+        case 'b':\r
+        case 'c':\r
+        case 'd':\r
+        case 'e':\r
+        case 'g':\r
+        case 'h':\r
+        case 'j':\r
+        case 'k':\r
+        case 'l':\r
+        case 'm':\r
+        case 'n':\r
+        case 'o':\r
+        case 'p':\r
+        case 'q':\r
+        case 'r':\r
+        case 's':\r
+        case 't':\r
+        case 'u':\r
+        case 'v':\r
+        case 'w':\r
+        case 'x':\r
+        case 'y':\r
+        case 'z':\r
+               {\r
+                       alt3=4;\r
+               }\r
+            break;\r
+        case '0':\r
+        case '1':\r
+        case '2':\r
+        case '3':\r
+        case '4':\r
+        case '5':\r
+        case '6':\r
+        case '7':\r
+        case '8':\r
+        case '9':\r
+               {\r
+                       alt3=5;\r
+               }\r
+            break;\r
+        case '\n':\r
+        case '\r':\r
+        case ' ':\r
+               {\r
+                       alt3=6;\r
+               }\r
+            break;\r
+\r
+        default:\r
+            CONSTRUCTEX();\r
+            EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;\r
+            EXCEPTION->message      = (void *)"";\r
+            EXCEPTION->decisionNum  = 3;\r
+            EXCEPTION->state        = 0;\r
+\r
+\r
+            goto ruleTokensEx;\r
+        }\r
+\r
+        switch (alt3) \r
+        {\r
+       case 1:\r
+           // Lang.g:1:10: T__10\r
+           {\r
+               /* 1:10: T__10 */\r
+               mT__10(ctx ); \r
+               if  (HASEXCEPTION())\r
+               {\r
+                   goto ruleTokensEx;\r
+               }\r
+\r
+\r
+           }\r
+           break;\r
+       case 2:\r
+           // Lang.g:1:16: INTTYPE\r
+           {\r
+               /* 1:16: INTTYPE */\r
+               mINTTYPE(ctx ); \r
+               if  (HASEXCEPTION())\r
+               {\r
+                   goto ruleTokensEx;\r
+               }\r
+\r
+\r
+           }\r
+           break;\r
+       case 3:\r
+           // Lang.g:1:24: FLOATTYPE\r
+           {\r
+               /* 1:24: FLOATTYPE */\r
+               mFLOATTYPE(ctx ); \r
+               if  (HASEXCEPTION())\r
+               {\r
+                   goto ruleTokensEx;\r
+               }\r
+\r
+\r
+           }\r
+           break;\r
+       case 4:\r
+           // Lang.g:1:34: ID\r
+           {\r
+               /* 1:34: ID */\r
+               mID(ctx ); \r
+               if  (HASEXCEPTION())\r
+               {\r
+                   goto ruleTokensEx;\r
+               }\r
+\r
+\r
+           }\r
+           break;\r
+       case 5:\r
+           // Lang.g:1:37: INT\r
+           {\r
+               /* 1:37: INT */\r
+               mINT(ctx ); \r
+               if  (HASEXCEPTION())\r
+               {\r
+                   goto ruleTokensEx;\r
+               }\r
+\r
+\r
+           }\r
+           break;\r
+       case 6:\r
+           // Lang.g:1:41: WS\r
+           {\r
+               /* 1:41: WS */\r
+               mWS(ctx ); \r
+               if  (HASEXCEPTION())\r
+               {\r
+                   goto ruleTokensEx;\r
+               }\r
+\r
+\r
+           }\r
+           break;\r
+\r
+        }\r
+    }\r
+\r
+    \r
+    goto ruleTokensEx; /* Prevent compiler warnings */\r
+ruleTokensEx: ;\r
+}\r
+\r
+/* =========================================================================\r
+ * Lexer matching rules end.\r
+ * =========================================================================\r
+ */\r
+/* End of Lexer code\r
+ * ================================================\r
+ * ================================================\r
+ */ \r
+\r
+\r
+/* End of code\r
+ * =============================================================================\r
+ */\r