]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.databoard/cpp/DataBoardTest/DataBoard/SimanticsDataLexer.c
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.databoard / cpp / DataBoardTest / DataBoard / SimanticsDataLexer.c
index d09a4345a6b7702d42eee21144256d04c3fd3542..7f860747b4ef38654d2a752679ec8d7b2db9a4be 100644 (file)
-/** \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 : C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g\r
- *     -                            On : 2010-03-26 13:33:28\r
- *     -                 for the lexer : SimanticsDataLexerLexer *\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    "SimanticsDataLexer.h"\r
-/* ----------------------------------------- */\r
-\r
-\r
-/** String literals used by SimanticsDataLexer 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[]  = { 0x74, 0x79, 0x70, 0x65,  ANTLR3_STRING_TERMINATOR};\r
-static ANTLR3_UCHAR    lit_2[]  = { 0x2E, 0x2E,  ANTLR3_STRING_TERMINATOR};\r
-static ANTLR3_UCHAR    lit_3[]  = { 0x74, 0x72, 0x75, 0x65,  ANTLR3_STRING_TERMINATOR};\r
-static ANTLR3_UCHAR    lit_4[]  = { 0x66, 0x61, 0x6C, 0x73, 0x65,  ANTLR3_STRING_TERMINATOR};\r
-static ANTLR3_UCHAR    lit_5[]  = { 0x6E, 0x75, 0x6C, 0x6C,  ANTLR3_STRING_TERMINATOR};\r
-static ANTLR3_UCHAR    lit_6[]  = { 0x6D, 0x61, 0x70,  ANTLR3_STRING_TERMINATOR};\r
-static ANTLR3_UCHAR    lit_7[]  = { 0x2F, 0x2F,  ANTLR3_STRING_TERMINATOR};\r
-static ANTLR3_UCHAR    lit_8[]  = { 0x2F, 0x2A,  ANTLR3_STRING_TERMINATOR};\r
-static ANTLR3_UCHAR    lit_9[]  = { 0x2A, 0x2F,  ANTLR3_STRING_TERMINATOR};\r
-static ANTLR3_UCHAR    lit_10[]  = { 0x22, 0x22, 0x22,  ANTLR3_STRING_TERMINATOR};\r
-static ANTLR3_UCHAR    lit_11[]  = { 0x22, 0x22,  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)   pSimanticsDataLexer_##scope##_SCOPE\r
-#define SCOPE_STACK(scope)  pSimanticsDataLexer_##scope##Stack\r
-#define        SCOPE_TOP(scope)    ctx->pSimanticsDataLexer_##scope##Top\r
-#define        SCOPE_SIZE(scope)               ctx->pSimanticsDataLexer_##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__34    (pSimanticsDataLexer ctx);\r
-static ANTLR3_INLINE  void     mT__35    (pSimanticsDataLexer ctx);\r
-static ANTLR3_INLINE  void     mT__36    (pSimanticsDataLexer ctx);\r
-static ANTLR3_INLINE  void     mT__37    (pSimanticsDataLexer ctx);\r
-static ANTLR3_INLINE  void     mT__38    (pSimanticsDataLexer ctx);\r
-static ANTLR3_INLINE  void     mT__39    (pSimanticsDataLexer ctx);\r
-static ANTLR3_INLINE  void     mT__40    (pSimanticsDataLexer ctx);\r
-static ANTLR3_INLINE  void     mT__41    (pSimanticsDataLexer ctx);\r
-static ANTLR3_INLINE  void     mT__42    (pSimanticsDataLexer ctx);\r
-static ANTLR3_INLINE  void     mT__43    (pSimanticsDataLexer ctx);\r
-static ANTLR3_INLINE  void     mT__44    (pSimanticsDataLexer ctx);\r
-static ANTLR3_INLINE  void     mT__45    (pSimanticsDataLexer ctx);\r
-static ANTLR3_INLINE  void     mT__46    (pSimanticsDataLexer ctx);\r
-static ANTLR3_INLINE  void     mT__47    (pSimanticsDataLexer ctx);\r
-static ANTLR3_INLINE  void     mT__48    (pSimanticsDataLexer ctx);\r
-static ANTLR3_INLINE  void     mT__49    (pSimanticsDataLexer ctx);\r
-static ANTLR3_INLINE  void     mID    (pSimanticsDataLexer ctx);\r
-static ANTLR3_INLINE  void     mINT    (pSimanticsDataLexer ctx);\r
-static ANTLR3_INLINE  void     mFLOAT    (pSimanticsDataLexer ctx);\r
-static ANTLR3_INLINE  void     mCOMMENT    (pSimanticsDataLexer ctx);\r
-static ANTLR3_INLINE  void     mWS    (pSimanticsDataLexer ctx);\r
-static ANTLR3_INLINE  void     mSTRING    (pSimanticsDataLexer ctx);\r
-static ANTLR3_INLINE  void     mEXPONENT    (pSimanticsDataLexer ctx);\r
-static ANTLR3_INLINE  void     mHEX_DIGIT    (pSimanticsDataLexer ctx);\r
-static ANTLR3_INLINE  void     mESC_SEQ    (pSimanticsDataLexer ctx);\r
-static ANTLR3_INLINE  void     mOCTAL_ESC    (pSimanticsDataLexer ctx);\r
-static ANTLR3_INLINE  void     mUNICODE_ESC    (pSimanticsDataLexer ctx);\r
-static ANTLR3_INLINE  void     mTokens    (pSimanticsDataLexer ctx);\r
-static void    SimanticsDataLexerFree(pSimanticsDataLexer ctx);\r
-\r
-/* =========================================================================\r
- * Lexer matching rules end.\r
- * =========================================================================\r
- */\r
-\r
-\r
-\r
-static void\r
-SimanticsDataLexerFree  (pSimanticsDataLexer 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[] = "C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.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 SimanticsDataLexer\r
- *\r
- * \param[in]    instream Pointer to an initialized input stream\r
- * \return \r
- *     - Success pSimanticsDataLexer initialized for the lex start\r
- *     - Fail NULL\r
- */\r
-ANTLR3_API pSimanticsDataLexer SimanticsDataLexerNew         \r
-(pANTLR3_INPUT_STREAM instream)\r
-{\r
-       // See if we can create a new lexer with the standard constructor\r
-       //\r
-       return SimanticsDataLexerNewSSD(instream, NULL);\r
-}\r
-\r
-/** \brief Create a new lexer called SimanticsDataLexer\r
- *\r
- * \param[in]    instream Pointer to an initialized input stream\r
- * \param[state] state Previously created shared recognizer stat\r
- * \return \r
- *     - Success pSimanticsDataLexer initialized for the lex start\r
- *     - Fail NULL\r
- */\r
-ANTLR3_API pSimanticsDataLexer SimanticsDataLexerNewSSD         \r
-(pANTLR3_INPUT_STREAM instream, pANTLR3_RECOGNIZER_SHARED_STATE state)\r
-{\r
-    pSimanticsDataLexer ctx; // Context structure we will build and return\r
-\r
-    ctx = (pSimanticsDataLexer) ANTLR3_CALLOC(1, sizeof(SimanticsDataLexer));\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 SimanticsDataLexer.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 SimanticsDataLexer interface\r
-     */\r
-    ctx->mT__34        = mT__34;\r
-    ctx->mT__35        = mT__35;\r
-    ctx->mT__36        = mT__36;\r
-    ctx->mT__37        = mT__37;\r
-    ctx->mT__38        = mT__38;\r
-    ctx->mT__39        = mT__39;\r
-    ctx->mT__40        = mT__40;\r
-    ctx->mT__41        = mT__41;\r
-    ctx->mT__42        = mT__42;\r
-    ctx->mT__43        = mT__43;\r
-    ctx->mT__44        = mT__44;\r
-    ctx->mT__45        = mT__45;\r
-    ctx->mT__46        = mT__46;\r
-    ctx->mT__47        = mT__47;\r
-    ctx->mT__48        = mT__48;\r
-    ctx->mT__49        = mT__49;\r
-    ctx->mID   = mID;\r
-    ctx->mINT  = mINT;\r
-    ctx->mFLOAT        = mFLOAT;\r
-    ctx->mCOMMENT      = mCOMMENT;\r
-    ctx->mWS   = mWS;\r
-    ctx->mSTRING       = mSTRING;\r
-    ctx->mEXPONENT     = mEXPONENT;\r
-    ctx->mHEX_DIGIT    = mHEX_DIGIT;\r
-    ctx->mESC_SEQ      = mESC_SEQ;\r
-    ctx->mOCTAL_ESC    = mOCTAL_ESC;\r
-    ctx->mUNICODE_ESC  = mUNICODE_ESC;\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          = SimanticsDataLexerFree;\r
-\r
-    \r
-    \r
-\r
-\r
-    /* Return the newly built lexer to the caller\r
-     */\r
-    return  ctx;\r
-}\r
-\r
-/* =========================================================================\r
- * DFA tables for the lexer\r
- */\r
-/** Static dfa state tables for Cyclic dfa:\r
- *    40:1: FLOAT : ( ( '-' )? ( '0' .. '9' )+ '.' ( '0' .. '9' )+ ( EXPONENT )? | ( '-' )? ( '0' .. '9' )+ EXPONENT );\r
- */\r
-static const ANTLR3_INT32 dfa10_eot[5] =\r
-    {\r
-       -1, -1, -1, -1, -1\r
-    };\r
-static const ANTLR3_INT32 dfa10_eof[5] =\r
-    {\r
-       -1, -1, -1, -1, -1\r
-    };\r
-static const ANTLR3_INT32 dfa10_min[5] =\r
-    {\r
-       45, 48, 46, -1, -1\r
-    };\r
-static const ANTLR3_INT32 dfa10_max[5] =\r
-    {\r
-       57, 57, 101, -1, -1\r
-    };\r
-static const ANTLR3_INT32 dfa10_accept[5] =\r
-    {\r
-       -1, -1, -1, 2, 1\r
-    };\r
-static const ANTLR3_INT32 dfa10_special[5] =\r
-    {  \r
-       -1, -1, -1, -1, -1\r
-    };\r
-\r
-/** Used when there is no transition table entry for a particular state */\r
-#define dfa10_T_empty      NULL\r
-\r
-static const ANTLR3_INT32 dfa10_T0[] =\r
-    {\r
-       2, 2, 2, 2, 2, 2, 2, 2, 2, 2\r
-    };static const ANTLR3_INT32 dfa10_T1[] =\r
-    {\r
-       1, -1, -1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2\r
-    };static const ANTLR3_INT32 dfa10_T2[] =\r
-    {\r
-       4, -1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, \r
-       -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, \r
-       -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3\r
-    };\r
-\r
-/* Transition tables are a table of sub tables, with some tables\r
- * reused for efficiency.\r
- */\r
-static const ANTLR3_INT32 * const dfa10_transitions[] =\r
-{\r
-    dfa10_T1, dfa10_T0, dfa10_T2, dfa10_T_empty, dfa10_T_empty \r
-};\r
-\r
-\r
-/* Declare tracking structure for Cyclic DFA 10\r
- */\r
-static\r
-ANTLR3_CYCLIC_DFA cdfa10\r
-    =  {\r
-           10,             /* Decision number of this dfa          */\r
-           /* Which decision this represents:   */\r
-           (const pANTLR3_UCHAR)"40:1: FLOAT : ( ( '-' )? ( '0' .. '9' )+ '.' ( '0' .. '9' )+ ( EXPONENT )? | ( '-' )? ( '0' .. '9' )+ EXPONENT );",   \r
-           (CDFA_SPECIAL_FUNC) antlr3dfaspecialStateTransition,        /* Default special state transition function    */\r
-           antlr3dfaspecialTransition,         /* DFA specialTransition is currently just a default function in the runtime */\r
-           antlr3dfapredict,                   /* DFA simulator function is in the runtime */\r
-           dfa10_eot,      /* EOT table                            */\r
-           dfa10_eof,      /* EOF table                            */\r
-           dfa10_min,      /* Minimum tokens for each state    */\r
-           dfa10_max,      /* Maximum tokens for each state    */\r
-           dfa10_accept,       /* Accept table                     */\r
-           dfa10_special,      /* Special transition states        */\r
-           dfa10_transitions   /* Table of transition tables       */\r
-\r
-       };          \r
-/* End of Cyclic DFA 10\r
- * ---------------------\r
- *//** Static dfa state tables for Cyclic dfa:\r
- *    1:1: Tokens : ( T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | ID | INT | FLOAT | COMMENT | WS | STRING );\r
- */\r
-static const ANTLR3_INT32 dfa22_eot[44] =\r
-    {\r
-       -1, 16, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 16, 16, 16, -1, -1, \r
-       28, -1, -1, -1, 16, 16, 16, 16, 16, -1, -1, 16, 16, 16, 16, 38, 39, 40, \r
-       16, 42, -1, -1, -1, 43, -1, -1\r
-    };\r
-static const ANTLR3_INT32 dfa22_eof[44] =\r
-    {\r
-       -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, \r
-       -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, \r
-       -1, -1, -1, -1, -1, -1, -1, -1\r
-    };\r
-static const ANTLR3_INT32 dfa22_min[44] =\r
-    {\r
-       9, 114, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 97, 117, 97, -1, 48, \r
-       46, -1, -1, -1, 112, 117, 108, 108, 112, -1, -1, 101, 101, 115, 108, 48, \r
-       48, 48, 101, 48, -1, -1, -1, 48, -1, -1\r
-    };\r
-static const ANTLR3_INT32 dfa22_max[44] =\r
-    {\r
-       125, 121, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 97, 117, 97, -1, \r
-       57, 101, -1, -1, -1, 112, 117, 108, 108, 112, -1, -1, 101, 101, 115, 108, \r
-       122, 122, 122, 101, 122, -1, -1, -1, 122, -1, -1\r
-    };\r
-static const ANTLR3_INT32 dfa22_accept[44] =\r
-    {\r
-       -1, -1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, 17, -1, -1, 20, \r
-       21, 22, -1, -1, -1, -1, -1, 19, 18, -1, -1, -1, -1, -1, -1, -1, -1, -1, \r
-       16, 1, 13, -1, 15, 14\r
-    };\r
-static const ANTLR3_INT32 dfa22_special[44] =\r
-    {  \r
-       -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, \r
-       -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, \r
-       -1, -1, -1, -1, -1, -1, -1, -1\r
-    };\r
-\r
-/** Used when there is no transition table entry for a particular state */\r
-#define dfa22_T_empty      NULL\r
-\r
-static const ANTLR3_INT32 dfa22_T0[] =\r
-    {\r
-       16, 16, 16, 16, 16, 16, 16, 16, 16, 16, -1, -1, -1, -1, -1, -1, -1, 16, \r
-       16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, \r
-       16, 16, 16, 16, 16, 16, 16, -1, -1, -1, -1, 16, -1, 16, 16, 16, 16, 16, \r
-       16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, \r
-       16, 16, 16\r
-    };static const ANTLR3_INT32 dfa22_T1[] =\r
-    {\r
-       41\r
-    };static const ANTLR3_INT32 dfa22_T2[] =\r
-    {\r
-       36\r
-    };static const ANTLR3_INT32 dfa22_T3[] =\r
-    {\r
-       31\r
-    };static const ANTLR3_INT32 dfa22_T4[] =\r
-    {\r
-       26\r
-    };static const ANTLR3_INT32 dfa22_T5[] =\r
-    {\r
-       35\r
-    };static const ANTLR3_INT32 dfa22_T6[] =\r
-    {\r
-       30\r
-    };static const ANTLR3_INT32 dfa22_T7[] =\r
-    {\r
-       33\r
-    };static const ANTLR3_INT32 dfa22_T8[] =\r
-    {\r
-       25\r
-    };static const ANTLR3_INT32 dfa22_T9[] =\r
-    {\r
-       20, 20, -1, -1, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, \r
-       -1, -1, -1, -1, -1, 20, -1, 21, -1, -1, -1, -1, -1, 7, 9, -1, -1, 8, 17, \r
-       6, 19, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 12, -1, -1, 2, -1, -1, -1, \r
-       16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, \r
-       16, 16, 16, 16, 16, 16, 16, 16, 4, -1, 5, -1, 16, -1, 16, 16, 16, 16, 16, \r
-       13, 16, 16, 16, 16, 16, 16, 15, 14, 16, 16, 16, 16, 16, 1, 16, 16, 16, \r
-       16, 16, 16, 10, 3, 11\r
-    };static const ANTLR3_INT32 dfa22_T10[] =\r
-    {\r
-       24\r
-    };static const ANTLR3_INT32 dfa22_T11[] =\r
-    {\r
-       32\r
-    };static const ANTLR3_INT32 dfa22_T12[] =\r
-    {\r
-       37\r
-    };static const ANTLR3_INT32 dfa22_T13[] =\r
-    {\r
-       29\r
-    };static const ANTLR3_INT32 dfa22_T14[] =\r
-    {\r
-       34\r
-    };static const ANTLR3_INT32 dfa22_T15[] =\r
-    {\r
-       27, -1, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, -1, -1, -1, -1, -1, -1, \r
-       -1, -1, -1, -1, -1, 27, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, \r
-       -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, \r
-       -1, 27\r
-    };static const ANTLR3_INT32 dfa22_T16[] =\r
-    {\r
-       23, -1, -1, -1, -1, -1, -1, 22\r
-    };static const ANTLR3_INT32 dfa22_T17[] =\r
-    {\r
-       18, 18, 18, 18, 18, 18, 18, 18, 18, 18\r
-    };\r
-\r
-/* Transition tables are a table of sub tables, with some tables\r
- * reused for efficiency.\r
- */\r
-static const ANTLR3_INT32 * const dfa22_transitions[] =\r
-{\r
-    dfa22_T9, dfa22_T16, dfa22_T_empty, dfa22_T_empty, dfa22_T_empty, dfa22_T_empty, \r
-    dfa22_T_empty, dfa22_T_empty, dfa22_T_empty, dfa22_T_empty, dfa22_T_empty, \r
-    dfa22_T_empty, dfa22_T_empty, dfa22_T10, dfa22_T8, dfa22_T4, dfa22_T_empty, \r
-    dfa22_T17, dfa22_T15, dfa22_T_empty, dfa22_T_empty, dfa22_T_empty, dfa22_T13, \r
-    dfa22_T6, dfa22_T3, dfa22_T11, dfa22_T7, dfa22_T_empty, dfa22_T_empty, \r
-    dfa22_T14, dfa22_T5, dfa22_T2, dfa22_T12, dfa22_T0, dfa22_T0, dfa22_T0, \r
-    dfa22_T1, dfa22_T0, dfa22_T_empty, dfa22_T_empty, dfa22_T_empty, dfa22_T0, \r
-    dfa22_T_empty, dfa22_T_empty       \r
-};\r
-\r
-\r
-/* Declare tracking structure for Cyclic DFA 22\r
- */\r
-static\r
-ANTLR3_CYCLIC_DFA cdfa22\r
-    =  {\r
-           22,             /* Decision number of this dfa          */\r
-           /* Which decision this represents:   */\r
-           (const pANTLR3_UCHAR)"1:1: Tokens : ( T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | ID | INT | FLOAT | COMMENT | WS | STRING );", \r
-           (CDFA_SPECIAL_FUNC) antlr3dfaspecialStateTransition,        /* Default special state transition function    */\r
-           antlr3dfaspecialTransition,         /* DFA specialTransition is currently just a default function in the runtime */\r
-           antlr3dfapredict,                   /* DFA simulator function is in the runtime */\r
-           dfa22_eot,      /* EOT table                            */\r
-           dfa22_eof,      /* EOF table                            */\r
-           dfa22_min,      /* Minimum tokens for each state    */\r
-           dfa22_max,      /* Maximum tokens for each state    */\r
-           dfa22_accept,       /* Accept table                     */\r
-           dfa22_special,      /* Special transition states        */\r
-           dfa22_transitions   /* Table of transition tables       */\r
-\r
-       };          \r
-/* End of Cyclic DFA 22\r
- * ---------------------\r
- */ \r
-/* =========================================================================\r
- * End of DFA tables for the lexer\r
- */ \r
-\r
-/* =========================================================================\r
- * Functions to match the lexer grammar defined tokens from the input stream\r
- */\r
-\r
-//   Comes from: 7:7: ( 'type' )\r
-/** \brief Lexer rule generated by ANTLR3\r
- *\r
- * $ANTLR start T__34\r
- *\r
- * Looks to match the characters the constitute the token T__34\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__34(pSimanticsDataLexer ctx)\r
-{\r
-       ANTLR3_UINT32   _type;\r
-\r
-    _type          = T__34;\r
-       \r
-    \r
-    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:7:7: ( 'type' )\r
-    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:7:9: 'type'\r
-    {\r
-        MATCHS(lit_1); \r
-        if  (HASEXCEPTION())\r
-        {\r
-            goto ruleT__34Ex;\r
-        }\r
-\r
-\r
-\r
-    }\r
-\r
-       LEXSTATE->type = _type;\r
-\r
-    // This is where rules clean up and exit\r
-    //\r
-    goto ruleT__34Ex; /* Prevent compiler warnings */\r
-    ruleT__34Ex: ;\r
-\r
-}\r
-// $ANTLR end T__34\r
-\r
-//   Comes from: 8:7: ( '=' )\r
-/** \brief Lexer rule generated by ANTLR3\r
- *\r
- * $ANTLR start T__35\r
- *\r
- * Looks to match the characters the constitute the token T__35\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__35(pSimanticsDataLexer ctx)\r
-{\r
-       ANTLR3_UINT32   _type;\r
-\r
-    _type          = T__35;\r
-       \r
-    \r
-    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:8:7: ( '=' )\r
-    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:8:9: '='\r
-    {\r
-        MATCHC('='); \r
-        if  (HASEXCEPTION())\r
-        {\r
-            goto ruleT__35Ex;\r
-        }\r
-\r
-\r
-    }\r
-\r
-       LEXSTATE->type = _type;\r
-\r
-    // This is where rules clean up and exit\r
-    //\r
-    goto ruleT__35Ex; /* Prevent compiler warnings */\r
-    ruleT__35Ex: ;\r
-\r
-}\r
-// $ANTLR end T__35\r
-\r
-//   Comes from: 9:7: ( '|' )\r
-/** \brief Lexer rule generated by ANTLR3\r
- *\r
- * $ANTLR start T__36\r
- *\r
- * Looks to match the characters the constitute the token T__36\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__36(pSimanticsDataLexer ctx)\r
-{\r
-       ANTLR3_UINT32   _type;\r
-\r
-    _type          = T__36;\r
-       \r
-    \r
-    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:9:7: ( '|' )\r
-    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:9:9: '|'\r
-    {\r
-        MATCHC('|'); \r
-        if  (HASEXCEPTION())\r
-        {\r
-            goto ruleT__36Ex;\r
-        }\r
-\r
-\r
-    }\r
-\r
-       LEXSTATE->type = _type;\r
-\r
-    // This is where rules clean up and exit\r
-    //\r
-    goto ruleT__36Ex; /* Prevent compiler warnings */\r
-    ruleT__36Ex: ;\r
-\r
-}\r
-// $ANTLR end T__36\r
-\r
-//   Comes from: 10:7: ( '[' )\r
-/** \brief Lexer rule generated by ANTLR3\r
- *\r
- * $ANTLR start T__37\r
- *\r
- * Looks to match the characters the constitute the token T__37\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__37(pSimanticsDataLexer ctx)\r
-{\r
-       ANTLR3_UINT32   _type;\r
-\r
-    _type          = T__37;\r
-       \r
-    \r
-    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:10:7: ( '[' )\r
-    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:10:9: '['\r
-    {\r
-        MATCHC('['); \r
-        if  (HASEXCEPTION())\r
-        {\r
-            goto ruleT__37Ex;\r
-        }\r
-\r
-\r
-    }\r
-\r
-       LEXSTATE->type = _type;\r
-\r
-    // This is where rules clean up and exit\r
-    //\r
-    goto ruleT__37Ex; /* Prevent compiler warnings */\r
-    ruleT__37Ex: ;\r
-\r
-}\r
-// $ANTLR end T__37\r
-\r
-//   Comes from: 11:7: ( ']' )\r
-/** \brief Lexer rule generated by ANTLR3\r
- *\r
- * $ANTLR start T__38\r
- *\r
- * Looks to match the characters the constitute the token T__38\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__38(pSimanticsDataLexer ctx)\r
-{\r
-       ANTLR3_UINT32   _type;\r
-\r
-    _type          = T__38;\r
-       \r
-    \r
-    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:11:7: ( ']' )\r
-    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:11:9: ']'\r
-    {\r
-        MATCHC(']'); \r
-        if  (HASEXCEPTION())\r
-        {\r
-            goto ruleT__38Ex;\r
-        }\r
-\r
-\r
-    }\r
-\r
-       LEXSTATE->type = _type;\r
-\r
-    // This is where rules clean up and exit\r
-    //\r
-    goto ruleT__38Ex; /* Prevent compiler warnings */\r
-    ruleT__38Ex: ;\r
-\r
-}\r
-// $ANTLR end T__38\r
-\r
-//   Comes from: 12:7: ( '..' )\r
-/** \brief Lexer rule generated by ANTLR3\r
- *\r
- * $ANTLR start T__39\r
- *\r
- * Looks to match the characters the constitute the token T__39\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__39(pSimanticsDataLexer ctx)\r
-{\r
-       ANTLR3_UINT32   _type;\r
-\r
-    _type          = T__39;\r
-       \r
-    \r
-    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:12:7: ( '..' )\r
-    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:12:9: '..'\r
-    {\r
-        MATCHS(lit_2); \r
-        if  (HASEXCEPTION())\r
-        {\r
-            goto ruleT__39Ex;\r
-        }\r
-\r
-\r
-\r
-    }\r
-\r
-       LEXSTATE->type = _type;\r
-\r
-    // This is where rules clean up and exit\r
-    //\r
-    goto ruleT__39Ex; /* Prevent compiler warnings */\r
-    ruleT__39Ex: ;\r
-\r
-}\r
-// $ANTLR end T__39\r
-\r
-//   Comes from: 13:7: ( '(' )\r
-/** \brief Lexer rule generated by ANTLR3\r
- *\r
- * $ANTLR start T__40\r
- *\r
- * Looks to match the characters the constitute the token T__40\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__40(pSimanticsDataLexer ctx)\r
-{\r
-       ANTLR3_UINT32   _type;\r
-\r
-    _type          = T__40;\r
-       \r
-    \r
-    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:13:7: ( '(' )\r
-    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:13:9: '('\r
-    {\r
-        MATCHC('('); \r
-        if  (HASEXCEPTION())\r
-        {\r
-            goto ruleT__40Ex;\r
-        }\r
-\r
-\r
-    }\r
-\r
-       LEXSTATE->type = _type;\r
-\r
-    // This is where rules clean up and exit\r
-    //\r
-    goto ruleT__40Ex; /* Prevent compiler warnings */\r
-    ruleT__40Ex: ;\r
-\r
-}\r
-// $ANTLR end T__40\r
-\r
-//   Comes from: 14:7: ( ',' )\r
-/** \brief Lexer rule generated by ANTLR3\r
- *\r
- * $ANTLR start T__41\r
- *\r
- * Looks to match the characters the constitute the token T__41\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__41(pSimanticsDataLexer ctx)\r
-{\r
-       ANTLR3_UINT32   _type;\r
-\r
-    _type          = T__41;\r
-       \r
-    \r
-    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:14:7: ( ',' )\r
-    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:14:9: ','\r
-    {\r
-        MATCHC(','); \r
-        if  (HASEXCEPTION())\r
-        {\r
-            goto ruleT__41Ex;\r
-        }\r
-\r
-\r
-    }\r
-\r
-       LEXSTATE->type = _type;\r
-\r
-    // This is where rules clean up and exit\r
-    //\r
-    goto ruleT__41Ex; /* Prevent compiler warnings */\r
-    ruleT__41Ex: ;\r
-\r
-}\r
-// $ANTLR end T__41\r
-\r
-//   Comes from: 15:7: ( ')' )\r
-/** \brief Lexer rule generated by ANTLR3\r
- *\r
- * $ANTLR start T__42\r
- *\r
- * Looks to match the characters the constitute the token T__42\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__42(pSimanticsDataLexer ctx)\r
-{\r
-       ANTLR3_UINT32   _type;\r
-\r
-    _type          = T__42;\r
-       \r
-    \r
-    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:15:7: ( ')' )\r
-    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:15:9: ')'\r
-    {\r
-        MATCHC(')'); \r
-        if  (HASEXCEPTION())\r
-        {\r
-            goto ruleT__42Ex;\r
-        }\r
-\r
-\r
-    }\r
-\r
-       LEXSTATE->type = _type;\r
-\r
-    // This is where rules clean up and exit\r
-    //\r
-    goto ruleT__42Ex; /* Prevent compiler warnings */\r
-    ruleT__42Ex: ;\r
-\r
-}\r
-// $ANTLR end T__42\r
-\r
-//   Comes from: 16:7: ( '{' )\r
-/** \brief Lexer rule generated by ANTLR3\r
- *\r
- * $ANTLR start T__43\r
- *\r
- * Looks to match the characters the constitute the token T__43\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__43(pSimanticsDataLexer ctx)\r
-{\r
-       ANTLR3_UINT32   _type;\r
-\r
-    _type          = T__43;\r
-       \r
-    \r
-    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:16:7: ( '{' )\r
-    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:16:9: '{'\r
-    {\r
-        MATCHC('{'); \r
-        if  (HASEXCEPTION())\r
-        {\r
-            goto ruleT__43Ex;\r
-        }\r
-\r
-\r
-    }\r
-\r
-       LEXSTATE->type = _type;\r
-\r
-    // This is where rules clean up and exit\r
-    //\r
-    goto ruleT__43Ex; /* Prevent compiler warnings */\r
-    ruleT__43Ex: ;\r
-\r
-}\r
-// $ANTLR end T__43\r
-\r
-//   Comes from: 17:7: ( '}' )\r
-/** \brief Lexer rule generated by ANTLR3\r
- *\r
- * $ANTLR start T__44\r
- *\r
- * Looks to match the characters the constitute the token T__44\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__44(pSimanticsDataLexer ctx)\r
-{\r
-       ANTLR3_UINT32   _type;\r
-\r
-    _type          = T__44;\r
-       \r
-    \r
-    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:17:7: ( '}' )\r
-    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:17:9: '}'\r
-    {\r
-        MATCHC('}'); \r
-        if  (HASEXCEPTION())\r
-        {\r
-            goto ruleT__44Ex;\r
-        }\r
-\r
-\r
-    }\r
-\r
-       LEXSTATE->type = _type;\r
-\r
-    // This is where rules clean up and exit\r
-    //\r
-    goto ruleT__44Ex; /* Prevent compiler warnings */\r
-    ruleT__44Ex: ;\r
-\r
-}\r
-// $ANTLR end T__44\r
-\r
-//   Comes from: 18:7: ( ':' )\r
-/** \brief Lexer rule generated by ANTLR3\r
- *\r
- * $ANTLR start T__45\r
- *\r
- * Looks to match the characters the constitute the token T__45\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__45(pSimanticsDataLexer ctx)\r
-{\r
-       ANTLR3_UINT32   _type;\r
-\r
-    _type          = T__45;\r
-       \r
-    \r
-    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:18:7: ( ':' )\r
-    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:18:9: ':'\r
-    {\r
-        MATCHC(':'); \r
-        if  (HASEXCEPTION())\r
-        {\r
-            goto ruleT__45Ex;\r
-        }\r
-\r
-\r
-    }\r
-\r
-       LEXSTATE->type = _type;\r
-\r
-    // This is where rules clean up and exit\r
-    //\r
-    goto ruleT__45Ex; /* Prevent compiler warnings */\r
-    ruleT__45Ex: ;\r
-\r
-}\r
-// $ANTLR end T__45\r
-\r
-//   Comes from: 19:7: ( 'true' )\r
-/** \brief Lexer rule generated by ANTLR3\r
- *\r
- * $ANTLR start T__46\r
- *\r
- * Looks to match the characters the constitute the token T__46\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__46(pSimanticsDataLexer ctx)\r
-{\r
-       ANTLR3_UINT32   _type;\r
-\r
-    _type          = T__46;\r
-       \r
-    \r
-    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:19:7: ( 'true' )\r
-    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:19:9: 'true'\r
-    {\r
-        MATCHS(lit_3); \r
-        if  (HASEXCEPTION())\r
-        {\r
-            goto ruleT__46Ex;\r
-        }\r
-\r
-\r
-\r
-    }\r
-\r
-       LEXSTATE->type = _type;\r
-\r
-    // This is where rules clean up and exit\r
-    //\r
-    goto ruleT__46Ex; /* Prevent compiler warnings */\r
-    ruleT__46Ex: ;\r
-\r
-}\r
-// $ANTLR end T__46\r
-\r
-//   Comes from: 20:7: ( 'false' )\r
-/** \brief Lexer rule generated by ANTLR3\r
- *\r
- * $ANTLR start T__47\r
- *\r
- * Looks to match the characters the constitute the token T__47\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__47(pSimanticsDataLexer ctx)\r
-{\r
-       ANTLR3_UINT32   _type;\r
-\r
-    _type          = T__47;\r
-       \r
-    \r
-    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:20:7: ( 'false' )\r
-    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:20:9: 'false'\r
-    {\r
-        MATCHS(lit_4); \r
-        if  (HASEXCEPTION())\r
-        {\r
-            goto ruleT__47Ex;\r
-        }\r
-\r
-\r
-\r
-    }\r
-\r
-       LEXSTATE->type = _type;\r
-\r
-    // This is where rules clean up and exit\r
-    //\r
-    goto ruleT__47Ex; /* Prevent compiler warnings */\r
-    ruleT__47Ex: ;\r
-\r
-}\r
-// $ANTLR end T__47\r
-\r
-//   Comes from: 21:7: ( 'null' )\r
-/** \brief Lexer rule generated by ANTLR3\r
- *\r
- * $ANTLR start T__48\r
- *\r
- * Looks to match the characters the constitute the token T__48\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__48(pSimanticsDataLexer ctx)\r
-{\r
-       ANTLR3_UINT32   _type;\r
-\r
-    _type          = T__48;\r
-       \r
-    \r
-    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:21:7: ( 'null' )\r
-    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:21:9: 'null'\r
-    {\r
-        MATCHS(lit_5); \r
-        if  (HASEXCEPTION())\r
-        {\r
-            goto ruleT__48Ex;\r
-        }\r
-\r
-\r
-\r
-    }\r
-\r
-       LEXSTATE->type = _type;\r
-\r
-    // This is where rules clean up and exit\r
-    //\r
-    goto ruleT__48Ex; /* Prevent compiler warnings */\r
-    ruleT__48Ex: ;\r
-\r
-}\r
-// $ANTLR end T__48\r
-\r
-//   Comes from: 22:7: ( 'map' )\r
-/** \brief Lexer rule generated by ANTLR3\r
- *\r
- * $ANTLR start T__49\r
- *\r
- * Looks to match the characters the constitute the token T__49\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__49(pSimanticsDataLexer ctx)\r
-{\r
-       ANTLR3_UINT32   _type;\r
-\r
-    _type          = T__49;\r
-       \r
-    \r
-    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:22:7: ( 'map' )\r
-    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:22:9: 'map'\r
-    {\r
-        MATCHS(lit_6); \r
-        if  (HASEXCEPTION())\r
-        {\r
-            goto ruleT__49Ex;\r
-        }\r
-\r
-\r
-\r
-    }\r
-\r
-       LEXSTATE->type = _type;\r
-\r
-    // This is where rules clean up and exit\r
-    //\r
-    goto ruleT__49Ex; /* Prevent compiler warnings */\r
-    ruleT__49Ex: ;\r
-\r
-}\r
-// $ANTLR end T__49\r
-\r
-//   Comes from: 34:5: ( ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )* )\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(pSimanticsDataLexer ctx)\r
-{\r
-       ANTLR3_UINT32   _type;\r
-\r
-    _type          = ID;\r
-       \r
-    \r
-    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:34:5: ( ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )* )\r
-    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:34:7: ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )*\r
-    {\r
-        if ( ((LA(1) >= 'A') && (LA(1) <= 'Z')) || LA(1) == '_' || ((LA(1) >= 'a') && (LA(1) <= 'z')) )\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 ruleIDEx;\r
-        }\r
-\r
-\r
-        // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:34:31: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )*\r
-\r
-        for (;;)\r
-        {\r
-            int alt1=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
-            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
-            case '_':\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
-                   // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:\r
-                   {\r
-                       if ( ((LA(1) >= '0') && (LA(1) <= '9')) || ((LA(1) >= 'A') && (LA(1) <= 'Z')) || LA(1) == '_' || ((LA(1) >= 'a') && (LA(1) <= 'z')) )\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 ruleIDEx;\r
-                       }\r
-\r
-\r
-                   }\r
-                   break;\r
-\r
-               default:\r
-                   goto loop1; /* break out of the loop */\r
-                   break;\r
-            }\r
-        }\r
-        loop1: ; /* Jump out 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: 37:5: ( ( '-' )? ( '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(pSimanticsDataLexer ctx)\r
-{\r
-       ANTLR3_UINT32   _type;\r
-\r
-    _type          = INT;\r
-       \r
-    \r
-    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:37:5: ( ( '-' )? ( '0' .. '9' )+ )\r
-    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:37:7: ( '-' )? ( '0' .. '9' )+\r
-    {\r
-\r
-        // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:37:7: ( '-' )?\r
-        {\r
-            int alt2=2;\r
-            switch ( LA(1) ) \r
-            {\r
-                case '-':\r
-                       {\r
-                               alt2=1;\r
-                       }\r
-                    break;\r
-            }\r
-\r
-            switch (alt2) \r
-            {\r
-               case 1:\r
-                   // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:37:7: '-'\r
-                   {\r
-                       MATCHC('-'); \r
-                       if  (HASEXCEPTION())\r
-                       {\r
-                           goto ruleINTEx;\r
-                       }\r
-\r
-\r
-                   }\r
-                   break;\r
-\r
-            }\r
-        }\r
-        // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:37:12: ( '0' .. '9' )+\r
-        {\r
-            int cnt3=0;\r
-\r
-            for (;;)\r
-            {\r
-                int alt3=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
-                               alt3=1;\r
-                       }\r
-                   break;\r
-\r
-               }\r
-\r
-               switch (alt3) \r
-               {\r
-                   case 1:\r
-                       // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:37:12: '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 ( cnt3 >= 1 )\r
-                       {\r
-                           goto loop3;\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
-               cnt3++;\r
-            }\r
-            loop3: ;   /* 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: 41:5: ( ( '-' )? ( '0' .. '9' )+ '.' ( '0' .. '9' )+ ( EXPONENT )? | ( '-' )? ( '0' .. '9' )+ EXPONENT )\r
-/** \brief Lexer rule generated by ANTLR3\r
- *\r
- * $ANTLR start FLOAT\r
- *\r
- * Looks to match the characters the constitute the token FLOAT\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 mFLOAT(pSimanticsDataLexer ctx)\r
-{\r
-       ANTLR3_UINT32   _type;\r
-\r
-    _type          = FLOAT;\r
-       \r
-    \r
-    {\r
-        //  C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:41:5: ( ( '-' )? ( '0' .. '9' )+ '.' ( '0' .. '9' )+ ( EXPONENT )? | ( '-' )? ( '0' .. '9' )+ EXPONENT )\r
-        \r
-        ANTLR3_UINT32 alt10;\r
-\r
-        alt10=2;\r
-\r
-        alt10 = cdfa10.predict(ctx, RECOGNIZER, ISTREAM, &cdfa10);\r
-        if  (HASEXCEPTION())\r
-        {\r
-            goto ruleFLOATEx;\r
-        }\r
-\r
-        switch (alt10) \r
-        {\r
-       case 1:\r
-           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:41:9: ( '-' )? ( '0' .. '9' )+ '.' ( '0' .. '9' )+ ( EXPONENT )?\r
-           {\r
-\r
-               // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:41:9: ( '-' )?\r
-               {\r
-                   int alt4=2;\r
-                   switch ( LA(1) ) \r
-                   {\r
-                       case '-':\r
-                               {\r
-                                       alt4=1;\r
-                               }\r
-                           break;\r
-                   }\r
-\r
-                   switch (alt4) \r
-                   {\r
-                       case 1:\r
-                           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:41:9: '-'\r
-                           {\r
-                               MATCHC('-'); \r
-                               if  (HASEXCEPTION())\r
-                               {\r
-                                   goto ruleFLOATEx;\r
-                               }\r
-\r
-\r
-                           }\r
-                           break;\r
-\r
-                   }\r
-               }\r
-               // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:41:14: ( '0' .. '9' )+\r
-               {\r
-                   int cnt5=0;\r
-\r
-                   for (;;)\r
-                   {\r
-                       int alt5=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
-                                       alt5=1;\r
-                               }\r
-                           break;\r
-\r
-                       }\r
-\r
-                       switch (alt5) \r
-                       {\r
-                           case 1:\r
-                               // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:41:15: '0' .. '9'\r
-                               {\r
-                                   MATCHRANGE('0', '9'); \r
-                                   if  (HASEXCEPTION())\r
-                                   {\r
-                                       goto ruleFLOATEx;\r
-                                   }\r
-\r
-\r
-                               }\r
-                               break;\r
-\r
-                           default:\r
-                           \r
-                               if ( cnt5 >= 1 )\r
-                               {\r
-                                   goto loop5;\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 ruleFLOATEx;\r
-                       }\r
-                       cnt5++;\r
-                   }\r
-                   loop5: ;    /* Jump to here if this rule does not match */\r
-               }\r
-               MATCHC('.'); \r
-               if  (HASEXCEPTION())\r
-               {\r
-                   goto ruleFLOATEx;\r
-               }\r
-\r
-               // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:41:30: ( '0' .. '9' )+\r
-               {\r
-                   int cnt6=0;\r
-\r
-                   for (;;)\r
-                   {\r
-                       int alt6=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
-                                       alt6=1;\r
-                               }\r
-                           break;\r
-\r
-                       }\r
-\r
-                       switch (alt6) \r
-                       {\r
-                           case 1:\r
-                               // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:41:31: '0' .. '9'\r
-                               {\r
-                                   MATCHRANGE('0', '9'); \r
-                                   if  (HASEXCEPTION())\r
-                                   {\r
-                                       goto ruleFLOATEx;\r
-                                   }\r
-\r
-\r
-                               }\r
-                               break;\r
-\r
-                           default:\r
-                           \r
-                               if ( cnt6 >= 1 )\r
-                               {\r
-                                   goto loop6;\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 ruleFLOATEx;\r
-                       }\r
-                       cnt6++;\r
-                   }\r
-                   loop6: ;    /* Jump to here if this rule does not match */\r
-               }\r
-\r
-               // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:41:42: ( EXPONENT )?\r
-               {\r
-                   int alt7=2;\r
-                   switch ( LA(1) ) \r
-                   {\r
-                       case 'E':\r
-                       case 'e':\r
-                               {\r
-                                       alt7=1;\r
-                               }\r
-                           break;\r
-                   }\r
-\r
-                   switch (alt7) \r
-                   {\r
-                       case 1:\r
-                           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:41:42: EXPONENT\r
-                           {\r
-                               /* 41:42: EXPONENT */\r
-                               mEXPONENT(ctx ); \r
-                               if  (HASEXCEPTION())\r
-                               {\r
-                                   goto ruleFLOATEx;\r
-                               }\r
-\r
-\r
-                           }\r
-                           break;\r
-\r
-                   }\r
-               }\r
-\r
-           }\r
-           break;\r
-       case 2:\r
-           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:43:9: ( '-' )? ( '0' .. '9' )+ EXPONENT\r
-           {\r
-\r
-               // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:43:9: ( '-' )?\r
-               {\r
-                   int alt8=2;\r
-                   switch ( LA(1) ) \r
-                   {\r
-                       case '-':\r
-                               {\r
-                                       alt8=1;\r
-                               }\r
-                           break;\r
-                   }\r
-\r
-                   switch (alt8) \r
-                   {\r
-                       case 1:\r
-                           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:43:9: '-'\r
-                           {\r
-                               MATCHC('-'); \r
-                               if  (HASEXCEPTION())\r
-                               {\r
-                                   goto ruleFLOATEx;\r
-                               }\r
-\r
-\r
-                           }\r
-                           break;\r
-\r
-                   }\r
-               }\r
-               // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:43:14: ( '0' .. '9' )+\r
-               {\r
-                   int cnt9=0;\r
-\r
-                   for (;;)\r
-                   {\r
-                       int alt9=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
-                                       alt9=1;\r
-                               }\r
-                           break;\r
-\r
-                       }\r
-\r
-                       switch (alt9) \r
-                       {\r
-                           case 1:\r
-                               // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:43:15: '0' .. '9'\r
-                               {\r
-                                   MATCHRANGE('0', '9'); \r
-                                   if  (HASEXCEPTION())\r
-                                   {\r
-                                       goto ruleFLOATEx;\r
-                                   }\r
-\r
-\r
-                               }\r
-                               break;\r
-\r
-                           default:\r
-                           \r
-                               if ( cnt9 >= 1 )\r
-                               {\r
-                                   goto loop9;\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 ruleFLOATEx;\r
-                       }\r
-                       cnt9++;\r
-                   }\r
-                   loop9: ;    /* Jump to here if this rule does not match */\r
-               }\r
-               /* 43:9: ( '-' )? ( '0' .. '9' )+ EXPONENT */\r
-               mEXPONENT(ctx ); \r
-               if  (HASEXCEPTION())\r
-               {\r
-                   goto ruleFLOATEx;\r
-               }\r
-\r
-\r
-           }\r
-           break;\r
-\r
-        }\r
-    }\r
-       LEXSTATE->type = _type;\r
-\r
-    // This is where rules clean up and exit\r
-    //\r
-    goto ruleFLOATEx; /* Prevent compiler warnings */\r
-    ruleFLOATEx: ;\r
-\r
-}\r
-// $ANTLR end FLOAT\r
-\r
-//   Comes from: 47:5: ( '//' (~ ( '\\n' | '\\r' ) )* ( '\\r' )? '\\n' | '/*' ( options {greedy=false; } : . )* '*/' )\r
-/** \brief Lexer rule generated by ANTLR3\r
- *\r
- * $ANTLR start COMMENT\r
- *\r
- * Looks to match the characters the constitute the token COMMENT\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 mCOMMENT(pSimanticsDataLexer ctx)\r
-{\r
-       ANTLR3_UINT32   _type;\r
-\r
-    _type          = COMMENT;\r
-       \r
-    \r
-    {\r
-        //  C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:47:5: ( '//' (~ ( '\\n' | '\\r' ) )* ( '\\r' )? '\\n' | '/*' ( options {greedy=false; } : . )* '*/' )\r
-        \r
-        ANTLR3_UINT32 alt14;\r
-\r
-        alt14=2;\r
-\r
-        switch ( LA(1) ) \r
-        {\r
-        case '/':\r
-               {\r
-                       switch ( LA(2) ) \r
-                       {\r
-                       case '/':\r
-                               {\r
-                                       alt14=1;\r
-                               }\r
-                           break;\r
-                       case '*':\r
-                               {\r
-                                       alt14=2;\r
-                               }\r
-                           break;\r
-\r
-                       default:\r
-                           CONSTRUCTEX();\r
-                           EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;\r
-                           EXCEPTION->message      = (void *)"";\r
-                           EXCEPTION->decisionNum  = 14;\r
-                           EXCEPTION->state        = 1;\r
-\r
-\r
-                           goto ruleCOMMENTEx;\r
-                       }\r
-\r
-               }\r
-            break;\r
-\r
-        default:\r
-            CONSTRUCTEX();\r
-            EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;\r
-            EXCEPTION->message      = (void *)"";\r
-            EXCEPTION->decisionNum  = 14;\r
-            EXCEPTION->state        = 0;\r
-\r
-\r
-            goto ruleCOMMENTEx;\r
-        }\r
-\r
-        switch (alt14) \r
-        {\r
-       case 1:\r
-           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:47:9: '//' (~ ( '\\n' | '\\r' ) )* ( '\\r' )? '\\n'\r
-           {\r
-               MATCHS(lit_7); \r
-               if  (HASEXCEPTION())\r
-               {\r
-                   goto ruleCOMMENTEx;\r
-               }\r
-\r
-\r
-\r
-               // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:47:14: (~ ( '\\n' | '\\r' ) )*\r
-\r
-               for (;;)\r
-               {\r
-                   int alt11=2;\r
-                   {\r
-                      /* dfaLoopbackState(k,edges,eotPredictsAlt,description,stateNumber,semPredState)\r
-                       */\r
-                       int LA11_0 = LA(1);\r
-                       if ( (((LA11_0 >= 0x0000) && (LA11_0 <= '\t')) || ((LA11_0 >= 0x000B) && (LA11_0 <= '\f')) || ((LA11_0 >= 0x000E) && (LA11_0 <= 0xFFFF))) ) \r
-                       {\r
-                           alt11=1;\r
-                       }\r
-\r
-                   }\r
-                   switch (alt11) \r
-                   {\r
-                       case 1:\r
-                           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:47:14: ~ ( '\\n' | '\\r' )\r
-                           {\r
-                               if ( ((LA(1) >= 0x0000) && (LA(1) <= '\t')) || ((LA(1) >= 0x000B) && (LA(1) <= '\f')) || ((LA(1) >= 0x000E) && (LA(1) <= 0xFFFF)) )\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 ruleCOMMENTEx;\r
-                               }\r
-\r
-\r
-                           }\r
-                           break;\r
-\r
-                       default:\r
-                           goto loop11;        /* break out of the loop */\r
-                           break;\r
-                   }\r
-               }\r
-               loop11: ; /* Jump out to here if this rule does not match */\r
-\r
-\r
-               // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:47:28: ( '\\r' )?\r
-               {\r
-                   int alt12=2;\r
-                   switch ( LA(1) ) \r
-                   {\r
-                       case '\r':\r
-                               {\r
-                                       alt12=1;\r
-                               }\r
-                           break;\r
-                   }\r
-\r
-                   switch (alt12) \r
-                   {\r
-                       case 1:\r
-                           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:47:28: '\\r'\r
-                           {\r
-                               MATCHC('\r'); \r
-                               if  (HASEXCEPTION())\r
-                               {\r
-                                   goto ruleCOMMENTEx;\r
-                               }\r
-\r
-\r
-                           }\r
-                           break;\r
-\r
-                   }\r
-               }\r
-               MATCHC('\n'); \r
-               if  (HASEXCEPTION())\r
-               {\r
-                   goto ruleCOMMENTEx;\r
-               }\r
-\r
-               {\r
-                   LEXSTATE->channel=HIDDEN;\r
-               }\r
-\r
-           }\r
-           break;\r
-       case 2:\r
-           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:48:9: '/*' ( options {greedy=false; } : . )* '*/'\r
-           {\r
-               MATCHS(lit_8); \r
-               if  (HASEXCEPTION())\r
-               {\r
-                   goto ruleCOMMENTEx;\r
-               }\r
-\r
-\r
-\r
-               // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:48:14: ( options {greedy=false; } : . )*\r
-\r
-               for (;;)\r
-               {\r
-                   int alt13=2;\r
-                   {\r
-                      /* dfaLoopbackState(k,edges,eotPredictsAlt,description,stateNumber,semPredState)\r
-                       */\r
-                       int LA13_0 = LA(1);\r
-                       if ( (LA13_0 == '*') ) \r
-                       {\r
-                           {\r
-                              /* dfaLoopbackState(k,edges,eotPredictsAlt,description,stateNumber,semPredState)\r
-                               */\r
-                               int LA13_1 = LA(2);\r
-                               if ( (LA13_1 == '/') ) \r
-                               {\r
-                                   alt13=2;\r
-                               }\r
-                               else if ( (((LA13_1 >= 0x0000) && (LA13_1 <= '.')) || ((LA13_1 >= '0') && (LA13_1 <= 0xFFFF))) ) \r
-                               {\r
-                                   alt13=1;\r
-                               }\r
-\r
-                           }\r
-                       }\r
-                       else if ( (((LA13_0 >= 0x0000) && (LA13_0 <= ')')) || ((LA13_0 >= '+') && (LA13_0 <= 0xFFFF))) ) \r
-                       {\r
-                           alt13=1;\r
-                       }\r
-\r
-                   }\r
-                   switch (alt13) \r
-                   {\r
-                       case 1:\r
-                           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:48:42: .\r
-                           {\r
-                               MATCHANY(); \r
-                               if  (HASEXCEPTION())\r
-                               {\r
-                                   goto ruleCOMMENTEx;\r
-                               }\r
-\r
-\r
-                           }\r
-                           break;\r
-\r
-                       default:\r
-                           goto loop13;        /* break out of the loop */\r
-                           break;\r
-                   }\r
-               }\r
-               loop13: ; /* Jump out to here if this rule does not match */\r
-\r
-               MATCHS(lit_9); \r
-               if  (HASEXCEPTION())\r
-               {\r
-                   goto ruleCOMMENTEx;\r
-               }\r
-\r
-\r
-               {\r
-                   LEXSTATE->channel=HIDDEN;\r
-               }\r
-\r
-           }\r
-           break;\r
-\r
-        }\r
-    }\r
-       LEXSTATE->type = _type;\r
-\r
-    // This is where rules clean up and exit\r
-    //\r
-    goto ruleCOMMENTEx; /* Prevent compiler warnings */\r
-    ruleCOMMENTEx: ;\r
-\r
-}\r
-// $ANTLR end COMMENT\r
-\r
-//   Comes from: 51:5: ( ( ' ' | '\\t' | '\\r' | '\\n' ) )\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(pSimanticsDataLexer ctx)\r
-{\r
-       ANTLR3_UINT32   _type;\r
-\r
-    _type          = WS;\r
-       \r
-    \r
-    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:51:5: ( ( ' ' | '\\t' | '\\r' | '\\n' ) )\r
-    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:51:9: ( ' ' | '\\t' | '\\r' | '\\n' )\r
-    {\r
-        if ( ((LA(1) >= '\t') && (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
-//   Comes from: 59:5: ( '\"' ( ESC_SEQ | ~ ( '\\\\' | '\"' ) )* '\"' | '\"\"\"' (~ ( '\"' ) | '\"' ~ ( '\"' ) | '\"\"' ~ ( '\"' ) )* '\"\"\"' )\r
-/** \brief Lexer rule generated by ANTLR3\r
- *\r
- * $ANTLR start STRING\r
- *\r
- * Looks to match the characters the constitute the token STRING\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 mSTRING(pSimanticsDataLexer ctx)\r
-{\r
-       ANTLR3_UINT32   _type;\r
-\r
-    _type          = STRING;\r
-       \r
-    \r
-    {\r
-        //  C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:59:5: ( '\"' ( ESC_SEQ | ~ ( '\\\\' | '\"' ) )* '\"' | '\"\"\"' (~ ( '\"' ) | '\"' ~ ( '\"' ) | '\"\"' ~ ( '\"' ) )* '\"\"\"' )\r
-        \r
-        ANTLR3_UINT32 alt17;\r
-\r
-        alt17=2;\r
-\r
-        switch ( LA(1) ) \r
-        {\r
-        case '"':\r
-               {\r
-\r
-                       {\r
-                           int LA17_1 = LA(2);\r
-                           if ( (LA17_1 == '"') ) \r
-                           {\r
-                               switch ( LA(3) ) \r
-                               {\r
-                               case '"':\r
-                                       {\r
-                                               alt17=2;\r
-                                       }\r
-                                   break;\r
-\r
-                               default:\r
-                                   alt17=1;}\r
-\r
-                           }\r
-                           else if ( (((LA17_1 >= 0x0000) && (LA17_1 <= '!')) || ((LA17_1 >= '#') && (LA17_1 <= 0xFFFF))) ) \r
-                           {\r
-                               alt17=1;\r
-                           }\r
-                           else \r
-                           {\r
-                           \r
-                               CONSTRUCTEX();\r
-                               EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;\r
-                               EXCEPTION->message      = (void *)"";\r
-                               EXCEPTION->decisionNum  = 17;\r
-                               EXCEPTION->state        = 1;\r
-\r
-\r
-                               goto ruleSTRINGEx;\r
-                           }\r
-                       }\r
-               }\r
-            break;\r
-\r
-        default:\r
-            CONSTRUCTEX();\r
-            EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;\r
-            EXCEPTION->message      = (void *)"";\r
-            EXCEPTION->decisionNum  = 17;\r
-            EXCEPTION->state        = 0;\r
-\r
-\r
-            goto ruleSTRINGEx;\r
-        }\r
-\r
-        switch (alt17) \r
-        {\r
-       case 1:\r
-           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:59:8: '\"' ( ESC_SEQ | ~ ( '\\\\' | '\"' ) )* '\"'\r
-           {\r
-               MATCHC('"'); \r
-               if  (HASEXCEPTION())\r
-               {\r
-                   goto ruleSTRINGEx;\r
-               }\r
-\r
-\r
-               // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:59:12: ( ESC_SEQ | ~ ( '\\\\' | '\"' ) )*\r
-\r
-               for (;;)\r
-               {\r
-                   int alt15=3;\r
-                   {\r
-                      /* dfaLoopbackState(k,edges,eotPredictsAlt,description,stateNumber,semPredState)\r
-                       */\r
-                       int LA15_0 = LA(1);\r
-                       if ( (LA15_0 == '\\') ) \r
-                       {\r
-                           alt15=1;\r
-                       }\r
-                       else if ( (((LA15_0 >= 0x0000) && (LA15_0 <= '!')) || ((LA15_0 >= '#') && (LA15_0 <= '[')) || ((LA15_0 >= ']') && (LA15_0 <= 0xFFFF))) ) \r
-                       {\r
-                           alt15=2;\r
-                       }\r
-\r
-                   }\r
-                   switch (alt15) \r
-                   {\r
-                       case 1:\r
-                           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:59:14: ESC_SEQ\r
-                           {\r
-                               /* 59:14: ESC_SEQ */\r
-                               mESC_SEQ(ctx ); \r
-                               if  (HASEXCEPTION())\r
-                               {\r
-                                   goto ruleSTRINGEx;\r
-                               }\r
-\r
-\r
-                           }\r
-                           break;\r
-                       case 2:\r
-                           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:59:24: ~ ( '\\\\' | '\"' )\r
-                           {\r
-                               if ( ((LA(1) >= 0x0000) && (LA(1) <= '!')) || ((LA(1) >= '#') && (LA(1) <= '[')) || ((LA(1) >= ']') && (LA(1) <= 0xFFFF)) )\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 ruleSTRINGEx;\r
-                               }\r
-\r
-\r
-                           }\r
-                           break;\r
-\r
-                       default:\r
-                           goto loop15;        /* break out of the loop */\r
-                           break;\r
-                   }\r
-               }\r
-               loop15: ; /* Jump out to here if this rule does not match */\r
-\r
-               MATCHC('"'); \r
-               if  (HASEXCEPTION())\r
-               {\r
-                   goto ruleSTRINGEx;\r
-               }\r
-\r
-\r
-           }\r
-           break;\r
-       case 2:\r
-           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:60:8: '\"\"\"' (~ ( '\"' ) | '\"' ~ ( '\"' ) | '\"\"' ~ ( '\"' ) )* '\"\"\"'\r
-           {\r
-               MATCHS(lit_10); \r
-               if  (HASEXCEPTION())\r
-               {\r
-                   goto ruleSTRINGEx;\r
-               }\r
-\r
-\r
-\r
-               // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:60:14: (~ ( '\"' ) | '\"' ~ ( '\"' ) | '\"\"' ~ ( '\"' ) )*\r
-\r
-               for (;;)\r
-               {\r
-                   int alt16=4;\r
-                   {\r
-                      /* dfaLoopbackState(k,edges,eotPredictsAlt,description,stateNumber,semPredState)\r
-                       */\r
-                       int LA16_0 = LA(1);\r
-                       if ( (LA16_0 == '"') ) \r
-                       {\r
-                           {\r
-                              /* dfaLoopbackState(k,edges,eotPredictsAlt,description,stateNumber,semPredState)\r
-                               */\r
-                               int LA16_1 = LA(2);\r
-                               if ( (LA16_1 == '"') ) \r
-                               {\r
-                                   {\r
-                                      /* dfaLoopbackState(k,edges,eotPredictsAlt,description,stateNumber,semPredState)\r
-                                       */\r
-                                       int LA16_3 = LA(3);\r
-                                       if ( (((LA16_3 >= 0x0000) && (LA16_3 <= '!')) || ((LA16_3 >= '#') && (LA16_3 <= 0xFFFF))) ) \r
-                                       {\r
-                                           alt16=3;\r
-                                       }\r
-\r
-                                   }\r
-                               }\r
-                               else if ( (((LA16_1 >= 0x0000) && (LA16_1 <= '!')) || ((LA16_1 >= '#') && (LA16_1 <= 0xFFFF))) ) \r
-                               {\r
-                                   alt16=2;\r
-                               }\r
-\r
-                           }\r
-                       }\r
-                       else if ( (((LA16_0 >= 0x0000) && (LA16_0 <= '!')) || ((LA16_0 >= '#') && (LA16_0 <= 0xFFFF))) ) \r
-                       {\r
-                           alt16=1;\r
-                       }\r
-\r
-                   }\r
-                   switch (alt16) \r
-                   {\r
-                       case 1:\r
-                           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:60:16: ~ ( '\"' )\r
-                           {\r
-                               if ( ((LA(1) >= 0x0000) && (LA(1) <= '!')) || ((LA(1) >= '#') && (LA(1) <= 0xFFFF)) )\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 ruleSTRINGEx;\r
-                               }\r
-\r
-\r
-                           }\r
-                           break;\r
-                       case 2:\r
-                           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:60:25: '\"' ~ ( '\"' )\r
-                           {\r
-                               MATCHC('"'); \r
-                               if  (HASEXCEPTION())\r
-                               {\r
-                                   goto ruleSTRINGEx;\r
-                               }\r
-\r
-                               if ( ((LA(1) >= 0x0000) && (LA(1) <= '!')) || ((LA(1) >= '#') && (LA(1) <= 0xFFFF)) )\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 ruleSTRINGEx;\r
-                               }\r
-\r
-\r
-                           }\r
-                           break;\r
-                       case 3:\r
-                           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:60:38: '\"\"' ~ ( '\"' )\r
-                           {\r
-                               MATCHS(lit_11); \r
-                               if  (HASEXCEPTION())\r
-                               {\r
-                                   goto ruleSTRINGEx;\r
-                               }\r
-\r
-\r
-                               if ( ((LA(1) >= 0x0000) && (LA(1) <= '!')) || ((LA(1) >= '#') && (LA(1) <= 0xFFFF)) )\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 ruleSTRINGEx;\r
-                               }\r
-\r
-\r
-                           }\r
-                           break;\r
-\r
-                       default:\r
-                           goto loop16;        /* break out of the loop */\r
-                           break;\r
-                   }\r
-               }\r
-               loop16: ; /* Jump out to here if this rule does not match */\r
-\r
-               MATCHS(lit_10); \r
-               if  (HASEXCEPTION())\r
-               {\r
-                   goto ruleSTRINGEx;\r
-               }\r
-\r
-\r
-\r
-           }\r
-           break;\r
-\r
-        }\r
-    }\r
-       LEXSTATE->type = _type;\r
-\r
-    // This is where rules clean up and exit\r
-    //\r
-    goto ruleSTRINGEx; /* Prevent compiler warnings */\r
-    ruleSTRINGEx: ;\r
-\r
-}\r
-// $ANTLR end STRING\r
-\r
-//   Comes from: 64:10: ( ( 'e' | 'E' ) ( '+' | '-' )? ( '0' .. '9' )+ )\r
-/** \brief Lexer rule generated by ANTLR3\r
- *\r
- * $ANTLR start EXPONENT\r
- *\r
- * Looks to match the characters the constitute the token EXPONENT\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 mEXPONENT(pSimanticsDataLexer ctx)\r
-{\r
-       ANTLR3_UINT32   _type;\r
-\r
-        \r
-    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:64:10: ( ( 'e' | 'E' ) ( '+' | '-' )? ( '0' .. '9' )+ )\r
-    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:64:12: ( 'e' | 'E' ) ( '+' | '-' )? ( '0' .. '9' )+\r
-    {\r
-        if ( LA(1) == 'E' || LA(1) == 'e' )\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 ruleEXPONENTEx;\r
-        }\r
-\r
-\r
-        // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:64:22: ( '+' | '-' )?\r
-        {\r
-            int alt18=2;\r
-            switch ( LA(1) ) \r
-            {\r
-                case '+':\r
-                case '-':\r
-                       {\r
-                               alt18=1;\r
-                       }\r
-                    break;\r
-            }\r
-\r
-            switch (alt18) \r
-            {\r
-               case 1:\r
-                   // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:\r
-                   {\r
-                       if ( LA(1) == '+' || 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 ruleEXPONENTEx;\r
-                       }\r
-\r
-\r
-                   }\r
-                   break;\r
-\r
-            }\r
-        }\r
-        // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:64:33: ( '0' .. '9' )+\r
-        {\r
-            int cnt19=0;\r
-\r
-            for (;;)\r
-            {\r
-                int alt19=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
-                               alt19=1;\r
-                       }\r
-                   break;\r
-\r
-               }\r
-\r
-               switch (alt19) \r
-               {\r
-                   case 1:\r
-                       // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:64:34: '0' .. '9'\r
-                       {\r
-                           MATCHRANGE('0', '9'); \r
-                           if  (HASEXCEPTION())\r
-                           {\r
-                               goto ruleEXPONENTEx;\r
-                           }\r
-\r
-\r
-                       }\r
-                       break;\r
-\r
-                   default:\r
-                   \r
-                       if ( cnt19 >= 1 )\r
-                       {\r
-                           goto loop19;\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 ruleEXPONENTEx;\r
-               }\r
-               cnt19++;\r
-            }\r
-            loop19: ;  /* Jump to here if this rule does not match */\r
-        }\r
-\r
-    }\r
-\r
-\r
-\r
-    // This is where rules clean up and exit\r
-    //\r
-    goto ruleEXPONENTEx; /* Prevent compiler warnings */\r
-    ruleEXPONENTEx: ;\r
-\r
-}\r
-// $ANTLR end EXPONENT\r
-\r
-//   Comes from: 67:11: ( ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) )\r
-/** \brief Lexer rule generated by ANTLR3\r
- *\r
- * $ANTLR start HEX_DIGIT\r
- *\r
- * Looks to match the characters the constitute the token HEX_DIGIT\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 mHEX_DIGIT(pSimanticsDataLexer ctx)\r
-{\r
-       ANTLR3_UINT32   _type;\r
-\r
-        \r
-    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:67:11: ( ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) )\r
-    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:67:13: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )\r
-    {\r
-        if ( ((LA(1) >= '0') && (LA(1) <= '9')) || ((LA(1) >= 'A') && (LA(1) <= 'F')) || ((LA(1) >= 'a') && (LA(1) <= 'f')) )\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 ruleHEX_DIGITEx;\r
-        }\r
-\r
-\r
-    }\r
-\r
-\r
-\r
-    // This is where rules clean up and exit\r
-    //\r
-    goto ruleHEX_DIGITEx; /* Prevent compiler warnings */\r
-    ruleHEX_DIGITEx: ;\r
-\r
-}\r
-// $ANTLR end HEX_DIGIT\r
-\r
-//   Comes from: 71:5: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | UNICODE_ESC | OCTAL_ESC )\r
-/** \brief Lexer rule generated by ANTLR3\r
- *\r
- * $ANTLR start ESC_SEQ\r
- *\r
- * Looks to match the characters the constitute the token ESC_SEQ\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 mESC_SEQ(pSimanticsDataLexer ctx)\r
-{\r
-       ANTLR3_UINT32   _type;\r
-\r
-        \r
-    {\r
-        //  C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:71:5: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | UNICODE_ESC | OCTAL_ESC )\r
-        \r
-        ANTLR3_UINT32 alt20;\r
-\r
-        alt20=3;\r
-\r
-        switch ( LA(1) ) \r
-        {\r
-        case '\\':\r
-               {\r
-                       switch ( LA(2) ) \r
-                       {\r
-                       case '"':\r
-                       case '\'':\r
-                       case '\\':\r
-                       case 'b':\r
-                       case 'f':\r
-                       case 'n':\r
-                       case 'r':\r
-                       case 't':\r
-                               {\r
-                                       alt20=1;\r
-                               }\r
-                           break;\r
-                       case 'u':\r
-                               {\r
-                                       alt20=2;\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
-                               {\r
-                                       alt20=3;\r
-                               }\r
-                           break;\r
-\r
-                       default:\r
-                           CONSTRUCTEX();\r
-                           EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;\r
-                           EXCEPTION->message      = (void *)"";\r
-                           EXCEPTION->decisionNum  = 20;\r
-                           EXCEPTION->state        = 1;\r
-\r
-\r
-                           goto ruleESC_SEQEx;\r
-                       }\r
-\r
-               }\r
-            break;\r
-\r
-        default:\r
-            CONSTRUCTEX();\r
-            EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;\r
-            EXCEPTION->message      = (void *)"";\r
-            EXCEPTION->decisionNum  = 20;\r
-            EXCEPTION->state        = 0;\r
-\r
-\r
-            goto ruleESC_SEQEx;\r
-        }\r
-\r
-        switch (alt20) \r
-        {\r
-       case 1:\r
-           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:71:9: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' )\r
-           {\r
-               MATCHC('\\'); \r
-               if  (HASEXCEPTION())\r
-               {\r
-                   goto ruleESC_SEQEx;\r
-               }\r
-\r
-               if ( LA(1) == '"' || LA(1) == '\'' || LA(1) == '\\' || LA(1) == 'b' || LA(1) == 'f' || LA(1) == 'n' || LA(1) == 'r' || LA(1) == 't' )\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 ruleESC_SEQEx;\r
-               }\r
-\r
-\r
-           }\r
-           break;\r
-       case 2:\r
-           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:72:9: UNICODE_ESC\r
-           {\r
-               /* 72:9: UNICODE_ESC */\r
-               mUNICODE_ESC(ctx ); \r
-               if  (HASEXCEPTION())\r
-               {\r
-                   goto ruleESC_SEQEx;\r
-               }\r
-\r
-\r
-           }\r
-           break;\r
-       case 3:\r
-           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:73:9: OCTAL_ESC\r
-           {\r
-               /* 73:9: OCTAL_ESC */\r
-               mOCTAL_ESC(ctx ); \r
-               if  (HASEXCEPTION())\r
-               {\r
-                   goto ruleESC_SEQEx;\r
-               }\r
-\r
-\r
-           }\r
-           break;\r
-\r
-        }\r
-    }\r
-\r
-\r
-    // This is where rules clean up and exit\r
-    //\r
-    goto ruleESC_SEQEx; /* Prevent compiler warnings */\r
-    ruleESC_SEQEx: ;\r
-\r
-}\r
-// $ANTLR end ESC_SEQ\r
-\r
-//   Comes from: 78:5: ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) )\r
-/** \brief Lexer rule generated by ANTLR3\r
- *\r
- * $ANTLR start OCTAL_ESC\r
- *\r
- * Looks to match the characters the constitute the token OCTAL_ESC\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 mOCTAL_ESC(pSimanticsDataLexer ctx)\r
-{\r
-       ANTLR3_UINT32   _type;\r
-\r
-        \r
-    {\r
-        //  C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:78:5: ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) )\r
-        \r
-        ANTLR3_UINT32 alt21;\r
-\r
-        alt21=3;\r
-\r
-        switch ( LA(1) ) \r
-        {\r
-        case '\\':\r
-               {\r
-                       switch ( LA(2) ) \r
-                       {\r
-                       case '0':\r
-                       case '1':\r
-                       case '2':\r
-                       case '3':\r
-                               {\r
-                                       switch ( LA(3) ) \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
-                                               {\r
-                                                       switch ( LA(4) ) \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
-                                                               {\r
-                                                                       alt21=1;\r
-                                                               }\r
-                                                           break;\r
-\r
-                                                       default:\r
-                                                           alt21=2;}\r
-\r
-                                               }\r
-                                           break;\r
-\r
-                                       default:\r
-                                           alt21=3;}\r
-\r
-                               }\r
-                           break;\r
-                       case '4':\r
-                       case '5':\r
-                       case '6':\r
-                       case '7':\r
-                               {\r
-                                       switch ( LA(3) ) \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
-                                               {\r
-                                                       alt21=2;\r
-                                               }\r
-                                           break;\r
-\r
-                                       default:\r
-                                           alt21=3;}\r
-\r
-                               }\r
-                           break;\r
-\r
-                       default:\r
-                           CONSTRUCTEX();\r
-                           EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;\r
-                           EXCEPTION->message      = (void *)"";\r
-                           EXCEPTION->decisionNum  = 21;\r
-                           EXCEPTION->state        = 1;\r
-\r
-\r
-                           goto ruleOCTAL_ESCEx;\r
-                       }\r
-\r
-               }\r
-            break;\r
-\r
-        default:\r
-            CONSTRUCTEX();\r
-            EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;\r
-            EXCEPTION->message      = (void *)"";\r
-            EXCEPTION->decisionNum  = 21;\r
-            EXCEPTION->state        = 0;\r
-\r
-\r
-            goto ruleOCTAL_ESCEx;\r
-        }\r
-\r
-        switch (alt21) \r
-        {\r
-       case 1:\r
-           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:78:9: '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' )\r
-           {\r
-               MATCHC('\\'); \r
-               if  (HASEXCEPTION())\r
-               {\r
-                   goto ruleOCTAL_ESCEx;\r
-               }\r
-\r
-               // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:78:14: ( '0' .. '3' )\r
-               // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:78:15: '0' .. '3'\r
-               {\r
-                   MATCHRANGE('0', '3'); \r
-                   if  (HASEXCEPTION())\r
-                   {\r
-                       goto ruleOCTAL_ESCEx;\r
-                   }\r
-\r
-\r
-               }\r
-\r
-               // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:78:25: ( '0' .. '7' )\r
-               // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:78:26: '0' .. '7'\r
-               {\r
-                   MATCHRANGE('0', '7'); \r
-                   if  (HASEXCEPTION())\r
-                   {\r
-                       goto ruleOCTAL_ESCEx;\r
-                   }\r
-\r
-\r
-               }\r
-\r
-               // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:78:36: ( '0' .. '7' )\r
-               // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:78:37: '0' .. '7'\r
-               {\r
-                   MATCHRANGE('0', '7'); \r
-                   if  (HASEXCEPTION())\r
-                   {\r
-                       goto ruleOCTAL_ESCEx;\r
-                   }\r
-\r
-\r
-               }\r
-\r
-\r
-           }\r
-           break;\r
-       case 2:\r
-           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:79:9: '\\\\' ( '0' .. '7' ) ( '0' .. '7' )\r
-           {\r
-               MATCHC('\\'); \r
-               if  (HASEXCEPTION())\r
-               {\r
-                   goto ruleOCTAL_ESCEx;\r
-               }\r
-\r
-               // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:79:14: ( '0' .. '7' )\r
-               // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:79:15: '0' .. '7'\r
-               {\r
-                   MATCHRANGE('0', '7'); \r
-                   if  (HASEXCEPTION())\r
-                   {\r
-                       goto ruleOCTAL_ESCEx;\r
-                   }\r
-\r
-\r
-               }\r
-\r
-               // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:79:25: ( '0' .. '7' )\r
-               // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:79:26: '0' .. '7'\r
-               {\r
-                   MATCHRANGE('0', '7'); \r
-                   if  (HASEXCEPTION())\r
-                   {\r
-                       goto ruleOCTAL_ESCEx;\r
-                   }\r
-\r
-\r
-               }\r
-\r
-\r
-           }\r
-           break;\r
-       case 3:\r
-           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:80:9: '\\\\' ( '0' .. '7' )\r
-           {\r
-               MATCHC('\\'); \r
-               if  (HASEXCEPTION())\r
-               {\r
-                   goto ruleOCTAL_ESCEx;\r
-               }\r
-\r
-               // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:80:14: ( '0' .. '7' )\r
-               // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:80:15: '0' .. '7'\r
-               {\r
-                   MATCHRANGE('0', '7'); \r
-                   if  (HASEXCEPTION())\r
-                   {\r
-                       goto ruleOCTAL_ESCEx;\r
-                   }\r
-\r
-\r
-               }\r
-\r
-\r
-           }\r
-           break;\r
-\r
-        }\r
-    }\r
-\r
-\r
-    // This is where rules clean up and exit\r
-    //\r
-    goto ruleOCTAL_ESCEx; /* Prevent compiler warnings */\r
-    ruleOCTAL_ESCEx: ;\r
-\r
-}\r
-// $ANTLR end OCTAL_ESC\r
-\r
-//   Comes from: 85:5: ( '\\\\' 'u' HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT )\r
-/** \brief Lexer rule generated by ANTLR3\r
- *\r
- * $ANTLR start UNICODE_ESC\r
- *\r
- * Looks to match the characters the constitute the token UNICODE_ESC\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 mUNICODE_ESC(pSimanticsDataLexer ctx)\r
-{\r
-       ANTLR3_UINT32   _type;\r
-\r
-        \r
-    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:85:5: ( '\\\\' 'u' HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT )\r
-    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:85:9: '\\\\' 'u' HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT\r
-    {\r
-        MATCHC('\\'); \r
-        if  (HASEXCEPTION())\r
-        {\r
-            goto ruleUNICODE_ESCEx;\r
-        }\r
-\r
-        MATCHC('u'); \r
-        if  (HASEXCEPTION())\r
-        {\r
-            goto ruleUNICODE_ESCEx;\r
-        }\r
-\r
-        /* 85:9: '\\\\' 'u' HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT */\r
-        mHEX_DIGIT(ctx ); \r
-        if  (HASEXCEPTION())\r
-        {\r
-            goto ruleUNICODE_ESCEx;\r
-        }\r
-\r
-        /* 85:9: '\\\\' 'u' HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT */\r
-        mHEX_DIGIT(ctx ); \r
-        if  (HASEXCEPTION())\r
-        {\r
-            goto ruleUNICODE_ESCEx;\r
-        }\r
-\r
-        /* 85:9: '\\\\' 'u' HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT */\r
-        mHEX_DIGIT(ctx ); \r
-        if  (HASEXCEPTION())\r
-        {\r
-            goto ruleUNICODE_ESCEx;\r
-        }\r
-\r
-        /* 85:9: '\\\\' 'u' HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT */\r
-        mHEX_DIGIT(ctx ); \r
-        if  (HASEXCEPTION())\r
-        {\r
-            goto ruleUNICODE_ESCEx;\r
-        }\r
-\r
-\r
-    }\r
-\r
-\r
-\r
-    // This is where rules clean up and exit\r
-    //\r
-    goto ruleUNICODE_ESCEx; /* Prevent compiler warnings */\r
-    ruleUNICODE_ESCEx: ;\r
-\r
-}\r
-// $ANTLR end UNICODE_ESC\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(pSimanticsDataLexer ctx)\r
-{\r
-    {\r
-        //  C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:1:8: ( T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | ID | INT | FLOAT | COMMENT | WS | STRING )\r
-        \r
-        ANTLR3_UINT32 alt22;\r
-\r
-        alt22=22;\r
-\r
-        alt22 = cdfa22.predict(ctx, RECOGNIZER, ISTREAM, &cdfa22);\r
-        if  (HASEXCEPTION())\r
-        {\r
-            goto ruleTokensEx;\r
-        }\r
-\r
-        switch (alt22) \r
-        {\r
-       case 1:\r
-           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:1:10: T__34\r
-           {\r
-               /* 1:10: T__34 */\r
-               mT__34(ctx ); \r
-               if  (HASEXCEPTION())\r
-               {\r
-                   goto ruleTokensEx;\r
-               }\r
-\r
-\r
-           }\r
-           break;\r
-       case 2:\r
-           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:1:16: T__35\r
-           {\r
-               /* 1:16: T__35 */\r
-               mT__35(ctx ); \r
-               if  (HASEXCEPTION())\r
-               {\r
-                   goto ruleTokensEx;\r
-               }\r
-\r
-\r
-           }\r
-           break;\r
-       case 3:\r
-           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:1:22: T__36\r
-           {\r
-               /* 1:22: T__36 */\r
-               mT__36(ctx ); \r
-               if  (HASEXCEPTION())\r
-               {\r
-                   goto ruleTokensEx;\r
-               }\r
-\r
-\r
-           }\r
-           break;\r
-       case 4:\r
-           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:1:28: T__37\r
-           {\r
-               /* 1:28: T__37 */\r
-               mT__37(ctx ); \r
-               if  (HASEXCEPTION())\r
-               {\r
-                   goto ruleTokensEx;\r
-               }\r
-\r
-\r
-           }\r
-           break;\r
-       case 5:\r
-           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:1:34: T__38\r
-           {\r
-               /* 1:34: T__38 */\r
-               mT__38(ctx ); \r
-               if  (HASEXCEPTION())\r
-               {\r
-                   goto ruleTokensEx;\r
-               }\r
-\r
-\r
-           }\r
-           break;\r
-       case 6:\r
-           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:1:40: T__39\r
-           {\r
-               /* 1:40: T__39 */\r
-               mT__39(ctx ); \r
-               if  (HASEXCEPTION())\r
-               {\r
-                   goto ruleTokensEx;\r
-               }\r
-\r
-\r
-           }\r
-           break;\r
-       case 7:\r
-           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:1:46: T__40\r
-           {\r
-               /* 1:46: T__40 */\r
-               mT__40(ctx ); \r
-               if  (HASEXCEPTION())\r
-               {\r
-                   goto ruleTokensEx;\r
-               }\r
-\r
-\r
-           }\r
-           break;\r
-       case 8:\r
-           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:1:52: T__41\r
-           {\r
-               /* 1:52: T__41 */\r
-               mT__41(ctx ); \r
-               if  (HASEXCEPTION())\r
-               {\r
-                   goto ruleTokensEx;\r
-               }\r
-\r
-\r
-           }\r
-           break;\r
-       case 9:\r
-           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:1:58: T__42\r
-           {\r
-               /* 1:58: T__42 */\r
-               mT__42(ctx ); \r
-               if  (HASEXCEPTION())\r
-               {\r
-                   goto ruleTokensEx;\r
-               }\r
-\r
-\r
-           }\r
-           break;\r
-       case 10:\r
-           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:1:64: T__43\r
-           {\r
-               /* 1:64: T__43 */\r
-               mT__43(ctx ); \r
-               if  (HASEXCEPTION())\r
-               {\r
-                   goto ruleTokensEx;\r
-               }\r
-\r
-\r
-           }\r
-           break;\r
-       case 11:\r
-           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:1:70: T__44\r
-           {\r
-               /* 1:70: T__44 */\r
-               mT__44(ctx ); \r
-               if  (HASEXCEPTION())\r
-               {\r
-                   goto ruleTokensEx;\r
-               }\r
-\r
-\r
-           }\r
-           break;\r
-       case 12:\r
-           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:1:76: T__45\r
-           {\r
-               /* 1:76: T__45 */\r
-               mT__45(ctx ); \r
-               if  (HASEXCEPTION())\r
-               {\r
-                   goto ruleTokensEx;\r
-               }\r
-\r
-\r
-           }\r
-           break;\r
-       case 13:\r
-           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:1:82: T__46\r
-           {\r
-               /* 1:82: T__46 */\r
-               mT__46(ctx ); \r
-               if  (HASEXCEPTION())\r
-               {\r
-                   goto ruleTokensEx;\r
-               }\r
-\r
-\r
-           }\r
-           break;\r
-       case 14:\r
-           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:1:88: T__47\r
-           {\r
-               /* 1:88: T__47 */\r
-               mT__47(ctx ); \r
-               if  (HASEXCEPTION())\r
-               {\r
-                   goto ruleTokensEx;\r
-               }\r
-\r
-\r
-           }\r
-           break;\r
-       case 15:\r
-           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:1:94: T__48\r
-           {\r
-               /* 1:94: T__48 */\r
-               mT__48(ctx ); \r
-               if  (HASEXCEPTION())\r
-               {\r
-                   goto ruleTokensEx;\r
-               }\r
-\r
-\r
-           }\r
-           break;\r
-       case 16:\r
-           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:1:100: T__49\r
-           {\r
-               /* 1:100: T__49 */\r
-               mT__49(ctx ); \r
-               if  (HASEXCEPTION())\r
-               {\r
-                   goto ruleTokensEx;\r
-               }\r
-\r
-\r
-           }\r
-           break;\r
-       case 17:\r
-           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:1:106: ID\r
-           {\r
-               /* 1:106: ID */\r
-               mID(ctx ); \r
-               if  (HASEXCEPTION())\r
-               {\r
-                   goto ruleTokensEx;\r
-               }\r
-\r
-\r
-           }\r
-           break;\r
-       case 18:\r
-           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:1:109: INT\r
-           {\r
-               /* 1:109: INT */\r
-               mINT(ctx ); \r
-               if  (HASEXCEPTION())\r
-               {\r
-                   goto ruleTokensEx;\r
-               }\r
-\r
-\r
-           }\r
-           break;\r
-       case 19:\r
-           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:1:113: FLOAT\r
-           {\r
-               /* 1:113: FLOAT */\r
-               mFLOAT(ctx ); \r
-               if  (HASEXCEPTION())\r
-               {\r
-                   goto ruleTokensEx;\r
-               }\r
-\r
-\r
-           }\r
-           break;\r
-       case 20:\r
-           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:1:119: COMMENT\r
-           {\r
-               /* 1:119: COMMENT */\r
-               mCOMMENT(ctx ); \r
-               if  (HASEXCEPTION())\r
-               {\r
-                   goto ruleTokensEx;\r
-               }\r
-\r
-\r
-           }\r
-           break;\r
-       case 21:\r
-           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:1:127: WS\r
-           {\r
-               /* 1:127: WS */\r
-               mWS(ctx ); \r
-               if  (HASEXCEPTION())\r
-               {\r
-                   goto ruleTokensEx;\r
-               }\r
-\r
-\r
-           }\r
-           break;\r
-       case 22:\r
-           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:1:130: STRING\r
-           {\r
-               /* 1:130: STRING */\r
-               mSTRING(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
+/** \file
+ *  This C source file was generated by $ANTLR version 3.2 Sep 23, 2009 12:02:23
+ *
+ *     -  From the grammar source file : C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g
+ *     -                            On : 2010-03-26 13:33:28
+ *     -                 for the lexer : SimanticsDataLexerLexer *
+ * Editing it, at least manually, is not wise. 
+ *
+ * C language generator and runtime by Jim Idle, jimi|hereisanat|idle|dotgoeshere|ws.
+ *
+ *
+*/
+// [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 the ANTLR3 generated header file.
+ */
+#include    "SimanticsDataLexer.h"
+/* ----------------------------------------- */
+
+
+/** String literals used by SimanticsDataLexer that we must do things like MATCHS() with.
+ *  C will normally just lay down 8 bit characters, and you can use L"xxx" to
+ *  get wchar_t, but wchar_t is 16 bits on Windows, which is not UTF32 and so
+ *  we perform this little trick of defining the literals as arrays of UINT32
+ *  and passing in the address of these.
+ */
+static ANTLR3_UCHAR    lit_1[]  = { 0x74, 0x79, 0x70, 0x65,  ANTLR3_STRING_TERMINATOR};
+static ANTLR3_UCHAR    lit_2[]  = { 0x2E, 0x2E,  ANTLR3_STRING_TERMINATOR};
+static ANTLR3_UCHAR    lit_3[]  = { 0x74, 0x72, 0x75, 0x65,  ANTLR3_STRING_TERMINATOR};
+static ANTLR3_UCHAR    lit_4[]  = { 0x66, 0x61, 0x6C, 0x73, 0x65,  ANTLR3_STRING_TERMINATOR};
+static ANTLR3_UCHAR    lit_5[]  = { 0x6E, 0x75, 0x6C, 0x6C,  ANTLR3_STRING_TERMINATOR};
+static ANTLR3_UCHAR    lit_6[]  = { 0x6D, 0x61, 0x70,  ANTLR3_STRING_TERMINATOR};
+static ANTLR3_UCHAR    lit_7[]  = { 0x2F, 0x2F,  ANTLR3_STRING_TERMINATOR};
+static ANTLR3_UCHAR    lit_8[]  = { 0x2F, 0x2A,  ANTLR3_STRING_TERMINATOR};
+static ANTLR3_UCHAR    lit_9[]  = { 0x2A, 0x2F,  ANTLR3_STRING_TERMINATOR};
+static ANTLR3_UCHAR    lit_10[]  = { 0x22, 0x22, 0x22,  ANTLR3_STRING_TERMINATOR};
+static ANTLR3_UCHAR    lit_11[]  = { 0x22, 0x22,  ANTLR3_STRING_TERMINATOR};
+
+
+
+
+/* MACROS that hide the C interface implementations from the
+ * generated code, which makes it a little more understandable to the human eye.
+ * I am very much against using C pre-processor macros for function calls and bits
+ * of code as you cannot see what is happening when single stepping in debuggers
+ * and so on. The exception (in my book at least) is for generated code, where you are
+ * not maintaining it, but may wish to read and understand it. If you single step it, you know that input()
+ * hides some indirect calls, but is always referring to the input stream. This is
+ * probably more readable than ctx->input->istream->input(snarfle0->blarg) and allows me to rejig
+ * the runtime interfaces without changing the generated code too often, without
+ * confusing the reader of the generated output, who may not wish to know the gory
+ * details of the interface inheritance.
+ */
+#define                CTX     ctx
+
+/* Aids in accessing scopes for grammar programmers
+ */
+#undef SCOPE_TYPE
+#undef SCOPE_STACK
+#undef SCOPE_TOP
+#define        SCOPE_TYPE(scope)   pSimanticsDataLexer_##scope##_SCOPE
+#define SCOPE_STACK(scope)  pSimanticsDataLexer_##scope##Stack
+#define        SCOPE_TOP(scope)    ctx->pSimanticsDataLexer_##scope##Top
+#define        SCOPE_SIZE(scope)               ctx->pSimanticsDataLexer_##scope##Stack_limit
+#define SCOPE_INSTANCE(scope, i)       (ctx->SCOPE_STACK(scope)->get(ctx->SCOPE_STACK(scope),i))
+
+/* Macros for accessing things in a lexer
+ */
+#undef     LEXER
+#undef     RECOGNIZER              
+#undef     RULEMEMO                
+#undef     GETCHARINDEX
+#undef     GETLINE
+#undef     GETCHARPOSITIONINLINE
+#undef     EMIT
+#undef     EMITNEW
+#undef     MATCHC
+#undef     MATCHS
+#undef     MATCHRANGE
+#undef     LTOKEN
+#undef     HASFAILED
+#undef     FAILEDFLAG
+#undef     INPUT
+#undef     STRSTREAM
+#undef     LA
+#undef     HASEXCEPTION
+#undef     EXCEPTION
+#undef     CONSTRUCTEX
+#undef     CONSUME
+#undef     LRECOVER
+#undef     MARK
+#undef     REWIND
+#undef     REWINDLAST
+#undef     BACKTRACKING
+#undef         MATCHANY
+#undef         MEMOIZE
+#undef         HAVEPARSEDRULE
+#undef         GETTEXT
+#undef         INDEX
+#undef         SEEK
+#undef         PUSHSTREAM
+#undef         POPSTREAM
+#undef         SETTEXT
+#undef         SETTEXT8
+
+#define            LEXER                                       ctx->pLexer
+#define            RECOGNIZER                      LEXER->rec
+#define                LEXSTATE                                RECOGNIZER->state
+#define                TOKSOURCE                               LEXSTATE->tokSource
+#define            GETCHARINDEX()                      LEXER->getCharIndex(LEXER)
+#define            GETLINE()                           LEXER->getLine(LEXER)
+#define            GETTEXT()                           LEXER->getText(LEXER)
+#define            GETCHARPOSITIONINLINE() LEXER->getCharPositionInLine(LEXER)
+#define            EMIT()                                      LEXSTATE->type = _type; LEXER->emit(LEXER)
+#define            EMITNEW(t)                          LEXER->emitNew(LEXER, t)
+#define            MATCHC(c)                           LEXER->matchc(LEXER, c)
+#define            MATCHS(s)                           LEXER->matchs(LEXER, s)
+#define            MATCHRANGE(c1,c2)       LEXER->matchRange(LEXER, c1, c2)
+#define            MATCHANY()                          LEXER->matchAny(LEXER)
+#define            LTOKEN                              LEXSTATE->token
+#define            HASFAILED()                         (LEXSTATE->failed == ANTLR3_TRUE)
+#define            BACKTRACKING                        LEXSTATE->backtracking
+#define            FAILEDFLAG                          LEXSTATE->failed
+#define            INPUT                                       LEXER->input
+#define            STRSTREAM                           INPUT
+#define                ISTREAM                                 INPUT->istream
+#define                INDEX()                                 ISTREAM->index(ISTREAM)
+#define                SEEK(n)                                 ISTREAM->seek(ISTREAM, n)
+#define            EOF_TOKEN                           &(LEXSTATE->tokSource->eofToken)
+#define            HASEXCEPTION()                      (LEXSTATE->error == ANTLR3_TRUE)
+#define            EXCEPTION                           LEXSTATE->exception
+#define            CONSTRUCTEX()                       RECOGNIZER->exConstruct(RECOGNIZER)
+#define            LRECOVER()                          LEXER->recover(LEXER)
+#define            MARK()                                      ISTREAM->mark(ISTREAM)
+#define            REWIND(m)                           ISTREAM->rewind(ISTREAM, m)
+#define            REWINDLAST()                        ISTREAM->rewindLast(ISTREAM)
+#define                MEMOIZE(ri,si)                  RECOGNIZER->memoize(RECOGNIZER, ri, si)
+#define                HAVEPARSEDRULE(r)               RECOGNIZER->alreadyParsedRule(RECOGNIZER, r)
+#define                PUSHSTREAM(str)                 LEXER->pushCharStream(LEXER, str)
+#define                POPSTREAM()                             LEXER->popCharStream(LEXER)
+#define                SETTEXT(str)                    LEXSTATE->text = str
+#define                SKIP()                                  LEXSTATE->token = &(TOKSOURCE->skipToken)
+#define                USER1                                   LEXSTATE->user1
+#define                USER2                                   LEXSTATE->user2
+#define                USER3                                   LEXSTATE->user3
+#define                CUSTOM                                  LEXSTATE->custom
+#define                RULEMEMO                                LEXSTATE->ruleMemo
+#define                DBG                                             RECOGNIZER->debugger
+
+/* If we have been told we can rely on the standard 8 bit or 16 bit input
+ * stream, then we can define our macros to use the direct pointers
+ * in the input object, which is much faster than indirect calls. This
+ * is really only significant to lexers with a lot of fragment rules (which
+ * do not place LA(1) in a temporary at the moment) and even then
+ * only if there is a lot of input (order of say 1M or so).
+ */
+#if    defined(ANTLR3_INLINE_INPUT_ASCII) || defined(ANTLR3_INLINE_INPUT_UTF16)
+
+# ifdef        ANTLR3_INLINE_INPUT_ASCII
+
+/* 8 bit "ASCII" (actually any 8 bit character set) */
+
+#  define          NEXTCHAR                    ((pANTLR3_UINT8)(INPUT->nextChar))
+#  define          DATAP                               ((pANTLR3_UINT8)(INPUT->data))
+
+# else
+
+#  define          NEXTCHAR                    ((pANTLR3_UINT16)(INPUT->nextChar)) 
+#  define          DATAP                               ((pANTLR3_UINT16)(INPUT->data))
+
+# endif
+
+# define           LA(n) ((NEXTCHAR + n) > (DATAP + INPUT->sizeBuf) ? ANTLR3_CHARSTREAM_EOF : (ANTLR3_UCHAR)(*(NEXTCHAR + n - 1)))
+# define           CONSUME()                                                                                   \
+{                                                                                                                                      \
+    if (NEXTCHAR < (DATAP + INPUT->sizeBuf))                                           \
+    {                                                                                                                          \
+               INPUT->charPositionInLine++;                                                            \
+               if  ((ANTLR3_UCHAR)(*NEXTCHAR) == INPUT->newlineChar)           \
+               {                                                                                                                       \
+                       INPUT->line++;                                                                                  \
+                       INPUT->charPositionInLine       = 0;                                            \
+                       INPUT->currentLine              = (void *)(NEXTCHAR + 1);               \
+               }                                                                                                                       \
+               INPUT->nextChar = (void *)(NEXTCHAR + 1);                                       \
+    }                                                                                                                          \
+}
+
+#else
+
+// Pick up the input character by calling the input stream implementation.
+//
+#define            CONSUME()                           INPUT->istream->consume(INPUT->istream)
+#define            LA(n)                                       INPUT->istream->_LA(INPUT->istream, n)
+
+#endif
+#define                TOKTEXT(tok, txt)                               tok, (pANTLR3_UINT8)txt
+
+/* The 4 tokens defined below may well clash with your own #defines or token types. If so
+ * then for the present you must use different names for your defines as these are hard coded
+ * in the code generator. It would be better not to use such names internally, and maybe
+ * we can change this in a forthcoming release. I deliberately do not #undef these
+ * here as this will at least give you a redefined error somewhere if they clash.
+ */
+#define            UP      ANTLR3_TOKEN_UP
+#define            DOWN    ANTLR3_TOKEN_DOWN
+#define            EOR     ANTLR3_TOKEN_EOR
+#define            INVALID ANTLR3_TOKEN_INVALID
+
+
+/* =============================================================================
+ * Functions to create and destroy scopes. First come the rule scopes, followed
+ * by the global declared scopes.
+ */
+
+
+
+/* ============================================================================= */
+
+/* =============================================================================
+ * Start of recognizer
+ */
+
+
+/* Forward declare the locally static matching functions we have generated and any predicate functions.
+ */
+static ANTLR3_INLINE  void     mT__34    (pSimanticsDataLexer ctx);
+static ANTLR3_INLINE  void     mT__35    (pSimanticsDataLexer ctx);
+static ANTLR3_INLINE  void     mT__36    (pSimanticsDataLexer ctx);
+static ANTLR3_INLINE  void     mT__37    (pSimanticsDataLexer ctx);
+static ANTLR3_INLINE  void     mT__38    (pSimanticsDataLexer ctx);
+static ANTLR3_INLINE  void     mT__39    (pSimanticsDataLexer ctx);
+static ANTLR3_INLINE  void     mT__40    (pSimanticsDataLexer ctx);
+static ANTLR3_INLINE  void     mT__41    (pSimanticsDataLexer ctx);
+static ANTLR3_INLINE  void     mT__42    (pSimanticsDataLexer ctx);
+static ANTLR3_INLINE  void     mT__43    (pSimanticsDataLexer ctx);
+static ANTLR3_INLINE  void     mT__44    (pSimanticsDataLexer ctx);
+static ANTLR3_INLINE  void     mT__45    (pSimanticsDataLexer ctx);
+static ANTLR3_INLINE  void     mT__46    (pSimanticsDataLexer ctx);
+static ANTLR3_INLINE  void     mT__47    (pSimanticsDataLexer ctx);
+static ANTLR3_INLINE  void     mT__48    (pSimanticsDataLexer ctx);
+static ANTLR3_INLINE  void     mT__49    (pSimanticsDataLexer ctx);
+static ANTLR3_INLINE  void     mID    (pSimanticsDataLexer ctx);
+static ANTLR3_INLINE  void     mINT    (pSimanticsDataLexer ctx);
+static ANTLR3_INLINE  void     mFLOAT    (pSimanticsDataLexer ctx);
+static ANTLR3_INLINE  void     mCOMMENT    (pSimanticsDataLexer ctx);
+static ANTLR3_INLINE  void     mWS    (pSimanticsDataLexer ctx);
+static ANTLR3_INLINE  void     mSTRING    (pSimanticsDataLexer ctx);
+static ANTLR3_INLINE  void     mEXPONENT    (pSimanticsDataLexer ctx);
+static ANTLR3_INLINE  void     mHEX_DIGIT    (pSimanticsDataLexer ctx);
+static ANTLR3_INLINE  void     mESC_SEQ    (pSimanticsDataLexer ctx);
+static ANTLR3_INLINE  void     mOCTAL_ESC    (pSimanticsDataLexer ctx);
+static ANTLR3_INLINE  void     mUNICODE_ESC    (pSimanticsDataLexer ctx);
+static ANTLR3_INLINE  void     mTokens    (pSimanticsDataLexer ctx);
+static void    SimanticsDataLexerFree(pSimanticsDataLexer ctx);
+
+/* =========================================================================
+ * Lexer matching rules end.
+ * =========================================================================
+ */
+
+
+
+static void
+SimanticsDataLexerFree  (pSimanticsDataLexer ctx)
+{
+    LEXER->free(LEXER);
+    
+    ANTLR3_FREE(ctx);
+}
+
+/** \brief Name of the grammar file that generated this code
+ */
+static const char fileName[] = "C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g";
+
+/** \brief Return the name of the grammar file that generated this code.
+ */
+static const char * getGrammarFileName()
+{
+       return fileName;
+}
+
+/** \brief Create a new lexer called SimanticsDataLexer
+ *
+ * \param[in]    instream Pointer to an initialized input stream
+ * \return 
+ *     - Success pSimanticsDataLexer initialized for the lex start
+ *     - Fail NULL
+ */
+ANTLR3_API pSimanticsDataLexer SimanticsDataLexerNew         
+(pANTLR3_INPUT_STREAM instream)
+{
+       // See if we can create a new lexer with the standard constructor
+       //
+       return SimanticsDataLexerNewSSD(instream, NULL);
+}
+
+/** \brief Create a new lexer called SimanticsDataLexer
+ *
+ * \param[in]    instream Pointer to an initialized input stream
+ * \param[state] state Previously created shared recognizer stat
+ * \return 
+ *     - Success pSimanticsDataLexer initialized for the lex start
+ *     - Fail NULL
+ */
+ANTLR3_API pSimanticsDataLexer SimanticsDataLexerNewSSD         
+(pANTLR3_INPUT_STREAM instream, pANTLR3_RECOGNIZER_SHARED_STATE state)
+{
+    pSimanticsDataLexer ctx; // Context structure we will build and return
+
+    ctx = (pSimanticsDataLexer) ANTLR3_CALLOC(1, sizeof(SimanticsDataLexer));
+
+    if  (ctx == NULL)
+    {
+        // Failed to allocate memory for lexer context
+        return  NULL;
+    }
+
+    /* -------------------------------------------------------------------
+     * Memory for basic structure is allocated, now to fill in
+     * in base ANTLR3 structures. We initialize the function pointers
+     * for the standard ANTLR3 lexer function set, but upon return
+     * from here, the programmer may set the pointers to provide custom
+     * implementations of each function. 
+     *
+     * We don't use the macros defined in SimanticsDataLexer.h here so you can get a sense
+     * of what goes where.
+     */
+    
+    /* Create a base lexer, using the supplied input stream
+     */
+    ctx->pLexer        = antlr3LexerNewStream(ANTLR3_SIZE_HINT, instream, state);
+    
+    /* Check that we allocated the memory correctly
+     */
+    if (ctx->pLexer == NULL)
+    {
+               ANTLR3_FREE(ctx);
+               return  NULL;
+    }
+    /* Install the implementation of our SimanticsDataLexer interface
+     */
+    ctx->mT__34        = mT__34;
+    ctx->mT__35        = mT__35;
+    ctx->mT__36        = mT__36;
+    ctx->mT__37        = mT__37;
+    ctx->mT__38        = mT__38;
+    ctx->mT__39        = mT__39;
+    ctx->mT__40        = mT__40;
+    ctx->mT__41        = mT__41;
+    ctx->mT__42        = mT__42;
+    ctx->mT__43        = mT__43;
+    ctx->mT__44        = mT__44;
+    ctx->mT__45        = mT__45;
+    ctx->mT__46        = mT__46;
+    ctx->mT__47        = mT__47;
+    ctx->mT__48        = mT__48;
+    ctx->mT__49        = mT__49;
+    ctx->mID   = mID;
+    ctx->mINT  = mINT;
+    ctx->mFLOAT        = mFLOAT;
+    ctx->mCOMMENT      = mCOMMENT;
+    ctx->mWS   = mWS;
+    ctx->mSTRING       = mSTRING;
+    ctx->mEXPONENT     = mEXPONENT;
+    ctx->mHEX_DIGIT    = mHEX_DIGIT;
+    ctx->mESC_SEQ      = mESC_SEQ;
+    ctx->mOCTAL_ESC    = mOCTAL_ESC;
+    ctx->mUNICODE_ESC  = mUNICODE_ESC;
+    ctx->mTokens       = mTokens;
+    
+    /** When the nextToken() call is made to this lexer's pANTLR3_TOKEN_SOURCE
+     *  it will call mTokens() in this generated code, and will pass it the ctx
+     * pointer of this lexer, not the context of the base lexer, so store that now.
+     */
+    ctx->pLexer->ctx       = ctx;
+    
+    /**Install the token matching function
+     */
+    ctx->pLexer->mTokens = (void (*) (void *))(mTokens);
+    
+    ctx->getGrammarFileName    = getGrammarFileName;
+    ctx->free          = SimanticsDataLexerFree;
+
+    
+    
+
+
+    /* Return the newly built lexer to the caller
+     */
+    return  ctx;
+}
+
+/* =========================================================================
+ * DFA tables for the lexer
+ */
+/** Static dfa state tables for Cyclic dfa:
+ *    40:1: FLOAT : ( ( '-' )? ( '0' .. '9' )+ '.' ( '0' .. '9' )+ ( EXPONENT )? | ( '-' )? ( '0' .. '9' )+ EXPONENT );
+ */
+static const ANTLR3_INT32 dfa10_eot[5] =
+    {
+       -1, -1, -1, -1, -1
+    };
+static const ANTLR3_INT32 dfa10_eof[5] =
+    {
+       -1, -1, -1, -1, -1
+    };
+static const ANTLR3_INT32 dfa10_min[5] =
+    {
+       45, 48, 46, -1, -1
+    };
+static const ANTLR3_INT32 dfa10_max[5] =
+    {
+       57, 57, 101, -1, -1
+    };
+static const ANTLR3_INT32 dfa10_accept[5] =
+    {
+       -1, -1, -1, 2, 1
+    };
+static const ANTLR3_INT32 dfa10_special[5] =
+    {  
+       -1, -1, -1, -1, -1
+    };
+
+/** Used when there is no transition table entry for a particular state */
+#define dfa10_T_empty      NULL
+
+static const ANTLR3_INT32 dfa10_T0[] =
+    {
+       2, 2, 2, 2, 2, 2, 2, 2, 2, 2
+    };static const ANTLR3_INT32 dfa10_T1[] =
+    {
+       1, -1, -1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2
+    };static const ANTLR3_INT32 dfa10_T2[] =
+    {
+       4, -1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3
+    };
+
+/* Transition tables are a table of sub tables, with some tables
+ * reused for efficiency.
+ */
+static const ANTLR3_INT32 * const dfa10_transitions[] =
+{
+    dfa10_T1, dfa10_T0, dfa10_T2, dfa10_T_empty, dfa10_T_empty 
+};
+
+
+/* Declare tracking structure for Cyclic DFA 10
+ */
+static
+ANTLR3_CYCLIC_DFA cdfa10
+    =  {
+           10,             /* Decision number of this dfa          */
+           /* Which decision this represents:   */
+           (const pANTLR3_UCHAR)"40:1: FLOAT : ( ( '-' )? ( '0' .. '9' )+ '.' ( '0' .. '9' )+ ( EXPONENT )? | ( '-' )? ( '0' .. '9' )+ EXPONENT );",   
+           (CDFA_SPECIAL_FUNC) antlr3dfaspecialStateTransition,        /* Default special state transition function    */
+           antlr3dfaspecialTransition,         /* DFA specialTransition is currently just a default function in the runtime */
+           antlr3dfapredict,                   /* DFA simulator function is in the runtime */
+           dfa10_eot,      /* EOT table                            */
+           dfa10_eof,      /* EOF table                            */
+           dfa10_min,      /* Minimum tokens for each state    */
+           dfa10_max,      /* Maximum tokens for each state    */
+           dfa10_accept,       /* Accept table                     */
+           dfa10_special,      /* Special transition states        */
+           dfa10_transitions   /* Table of transition tables       */
+
+       };          
+/* End of Cyclic DFA 10
+ * ---------------------
+ *//** Static dfa state tables for Cyclic dfa:
+ *    1:1: Tokens : ( T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | ID | INT | FLOAT | COMMENT | WS | STRING );
+ */
+static const ANTLR3_INT32 dfa22_eot[44] =
+    {
+       -1, 16, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 16, 16, 16, -1, -1, 
+       28, -1, -1, -1, 16, 16, 16, 16, 16, -1, -1, 16, 16, 16, 16, 38, 39, 40, 
+       16, 42, -1, -1, -1, 43, -1, -1
+    };
+static const ANTLR3_INT32 dfa22_eof[44] =
+    {
+       -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1
+    };
+static const ANTLR3_INT32 dfa22_min[44] =
+    {
+       9, 114, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 97, 117, 97, -1, 48, 
+       46, -1, -1, -1, 112, 117, 108, 108, 112, -1, -1, 101, 101, 115, 108, 48, 
+       48, 48, 101, 48, -1, -1, -1, 48, -1, -1
+    };
+static const ANTLR3_INT32 dfa22_max[44] =
+    {
+       125, 121, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 97, 117, 97, -1, 
+       57, 101, -1, -1, -1, 112, 117, 108, 108, 112, -1, -1, 101, 101, 115, 108, 
+       122, 122, 122, 101, 122, -1, -1, -1, 122, -1, -1
+    };
+static const ANTLR3_INT32 dfa22_accept[44] =
+    {
+       -1, -1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, 17, -1, -1, 20, 
+       21, 22, -1, -1, -1, -1, -1, 19, 18, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
+       16, 1, 13, -1, 15, 14
+    };
+static const ANTLR3_INT32 dfa22_special[44] =
+    {  
+       -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1
+    };
+
+/** Used when there is no transition table entry for a particular state */
+#define dfa22_T_empty      NULL
+
+static const ANTLR3_INT32 dfa22_T0[] =
+    {
+       16, 16, 16, 16, 16, 16, 16, 16, 16, 16, -1, -1, -1, -1, -1, -1, -1, 16, 
+       16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 
+       16, 16, 16, 16, 16, 16, 16, -1, -1, -1, -1, 16, -1, 16, 16, 16, 16, 16, 
+       16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 
+       16, 16, 16
+    };static const ANTLR3_INT32 dfa22_T1[] =
+    {
+       41
+    };static const ANTLR3_INT32 dfa22_T2[] =
+    {
+       36
+    };static const ANTLR3_INT32 dfa22_T3[] =
+    {
+       31
+    };static const ANTLR3_INT32 dfa22_T4[] =
+    {
+       26
+    };static const ANTLR3_INT32 dfa22_T5[] =
+    {
+       35
+    };static const ANTLR3_INT32 dfa22_T6[] =
+    {
+       30
+    };static const ANTLR3_INT32 dfa22_T7[] =
+    {
+       33
+    };static const ANTLR3_INT32 dfa22_T8[] =
+    {
+       25
+    };static const ANTLR3_INT32 dfa22_T9[] =
+    {
+       20, 20, -1, -1, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, 20, -1, 21, -1, -1, -1, -1, -1, 7, 9, -1, -1, 8, 17, 
+       6, 19, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 12, -1, -1, 2, -1, -1, -1, 
+       16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 
+       16, 16, 16, 16, 16, 16, 16, 16, 4, -1, 5, -1, 16, -1, 16, 16, 16, 16, 16, 
+       13, 16, 16, 16, 16, 16, 16, 15, 14, 16, 16, 16, 16, 16, 1, 16, 16, 16, 
+       16, 16, 16, 10, 3, 11
+    };static const ANTLR3_INT32 dfa22_T10[] =
+    {
+       24
+    };static const ANTLR3_INT32 dfa22_T11[] =
+    {
+       32
+    };static const ANTLR3_INT32 dfa22_T12[] =
+    {
+       37
+    };static const ANTLR3_INT32 dfa22_T13[] =
+    {
+       29
+    };static const ANTLR3_INT32 dfa22_T14[] =
+    {
+       34
+    };static const ANTLR3_INT32 dfa22_T15[] =
+    {
+       27, -1, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, 27, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, 27
+    };static const ANTLR3_INT32 dfa22_T16[] =
+    {
+       23, -1, -1, -1, -1, -1, -1, 22
+    };static const ANTLR3_INT32 dfa22_T17[] =
+    {
+       18, 18, 18, 18, 18, 18, 18, 18, 18, 18
+    };
+
+/* Transition tables are a table of sub tables, with some tables
+ * reused for efficiency.
+ */
+static const ANTLR3_INT32 * const dfa22_transitions[] =
+{
+    dfa22_T9, dfa22_T16, dfa22_T_empty, dfa22_T_empty, dfa22_T_empty, dfa22_T_empty, 
+    dfa22_T_empty, dfa22_T_empty, dfa22_T_empty, dfa22_T_empty, dfa22_T_empty, 
+    dfa22_T_empty, dfa22_T_empty, dfa22_T10, dfa22_T8, dfa22_T4, dfa22_T_empty, 
+    dfa22_T17, dfa22_T15, dfa22_T_empty, dfa22_T_empty, dfa22_T_empty, dfa22_T13, 
+    dfa22_T6, dfa22_T3, dfa22_T11, dfa22_T7, dfa22_T_empty, dfa22_T_empty, 
+    dfa22_T14, dfa22_T5, dfa22_T2, dfa22_T12, dfa22_T0, dfa22_T0, dfa22_T0, 
+    dfa22_T1, dfa22_T0, dfa22_T_empty, dfa22_T_empty, dfa22_T_empty, dfa22_T0, 
+    dfa22_T_empty, dfa22_T_empty       
+};
+
+
+/* Declare tracking structure for Cyclic DFA 22
+ */
+static
+ANTLR3_CYCLIC_DFA cdfa22
+    =  {
+           22,             /* Decision number of this dfa          */
+           /* Which decision this represents:   */
+           (const pANTLR3_UCHAR)"1:1: Tokens : ( T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | ID | INT | FLOAT | COMMENT | WS | STRING );", 
+           (CDFA_SPECIAL_FUNC) antlr3dfaspecialStateTransition,        /* Default special state transition function    */
+           antlr3dfaspecialTransition,         /* DFA specialTransition is currently just a default function in the runtime */
+           antlr3dfapredict,                   /* DFA simulator function is in the runtime */
+           dfa22_eot,      /* EOT table                            */
+           dfa22_eof,      /* EOF table                            */
+           dfa22_min,      /* Minimum tokens for each state    */
+           dfa22_max,      /* Maximum tokens for each state    */
+           dfa22_accept,       /* Accept table                     */
+           dfa22_special,      /* Special transition states        */
+           dfa22_transitions   /* Table of transition tables       */
+
+       };          
+/* End of Cyclic DFA 22
+ * ---------------------
+ */ 
+/* =========================================================================
+ * End of DFA tables for the lexer
+ */ 
+
+/* =========================================================================
+ * Functions to match the lexer grammar defined tokens from the input stream
+ */
+
+//   Comes from: 7:7: ( 'type' )
+/** \brief Lexer rule generated by ANTLR3
+ *
+ * $ANTLR start T__34
+ *
+ * Looks to match the characters the constitute the token T__34
+ * from the attached input stream.
+ *
+ *
+ * \remark
+ *  - lexer->error == ANTLR3_TRUE if an exception was thrown.
+ */
+static ANTLR3_INLINE
+void mT__34(pSimanticsDataLexer ctx)
+{
+       ANTLR3_UINT32   _type;
+
+    _type          = T__34;
+       
+    
+    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:7:7: ( 'type' )
+    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:7:9: 'type'
+    {
+        MATCHS(lit_1); 
+        if  (HASEXCEPTION())
+        {
+            goto ruleT__34Ex;
+        }
+
+
+
+    }
+
+       LEXSTATE->type = _type;
+
+    // This is where rules clean up and exit
+    //
+    goto ruleT__34Ex; /* Prevent compiler warnings */
+    ruleT__34Ex: ;
+
+}
+// $ANTLR end T__34
+
+//   Comes from: 8:7: ( '=' )
+/** \brief Lexer rule generated by ANTLR3
+ *
+ * $ANTLR start T__35
+ *
+ * Looks to match the characters the constitute the token T__35
+ * from the attached input stream.
+ *
+ *
+ * \remark
+ *  - lexer->error == ANTLR3_TRUE if an exception was thrown.
+ */
+static ANTLR3_INLINE
+void mT__35(pSimanticsDataLexer ctx)
+{
+       ANTLR3_UINT32   _type;
+
+    _type          = T__35;
+       
+    
+    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:8:7: ( '=' )
+    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:8:9: '='
+    {
+        MATCHC('='); 
+        if  (HASEXCEPTION())
+        {
+            goto ruleT__35Ex;
+        }
+
+
+    }
+
+       LEXSTATE->type = _type;
+
+    // This is where rules clean up and exit
+    //
+    goto ruleT__35Ex; /* Prevent compiler warnings */
+    ruleT__35Ex: ;
+
+}
+// $ANTLR end T__35
+
+//   Comes from: 9:7: ( '|' )
+/** \brief Lexer rule generated by ANTLR3
+ *
+ * $ANTLR start T__36
+ *
+ * Looks to match the characters the constitute the token T__36
+ * from the attached input stream.
+ *
+ *
+ * \remark
+ *  - lexer->error == ANTLR3_TRUE if an exception was thrown.
+ */
+static ANTLR3_INLINE
+void mT__36(pSimanticsDataLexer ctx)
+{
+       ANTLR3_UINT32   _type;
+
+    _type          = T__36;
+       
+    
+    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:9:7: ( '|' )
+    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:9:9: '|'
+    {
+        MATCHC('|'); 
+        if  (HASEXCEPTION())
+        {
+            goto ruleT__36Ex;
+        }
+
+
+    }
+
+       LEXSTATE->type = _type;
+
+    // This is where rules clean up and exit
+    //
+    goto ruleT__36Ex; /* Prevent compiler warnings */
+    ruleT__36Ex: ;
+
+}
+// $ANTLR end T__36
+
+//   Comes from: 10:7: ( '[' )
+/** \brief Lexer rule generated by ANTLR3
+ *
+ * $ANTLR start T__37
+ *
+ * Looks to match the characters the constitute the token T__37
+ * from the attached input stream.
+ *
+ *
+ * \remark
+ *  - lexer->error == ANTLR3_TRUE if an exception was thrown.
+ */
+static ANTLR3_INLINE
+void mT__37(pSimanticsDataLexer ctx)
+{
+       ANTLR3_UINT32   _type;
+
+    _type          = T__37;
+       
+    
+    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:10:7: ( '[' )
+    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:10:9: '['
+    {
+        MATCHC('['); 
+        if  (HASEXCEPTION())
+        {
+            goto ruleT__37Ex;
+        }
+
+
+    }
+
+       LEXSTATE->type = _type;
+
+    // This is where rules clean up and exit
+    //
+    goto ruleT__37Ex; /* Prevent compiler warnings */
+    ruleT__37Ex: ;
+
+}
+// $ANTLR end T__37
+
+//   Comes from: 11:7: ( ']' )
+/** \brief Lexer rule generated by ANTLR3
+ *
+ * $ANTLR start T__38
+ *
+ * Looks to match the characters the constitute the token T__38
+ * from the attached input stream.
+ *
+ *
+ * \remark
+ *  - lexer->error == ANTLR3_TRUE if an exception was thrown.
+ */
+static ANTLR3_INLINE
+void mT__38(pSimanticsDataLexer ctx)
+{
+       ANTLR3_UINT32   _type;
+
+    _type          = T__38;
+       
+    
+    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:11:7: ( ']' )
+    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:11:9: ']'
+    {
+        MATCHC(']'); 
+        if  (HASEXCEPTION())
+        {
+            goto ruleT__38Ex;
+        }
+
+
+    }
+
+       LEXSTATE->type = _type;
+
+    // This is where rules clean up and exit
+    //
+    goto ruleT__38Ex; /* Prevent compiler warnings */
+    ruleT__38Ex: ;
+
+}
+// $ANTLR end T__38
+
+//   Comes from: 12:7: ( '..' )
+/** \brief Lexer rule generated by ANTLR3
+ *
+ * $ANTLR start T__39
+ *
+ * Looks to match the characters the constitute the token T__39
+ * from the attached input stream.
+ *
+ *
+ * \remark
+ *  - lexer->error == ANTLR3_TRUE if an exception was thrown.
+ */
+static ANTLR3_INLINE
+void mT__39(pSimanticsDataLexer ctx)
+{
+       ANTLR3_UINT32   _type;
+
+    _type          = T__39;
+       
+    
+    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:12:7: ( '..' )
+    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:12:9: '..'
+    {
+        MATCHS(lit_2); 
+        if  (HASEXCEPTION())
+        {
+            goto ruleT__39Ex;
+        }
+
+
+
+    }
+
+       LEXSTATE->type = _type;
+
+    // This is where rules clean up and exit
+    //
+    goto ruleT__39Ex; /* Prevent compiler warnings */
+    ruleT__39Ex: ;
+
+}
+// $ANTLR end T__39
+
+//   Comes from: 13:7: ( '(' )
+/** \brief Lexer rule generated by ANTLR3
+ *
+ * $ANTLR start T__40
+ *
+ * Looks to match the characters the constitute the token T__40
+ * from the attached input stream.
+ *
+ *
+ * \remark
+ *  - lexer->error == ANTLR3_TRUE if an exception was thrown.
+ */
+static ANTLR3_INLINE
+void mT__40(pSimanticsDataLexer ctx)
+{
+       ANTLR3_UINT32   _type;
+
+    _type          = T__40;
+       
+    
+    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:13:7: ( '(' )
+    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:13:9: '('
+    {
+        MATCHC('('); 
+        if  (HASEXCEPTION())
+        {
+            goto ruleT__40Ex;
+        }
+
+
+    }
+
+       LEXSTATE->type = _type;
+
+    // This is where rules clean up and exit
+    //
+    goto ruleT__40Ex; /* Prevent compiler warnings */
+    ruleT__40Ex: ;
+
+}
+// $ANTLR end T__40
+
+//   Comes from: 14:7: ( ',' )
+/** \brief Lexer rule generated by ANTLR3
+ *
+ * $ANTLR start T__41
+ *
+ * Looks to match the characters the constitute the token T__41
+ * from the attached input stream.
+ *
+ *
+ * \remark
+ *  - lexer->error == ANTLR3_TRUE if an exception was thrown.
+ */
+static ANTLR3_INLINE
+void mT__41(pSimanticsDataLexer ctx)
+{
+       ANTLR3_UINT32   _type;
+
+    _type          = T__41;
+       
+    
+    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:14:7: ( ',' )
+    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:14:9: ','
+    {
+        MATCHC(','); 
+        if  (HASEXCEPTION())
+        {
+            goto ruleT__41Ex;
+        }
+
+
+    }
+
+       LEXSTATE->type = _type;
+
+    // This is where rules clean up and exit
+    //
+    goto ruleT__41Ex; /* Prevent compiler warnings */
+    ruleT__41Ex: ;
+
+}
+// $ANTLR end T__41
+
+//   Comes from: 15:7: ( ')' )
+/** \brief Lexer rule generated by ANTLR3
+ *
+ * $ANTLR start T__42
+ *
+ * Looks to match the characters the constitute the token T__42
+ * from the attached input stream.
+ *
+ *
+ * \remark
+ *  - lexer->error == ANTLR3_TRUE if an exception was thrown.
+ */
+static ANTLR3_INLINE
+void mT__42(pSimanticsDataLexer ctx)
+{
+       ANTLR3_UINT32   _type;
+
+    _type          = T__42;
+       
+    
+    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:15:7: ( ')' )
+    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:15:9: ')'
+    {
+        MATCHC(')'); 
+        if  (HASEXCEPTION())
+        {
+            goto ruleT__42Ex;
+        }
+
+
+    }
+
+       LEXSTATE->type = _type;
+
+    // This is where rules clean up and exit
+    //
+    goto ruleT__42Ex; /* Prevent compiler warnings */
+    ruleT__42Ex: ;
+
+}
+// $ANTLR end T__42
+
+//   Comes from: 16:7: ( '{' )
+/** \brief Lexer rule generated by ANTLR3
+ *
+ * $ANTLR start T__43
+ *
+ * Looks to match the characters the constitute the token T__43
+ * from the attached input stream.
+ *
+ *
+ * \remark
+ *  - lexer->error == ANTLR3_TRUE if an exception was thrown.
+ */
+static ANTLR3_INLINE
+void mT__43(pSimanticsDataLexer ctx)
+{
+       ANTLR3_UINT32   _type;
+
+    _type          = T__43;
+       
+    
+    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:16:7: ( '{' )
+    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:16:9: '{'
+    {
+        MATCHC('{'); 
+        if  (HASEXCEPTION())
+        {
+            goto ruleT__43Ex;
+        }
+
+
+    }
+
+       LEXSTATE->type = _type;
+
+    // This is where rules clean up and exit
+    //
+    goto ruleT__43Ex; /* Prevent compiler warnings */
+    ruleT__43Ex: ;
+
+}
+// $ANTLR end T__43
+
+//   Comes from: 17:7: ( '}' )
+/** \brief Lexer rule generated by ANTLR3
+ *
+ * $ANTLR start T__44
+ *
+ * Looks to match the characters the constitute the token T__44
+ * from the attached input stream.
+ *
+ *
+ * \remark
+ *  - lexer->error == ANTLR3_TRUE if an exception was thrown.
+ */
+static ANTLR3_INLINE
+void mT__44(pSimanticsDataLexer ctx)
+{
+       ANTLR3_UINT32   _type;
+
+    _type          = T__44;
+       
+    
+    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:17:7: ( '}' )
+    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:17:9: '}'
+    {
+        MATCHC('}'); 
+        if  (HASEXCEPTION())
+        {
+            goto ruleT__44Ex;
+        }
+
+
+    }
+
+       LEXSTATE->type = _type;
+
+    // This is where rules clean up and exit
+    //
+    goto ruleT__44Ex; /* Prevent compiler warnings */
+    ruleT__44Ex: ;
+
+}
+// $ANTLR end T__44
+
+//   Comes from: 18:7: ( ':' )
+/** \brief Lexer rule generated by ANTLR3
+ *
+ * $ANTLR start T__45
+ *
+ * Looks to match the characters the constitute the token T__45
+ * from the attached input stream.
+ *
+ *
+ * \remark
+ *  - lexer->error == ANTLR3_TRUE if an exception was thrown.
+ */
+static ANTLR3_INLINE
+void mT__45(pSimanticsDataLexer ctx)
+{
+       ANTLR3_UINT32   _type;
+
+    _type          = T__45;
+       
+    
+    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:18:7: ( ':' )
+    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:18:9: ':'
+    {
+        MATCHC(':'); 
+        if  (HASEXCEPTION())
+        {
+            goto ruleT__45Ex;
+        }
+
+
+    }
+
+       LEXSTATE->type = _type;
+
+    // This is where rules clean up and exit
+    //
+    goto ruleT__45Ex; /* Prevent compiler warnings */
+    ruleT__45Ex: ;
+
+}
+// $ANTLR end T__45
+
+//   Comes from: 19:7: ( 'true' )
+/** \brief Lexer rule generated by ANTLR3
+ *
+ * $ANTLR start T__46
+ *
+ * Looks to match the characters the constitute the token T__46
+ * from the attached input stream.
+ *
+ *
+ * \remark
+ *  - lexer->error == ANTLR3_TRUE if an exception was thrown.
+ */
+static ANTLR3_INLINE
+void mT__46(pSimanticsDataLexer ctx)
+{
+       ANTLR3_UINT32   _type;
+
+    _type          = T__46;
+       
+    
+    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:19:7: ( 'true' )
+    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:19:9: 'true'
+    {
+        MATCHS(lit_3); 
+        if  (HASEXCEPTION())
+        {
+            goto ruleT__46Ex;
+        }
+
+
+
+    }
+
+       LEXSTATE->type = _type;
+
+    // This is where rules clean up and exit
+    //
+    goto ruleT__46Ex; /* Prevent compiler warnings */
+    ruleT__46Ex: ;
+
+}
+// $ANTLR end T__46
+
+//   Comes from: 20:7: ( 'false' )
+/** \brief Lexer rule generated by ANTLR3
+ *
+ * $ANTLR start T__47
+ *
+ * Looks to match the characters the constitute the token T__47
+ * from the attached input stream.
+ *
+ *
+ * \remark
+ *  - lexer->error == ANTLR3_TRUE if an exception was thrown.
+ */
+static ANTLR3_INLINE
+void mT__47(pSimanticsDataLexer ctx)
+{
+       ANTLR3_UINT32   _type;
+
+    _type          = T__47;
+       
+    
+    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:20:7: ( 'false' )
+    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:20:9: 'false'
+    {
+        MATCHS(lit_4); 
+        if  (HASEXCEPTION())
+        {
+            goto ruleT__47Ex;
+        }
+
+
+
+    }
+
+       LEXSTATE->type = _type;
+
+    // This is where rules clean up and exit
+    //
+    goto ruleT__47Ex; /* Prevent compiler warnings */
+    ruleT__47Ex: ;
+
+}
+// $ANTLR end T__47
+
+//   Comes from: 21:7: ( 'null' )
+/** \brief Lexer rule generated by ANTLR3
+ *
+ * $ANTLR start T__48
+ *
+ * Looks to match the characters the constitute the token T__48
+ * from the attached input stream.
+ *
+ *
+ * \remark
+ *  - lexer->error == ANTLR3_TRUE if an exception was thrown.
+ */
+static ANTLR3_INLINE
+void mT__48(pSimanticsDataLexer ctx)
+{
+       ANTLR3_UINT32   _type;
+
+    _type          = T__48;
+       
+    
+    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:21:7: ( 'null' )
+    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:21:9: 'null'
+    {
+        MATCHS(lit_5); 
+        if  (HASEXCEPTION())
+        {
+            goto ruleT__48Ex;
+        }
+
+
+
+    }
+
+       LEXSTATE->type = _type;
+
+    // This is where rules clean up and exit
+    //
+    goto ruleT__48Ex; /* Prevent compiler warnings */
+    ruleT__48Ex: ;
+
+}
+// $ANTLR end T__48
+
+//   Comes from: 22:7: ( 'map' )
+/** \brief Lexer rule generated by ANTLR3
+ *
+ * $ANTLR start T__49
+ *
+ * Looks to match the characters the constitute the token T__49
+ * from the attached input stream.
+ *
+ *
+ * \remark
+ *  - lexer->error == ANTLR3_TRUE if an exception was thrown.
+ */
+static ANTLR3_INLINE
+void mT__49(pSimanticsDataLexer ctx)
+{
+       ANTLR3_UINT32   _type;
+
+    _type          = T__49;
+       
+    
+    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:22:7: ( 'map' )
+    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:22:9: 'map'
+    {
+        MATCHS(lit_6); 
+        if  (HASEXCEPTION())
+        {
+            goto ruleT__49Ex;
+        }
+
+
+
+    }
+
+       LEXSTATE->type = _type;
+
+    // This is where rules clean up and exit
+    //
+    goto ruleT__49Ex; /* Prevent compiler warnings */
+    ruleT__49Ex: ;
+
+}
+// $ANTLR end T__49
+
+//   Comes from: 34:5: ( ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )* )
+/** \brief Lexer rule generated by ANTLR3
+ *
+ * $ANTLR start ID
+ *
+ * Looks to match the characters the constitute the token ID
+ * from the attached input stream.
+ *
+ *
+ * \remark
+ *  - lexer->error == ANTLR3_TRUE if an exception was thrown.
+ */
+static ANTLR3_INLINE
+void mID(pSimanticsDataLexer ctx)
+{
+       ANTLR3_UINT32   _type;
+
+    _type          = ID;
+       
+    
+    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:34:5: ( ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )* )
+    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:34:7: ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )*
+    {
+        if ( ((LA(1) >= 'A') && (LA(1) <= 'Z')) || LA(1) == '_' || ((LA(1) >= 'a') && (LA(1) <= 'z')) )
+        {
+            CONSUME();
+
+        }
+        else 
+        {
+            CONSTRUCTEX();
+            EXCEPTION->type         = ANTLR3_MISMATCHED_SET_EXCEPTION;
+            EXCEPTION->name         = (void *)ANTLR3_MISMATCHED_SET_NAME;
+
+            LRECOVER();    goto ruleIDEx;
+        }
+
+
+        // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:34:31: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )*
+
+        for (;;)
+        {
+            int alt1=2;
+            switch ( LA(1) ) 
+            {
+            case '0':
+            case '1':
+            case '2':
+            case '3':
+            case '4':
+            case '5':
+            case '6':
+            case '7':
+            case '8':
+            case '9':
+            case 'A':
+            case 'B':
+            case 'C':
+            case 'D':
+            case 'E':
+            case 'F':
+            case 'G':
+            case 'H':
+            case 'I':
+            case 'J':
+            case 'K':
+            case 'L':
+            case 'M':
+            case 'N':
+            case 'O':
+            case 'P':
+            case 'Q':
+            case 'R':
+            case 'S':
+            case 'T':
+            case 'U':
+            case 'V':
+            case 'W':
+            case 'X':
+            case 'Y':
+            case 'Z':
+            case '_':
+            case 'a':
+            case 'b':
+            case 'c':
+            case 'd':
+            case 'e':
+            case 'f':
+            case 'g':
+            case 'h':
+            case 'i':
+            case 'j':
+            case 'k':
+            case 'l':
+            case 'm':
+            case 'n':
+            case 'o':
+            case 'p':
+            case 'q':
+            case 'r':
+            case 's':
+            case 't':
+            case 'u':
+            case 'v':
+            case 'w':
+            case 'x':
+            case 'y':
+            case 'z':
+               {
+                       alt1=1;
+               }
+                break;
+
+            }
+
+            switch (alt1) 
+            {
+               case 1:
+                   // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:
+                   {
+                       if ( ((LA(1) >= '0') && (LA(1) <= '9')) || ((LA(1) >= 'A') && (LA(1) <= 'Z')) || LA(1) == '_' || ((LA(1) >= 'a') && (LA(1) <= 'z')) )
+                       {
+                           CONSUME();
+
+                       }
+                       else 
+                       {
+                           CONSTRUCTEX();
+                           EXCEPTION->type         = ANTLR3_MISMATCHED_SET_EXCEPTION;
+                           EXCEPTION->name         = (void *)ANTLR3_MISMATCHED_SET_NAME;
+
+                           LRECOVER();    goto ruleIDEx;
+                       }
+
+
+                   }
+                   break;
+
+               default:
+                   goto loop1; /* break out of the loop */
+                   break;
+            }
+        }
+        loop1: ; /* Jump out to here if this rule does not match */
+
+
+    }
+
+       LEXSTATE->type = _type;
+
+    // This is where rules clean up and exit
+    //
+    goto ruleIDEx; /* Prevent compiler warnings */
+    ruleIDEx: ;
+
+}
+// $ANTLR end ID
+
+//   Comes from: 37:5: ( ( '-' )? ( '0' .. '9' )+ )
+/** \brief Lexer rule generated by ANTLR3
+ *
+ * $ANTLR start INT
+ *
+ * Looks to match the characters the constitute the token INT
+ * from the attached input stream.
+ *
+ *
+ * \remark
+ *  - lexer->error == ANTLR3_TRUE if an exception was thrown.
+ */
+static ANTLR3_INLINE
+void mINT(pSimanticsDataLexer ctx)
+{
+       ANTLR3_UINT32   _type;
+
+    _type          = INT;
+       
+    
+    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:37:5: ( ( '-' )? ( '0' .. '9' )+ )
+    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:37:7: ( '-' )? ( '0' .. '9' )+
+    {
+
+        // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:37:7: ( '-' )?
+        {
+            int alt2=2;
+            switch ( LA(1) ) 
+            {
+                case '-':
+                       {
+                               alt2=1;
+                       }
+                    break;
+            }
+
+            switch (alt2) 
+            {
+               case 1:
+                   // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:37:7: '-'
+                   {
+                       MATCHC('-'); 
+                       if  (HASEXCEPTION())
+                       {
+                           goto ruleINTEx;
+                       }
+
+
+                   }
+                   break;
+
+            }
+        }
+        // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:37:12: ( '0' .. '9' )+
+        {
+            int cnt3=0;
+
+            for (;;)
+            {
+                int alt3=2;
+               switch ( LA(1) ) 
+               {
+               case '0':
+               case '1':
+               case '2':
+               case '3':
+               case '4':
+               case '5':
+               case '6':
+               case '7':
+               case '8':
+               case '9':
+                       {
+                               alt3=1;
+                       }
+                   break;
+
+               }
+
+               switch (alt3) 
+               {
+                   case 1:
+                       // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:37:12: '0' .. '9'
+                       {
+                           MATCHRANGE('0', '9'); 
+                           if  (HASEXCEPTION())
+                           {
+                               goto ruleINTEx;
+                           }
+
+
+                       }
+                       break;
+
+                   default:
+                   
+                       if ( cnt3 >= 1 )
+                       {
+                           goto loop3;
+                       }
+                       /* mismatchedSetEx()
+                        */
+                       CONSTRUCTEX();
+                       EXCEPTION->type = ANTLR3_EARLY_EXIT_EXCEPTION;
+                       EXCEPTION->name = (void *)ANTLR3_EARLY_EXIT_NAME;
+
+
+                       goto ruleINTEx;
+               }
+               cnt3++;
+            }
+            loop3: ;   /* Jump to here if this rule does not match */
+        }
+
+    }
+
+       LEXSTATE->type = _type;
+
+    // This is where rules clean up and exit
+    //
+    goto ruleINTEx; /* Prevent compiler warnings */
+    ruleINTEx: ;
+
+}
+// $ANTLR end INT
+
+//   Comes from: 41:5: ( ( '-' )? ( '0' .. '9' )+ '.' ( '0' .. '9' )+ ( EXPONENT )? | ( '-' )? ( '0' .. '9' )+ EXPONENT )
+/** \brief Lexer rule generated by ANTLR3
+ *
+ * $ANTLR start FLOAT
+ *
+ * Looks to match the characters the constitute the token FLOAT
+ * from the attached input stream.
+ *
+ *
+ * \remark
+ *  - lexer->error == ANTLR3_TRUE if an exception was thrown.
+ */
+static ANTLR3_INLINE
+void mFLOAT(pSimanticsDataLexer ctx)
+{
+       ANTLR3_UINT32   _type;
+
+    _type          = FLOAT;
+       
+    
+    {
+        //  C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:41:5: ( ( '-' )? ( '0' .. '9' )+ '.' ( '0' .. '9' )+ ( EXPONENT )? | ( '-' )? ( '0' .. '9' )+ EXPONENT )
+        
+        ANTLR3_UINT32 alt10;
+
+        alt10=2;
+
+        alt10 = cdfa10.predict(ctx, RECOGNIZER, ISTREAM, &cdfa10);
+        if  (HASEXCEPTION())
+        {
+            goto ruleFLOATEx;
+        }
+
+        switch (alt10) 
+        {
+       case 1:
+           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:41:9: ( '-' )? ( '0' .. '9' )+ '.' ( '0' .. '9' )+ ( EXPONENT )?
+           {
+
+               // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:41:9: ( '-' )?
+               {
+                   int alt4=2;
+                   switch ( LA(1) ) 
+                   {
+                       case '-':
+                               {
+                                       alt4=1;
+                               }
+                           break;
+                   }
+
+                   switch (alt4) 
+                   {
+                       case 1:
+                           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:41:9: '-'
+                           {
+                               MATCHC('-'); 
+                               if  (HASEXCEPTION())
+                               {
+                                   goto ruleFLOATEx;
+                               }
+
+
+                           }
+                           break;
+
+                   }
+               }
+               // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:41:14: ( '0' .. '9' )+
+               {
+                   int cnt5=0;
+
+                   for (;;)
+                   {
+                       int alt5=2;
+                       switch ( LA(1) ) 
+                       {
+                       case '0':
+                       case '1':
+                       case '2':
+                       case '3':
+                       case '4':
+                       case '5':
+                       case '6':
+                       case '7':
+                       case '8':
+                       case '9':
+                               {
+                                       alt5=1;
+                               }
+                           break;
+
+                       }
+
+                       switch (alt5) 
+                       {
+                           case 1:
+                               // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:41:15: '0' .. '9'
+                               {
+                                   MATCHRANGE('0', '9'); 
+                                   if  (HASEXCEPTION())
+                                   {
+                                       goto ruleFLOATEx;
+                                   }
+
+
+                               }
+                               break;
+
+                           default:
+                           
+                               if ( cnt5 >= 1 )
+                               {
+                                   goto loop5;
+                               }
+                               /* mismatchedSetEx()
+                                */
+                               CONSTRUCTEX();
+                               EXCEPTION->type = ANTLR3_EARLY_EXIT_EXCEPTION;
+                               EXCEPTION->name = (void *)ANTLR3_EARLY_EXIT_NAME;
+
+
+                               goto ruleFLOATEx;
+                       }
+                       cnt5++;
+                   }
+                   loop5: ;    /* Jump to here if this rule does not match */
+               }
+               MATCHC('.'); 
+               if  (HASEXCEPTION())
+               {
+                   goto ruleFLOATEx;
+               }
+
+               // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:41:30: ( '0' .. '9' )+
+               {
+                   int cnt6=0;
+
+                   for (;;)
+                   {
+                       int alt6=2;
+                       switch ( LA(1) ) 
+                       {
+                       case '0':
+                       case '1':
+                       case '2':
+                       case '3':
+                       case '4':
+                       case '5':
+                       case '6':
+                       case '7':
+                       case '8':
+                       case '9':
+                               {
+                                       alt6=1;
+                               }
+                           break;
+
+                       }
+
+                       switch (alt6) 
+                       {
+                           case 1:
+                               // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:41:31: '0' .. '9'
+                               {
+                                   MATCHRANGE('0', '9'); 
+                                   if  (HASEXCEPTION())
+                                   {
+                                       goto ruleFLOATEx;
+                                   }
+
+
+                               }
+                               break;
+
+                           default:
+                           
+                               if ( cnt6 >= 1 )
+                               {
+                                   goto loop6;
+                               }
+                               /* mismatchedSetEx()
+                                */
+                               CONSTRUCTEX();
+                               EXCEPTION->type = ANTLR3_EARLY_EXIT_EXCEPTION;
+                               EXCEPTION->name = (void *)ANTLR3_EARLY_EXIT_NAME;
+
+
+                               goto ruleFLOATEx;
+                       }
+                       cnt6++;
+                   }
+                   loop6: ;    /* Jump to here if this rule does not match */
+               }
+
+               // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:41:42: ( EXPONENT )?
+               {
+                   int alt7=2;
+                   switch ( LA(1) ) 
+                   {
+                       case 'E':
+                       case 'e':
+                               {
+                                       alt7=1;
+                               }
+                           break;
+                   }
+
+                   switch (alt7) 
+                   {
+                       case 1:
+                           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:41:42: EXPONENT
+                           {
+                               /* 41:42: EXPONENT */
+                               mEXPONENT(ctx ); 
+                               if  (HASEXCEPTION())
+                               {
+                                   goto ruleFLOATEx;
+                               }
+
+
+                           }
+                           break;
+
+                   }
+               }
+
+           }
+           break;
+       case 2:
+           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:43:9: ( '-' )? ( '0' .. '9' )+ EXPONENT
+           {
+
+               // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:43:9: ( '-' )?
+               {
+                   int alt8=2;
+                   switch ( LA(1) ) 
+                   {
+                       case '-':
+                               {
+                                       alt8=1;
+                               }
+                           break;
+                   }
+
+                   switch (alt8) 
+                   {
+                       case 1:
+                           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:43:9: '-'
+                           {
+                               MATCHC('-'); 
+                               if  (HASEXCEPTION())
+                               {
+                                   goto ruleFLOATEx;
+                               }
+
+
+                           }
+                           break;
+
+                   }
+               }
+               // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:43:14: ( '0' .. '9' )+
+               {
+                   int cnt9=0;
+
+                   for (;;)
+                   {
+                       int alt9=2;
+                       switch ( LA(1) ) 
+                       {
+                       case '0':
+                       case '1':
+                       case '2':
+                       case '3':
+                       case '4':
+                       case '5':
+                       case '6':
+                       case '7':
+                       case '8':
+                       case '9':
+                               {
+                                       alt9=1;
+                               }
+                           break;
+
+                       }
+
+                       switch (alt9) 
+                       {
+                           case 1:
+                               // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:43:15: '0' .. '9'
+                               {
+                                   MATCHRANGE('0', '9'); 
+                                   if  (HASEXCEPTION())
+                                   {
+                                       goto ruleFLOATEx;
+                                   }
+
+
+                               }
+                               break;
+
+                           default:
+                           
+                               if ( cnt9 >= 1 )
+                               {
+                                   goto loop9;
+                               }
+                               /* mismatchedSetEx()
+                                */
+                               CONSTRUCTEX();
+                               EXCEPTION->type = ANTLR3_EARLY_EXIT_EXCEPTION;
+                               EXCEPTION->name = (void *)ANTLR3_EARLY_EXIT_NAME;
+
+
+                               goto ruleFLOATEx;
+                       }
+                       cnt9++;
+                   }
+                   loop9: ;    /* Jump to here if this rule does not match */
+               }
+               /* 43:9: ( '-' )? ( '0' .. '9' )+ EXPONENT */
+               mEXPONENT(ctx ); 
+               if  (HASEXCEPTION())
+               {
+                   goto ruleFLOATEx;
+               }
+
+
+           }
+           break;
+
+        }
+    }
+       LEXSTATE->type = _type;
+
+    // This is where rules clean up and exit
+    //
+    goto ruleFLOATEx; /* Prevent compiler warnings */
+    ruleFLOATEx: ;
+
+}
+// $ANTLR end FLOAT
+
+//   Comes from: 47:5: ( '//' (~ ( '\\n' | '\\r' ) )* ( '\\r' )? '\\n' | '/*' ( options {greedy=false; } : . )* '*/' )
+/** \brief Lexer rule generated by ANTLR3
+ *
+ * $ANTLR start COMMENT
+ *
+ * Looks to match the characters the constitute the token COMMENT
+ * from the attached input stream.
+ *
+ *
+ * \remark
+ *  - lexer->error == ANTLR3_TRUE if an exception was thrown.
+ */
+static ANTLR3_INLINE
+void mCOMMENT(pSimanticsDataLexer ctx)
+{
+       ANTLR3_UINT32   _type;
+
+    _type          = COMMENT;
+       
+    
+    {
+        //  C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:47:5: ( '//' (~ ( '\\n' | '\\r' ) )* ( '\\r' )? '\\n' | '/*' ( options {greedy=false; } : . )* '*/' )
+        
+        ANTLR3_UINT32 alt14;
+
+        alt14=2;
+
+        switch ( LA(1) ) 
+        {
+        case '/':
+               {
+                       switch ( LA(2) ) 
+                       {
+                       case '/':
+                               {
+                                       alt14=1;
+                               }
+                           break;
+                       case '*':
+                               {
+                                       alt14=2;
+                               }
+                           break;
+
+                       default:
+                           CONSTRUCTEX();
+                           EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
+                           EXCEPTION->message      = (void *)"";
+                           EXCEPTION->decisionNum  = 14;
+                           EXCEPTION->state        = 1;
+
+
+                           goto ruleCOMMENTEx;
+                       }
+
+               }
+            break;
+
+        default:
+            CONSTRUCTEX();
+            EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
+            EXCEPTION->message      = (void *)"";
+            EXCEPTION->decisionNum  = 14;
+            EXCEPTION->state        = 0;
+
+
+            goto ruleCOMMENTEx;
+        }
+
+        switch (alt14) 
+        {
+       case 1:
+           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:47:9: '//' (~ ( '\\n' | '\\r' ) )* ( '\\r' )? '\\n'
+           {
+               MATCHS(lit_7); 
+               if  (HASEXCEPTION())
+               {
+                   goto ruleCOMMENTEx;
+               }
+
+
+
+               // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:47:14: (~ ( '\\n' | '\\r' ) )*
+
+               for (;;)
+               {
+                   int alt11=2;
+                   {
+                      /* dfaLoopbackState(k,edges,eotPredictsAlt,description,stateNumber,semPredState)
+                       */
+                       int LA11_0 = LA(1);
+                       if ( (((LA11_0 >= 0x0000) && (LA11_0 <= '\t')) || ((LA11_0 >= 0x000B) && (LA11_0 <= '\f')) || ((LA11_0 >= 0x000E) && (LA11_0 <= 0xFFFF))) ) 
+                       {
+                           alt11=1;
+                       }
+
+                   }
+                   switch (alt11) 
+                   {
+                       case 1:
+                           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:47:14: ~ ( '\\n' | '\\r' )
+                           {
+                               if ( ((LA(1) >= 0x0000) && (LA(1) <= '\t')) || ((LA(1) >= 0x000B) && (LA(1) <= '\f')) || ((LA(1) >= 0x000E) && (LA(1) <= 0xFFFF)) )
+                               {
+                                   CONSUME();
+
+                               }
+                               else 
+                               {
+                                   CONSTRUCTEX();
+                                   EXCEPTION->type         = ANTLR3_MISMATCHED_SET_EXCEPTION;
+                                   EXCEPTION->name         = (void *)ANTLR3_MISMATCHED_SET_NAME;
+
+                                   LRECOVER();    goto ruleCOMMENTEx;
+                               }
+
+
+                           }
+                           break;
+
+                       default:
+                           goto loop11;        /* break out of the loop */
+                           break;
+                   }
+               }
+               loop11: ; /* Jump out to here if this rule does not match */
+
+
+               // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:47:28: ( '\\r' )?
+               {
+                   int alt12=2;
+                   switch ( LA(1) ) 
+                   {
+                       case '\r':
+                               {
+                                       alt12=1;
+                               }
+                           break;
+                   }
+
+                   switch (alt12) 
+                   {
+                       case 1:
+                           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:47:28: '\\r'
+                           {
+                               MATCHC('\r'); 
+                               if  (HASEXCEPTION())
+                               {
+                                   goto ruleCOMMENTEx;
+                               }
+
+
+                           }
+                           break;
+
+                   }
+               }
+               MATCHC('\n'); 
+               if  (HASEXCEPTION())
+               {
+                   goto ruleCOMMENTEx;
+               }
+
+               {
+                   LEXSTATE->channel=HIDDEN;
+               }
+
+           }
+           break;
+       case 2:
+           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:48:9: '/*' ( options {greedy=false; } : . )* '*/'
+           {
+               MATCHS(lit_8); 
+               if  (HASEXCEPTION())
+               {
+                   goto ruleCOMMENTEx;
+               }
+
+
+
+               // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:48:14: ( options {greedy=false; } : . )*
+
+               for (;;)
+               {
+                   int alt13=2;
+                   {
+                      /* dfaLoopbackState(k,edges,eotPredictsAlt,description,stateNumber,semPredState)
+                       */
+                       int LA13_0 = LA(1);
+                       if ( (LA13_0 == '*') ) 
+                       {
+                           {
+                              /* dfaLoopbackState(k,edges,eotPredictsAlt,description,stateNumber,semPredState)
+                               */
+                               int LA13_1 = LA(2);
+                               if ( (LA13_1 == '/') ) 
+                               {
+                                   alt13=2;
+                               }
+                               else if ( (((LA13_1 >= 0x0000) && (LA13_1 <= '.')) || ((LA13_1 >= '0') && (LA13_1 <= 0xFFFF))) ) 
+                               {
+                                   alt13=1;
+                               }
+
+                           }
+                       }
+                       else if ( (((LA13_0 >= 0x0000) && (LA13_0 <= ')')) || ((LA13_0 >= '+') && (LA13_0 <= 0xFFFF))) ) 
+                       {
+                           alt13=1;
+                       }
+
+                   }
+                   switch (alt13) 
+                   {
+                       case 1:
+                           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:48:42: .
+                           {
+                               MATCHANY(); 
+                               if  (HASEXCEPTION())
+                               {
+                                   goto ruleCOMMENTEx;
+                               }
+
+
+                           }
+                           break;
+
+                       default:
+                           goto loop13;        /* break out of the loop */
+                           break;
+                   }
+               }
+               loop13: ; /* Jump out to here if this rule does not match */
+
+               MATCHS(lit_9); 
+               if  (HASEXCEPTION())
+               {
+                   goto ruleCOMMENTEx;
+               }
+
+
+               {
+                   LEXSTATE->channel=HIDDEN;
+               }
+
+           }
+           break;
+
+        }
+    }
+       LEXSTATE->type = _type;
+
+    // This is where rules clean up and exit
+    //
+    goto ruleCOMMENTEx; /* Prevent compiler warnings */
+    ruleCOMMENTEx: ;
+
+}
+// $ANTLR end COMMENT
+
+//   Comes from: 51:5: ( ( ' ' | '\\t' | '\\r' | '\\n' ) )
+/** \brief Lexer rule generated by ANTLR3
+ *
+ * $ANTLR start WS
+ *
+ * Looks to match the characters the constitute the token WS
+ * from the attached input stream.
+ *
+ *
+ * \remark
+ *  - lexer->error == ANTLR3_TRUE if an exception was thrown.
+ */
+static ANTLR3_INLINE
+void mWS(pSimanticsDataLexer ctx)
+{
+       ANTLR3_UINT32   _type;
+
+    _type          = WS;
+       
+    
+    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:51:5: ( ( ' ' | '\\t' | '\\r' | '\\n' ) )
+    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:51:9: ( ' ' | '\\t' | '\\r' | '\\n' )
+    {
+        if ( ((LA(1) >= '\t') && (LA(1) <= '\n')) || LA(1) == '\r' || LA(1) == ' ' )
+        {
+            CONSUME();
+
+        }
+        else 
+        {
+            CONSTRUCTEX();
+            EXCEPTION->type         = ANTLR3_MISMATCHED_SET_EXCEPTION;
+            EXCEPTION->name         = (void *)ANTLR3_MISMATCHED_SET_NAME;
+
+            LRECOVER();    goto ruleWSEx;
+        }
+
+        {
+            LEXSTATE->channel=HIDDEN;
+        }
+
+    }
+
+       LEXSTATE->type = _type;
+
+    // This is where rules clean up and exit
+    //
+    goto ruleWSEx; /* Prevent compiler warnings */
+    ruleWSEx: ;
+
+}
+// $ANTLR end WS
+
+//   Comes from: 59:5: ( '\"' ( ESC_SEQ | ~ ( '\\\\' | '\"' ) )* '\"' | '\"\"\"' (~ ( '\"' ) | '\"' ~ ( '\"' ) | '\"\"' ~ ( '\"' ) )* '\"\"\"' )
+/** \brief Lexer rule generated by ANTLR3
+ *
+ * $ANTLR start STRING
+ *
+ * Looks to match the characters the constitute the token STRING
+ * from the attached input stream.
+ *
+ *
+ * \remark
+ *  - lexer->error == ANTLR3_TRUE if an exception was thrown.
+ */
+static ANTLR3_INLINE
+void mSTRING(pSimanticsDataLexer ctx)
+{
+       ANTLR3_UINT32   _type;
+
+    _type          = STRING;
+       
+    
+    {
+        //  C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:59:5: ( '\"' ( ESC_SEQ | ~ ( '\\\\' | '\"' ) )* '\"' | '\"\"\"' (~ ( '\"' ) | '\"' ~ ( '\"' ) | '\"\"' ~ ( '\"' ) )* '\"\"\"' )
+        
+        ANTLR3_UINT32 alt17;
+
+        alt17=2;
+
+        switch ( LA(1) ) 
+        {
+        case '"':
+               {
+
+                       {
+                           int LA17_1 = LA(2);
+                           if ( (LA17_1 == '"') ) 
+                           {
+                               switch ( LA(3) ) 
+                               {
+                               case '"':
+                                       {
+                                               alt17=2;
+                                       }
+                                   break;
+
+                               default:
+                                   alt17=1;}
+
+                           }
+                           else if ( (((LA17_1 >= 0x0000) && (LA17_1 <= '!')) || ((LA17_1 >= '#') && (LA17_1 <= 0xFFFF))) ) 
+                           {
+                               alt17=1;
+                           }
+                           else 
+                           {
+                           
+                               CONSTRUCTEX();
+                               EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
+                               EXCEPTION->message      = (void *)"";
+                               EXCEPTION->decisionNum  = 17;
+                               EXCEPTION->state        = 1;
+
+
+                               goto ruleSTRINGEx;
+                           }
+                       }
+               }
+            break;
+
+        default:
+            CONSTRUCTEX();
+            EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
+            EXCEPTION->message      = (void *)"";
+            EXCEPTION->decisionNum  = 17;
+            EXCEPTION->state        = 0;
+
+
+            goto ruleSTRINGEx;
+        }
+
+        switch (alt17) 
+        {
+       case 1:
+           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:59:8: '\"' ( ESC_SEQ | ~ ( '\\\\' | '\"' ) )* '\"'
+           {
+               MATCHC('"'); 
+               if  (HASEXCEPTION())
+               {
+                   goto ruleSTRINGEx;
+               }
+
+
+               // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:59:12: ( ESC_SEQ | ~ ( '\\\\' | '\"' ) )*
+
+               for (;;)
+               {
+                   int alt15=3;
+                   {
+                      /* dfaLoopbackState(k,edges,eotPredictsAlt,description,stateNumber,semPredState)
+                       */
+                       int LA15_0 = LA(1);
+                       if ( (LA15_0 == '\\') ) 
+                       {
+                           alt15=1;
+                       }
+                       else if ( (((LA15_0 >= 0x0000) && (LA15_0 <= '!')) || ((LA15_0 >= '#') && (LA15_0 <= '[')) || ((LA15_0 >= ']') && (LA15_0 <= 0xFFFF))) ) 
+                       {
+                           alt15=2;
+                       }
+
+                   }
+                   switch (alt15) 
+                   {
+                       case 1:
+                           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:59:14: ESC_SEQ
+                           {
+                               /* 59:14: ESC_SEQ */
+                               mESC_SEQ(ctx ); 
+                               if  (HASEXCEPTION())
+                               {
+                                   goto ruleSTRINGEx;
+                               }
+
+
+                           }
+                           break;
+                       case 2:
+                           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:59:24: ~ ( '\\\\' | '\"' )
+                           {
+                               if ( ((LA(1) >= 0x0000) && (LA(1) <= '!')) || ((LA(1) >= '#') && (LA(1) <= '[')) || ((LA(1) >= ']') && (LA(1) <= 0xFFFF)) )
+                               {
+                                   CONSUME();
+
+                               }
+                               else 
+                               {
+                                   CONSTRUCTEX();
+                                   EXCEPTION->type         = ANTLR3_MISMATCHED_SET_EXCEPTION;
+                                   EXCEPTION->name         = (void *)ANTLR3_MISMATCHED_SET_NAME;
+
+                                   LRECOVER();    goto ruleSTRINGEx;
+                               }
+
+
+                           }
+                           break;
+
+                       default:
+                           goto loop15;        /* break out of the loop */
+                           break;
+                   }
+               }
+               loop15: ; /* Jump out to here if this rule does not match */
+
+               MATCHC('"'); 
+               if  (HASEXCEPTION())
+               {
+                   goto ruleSTRINGEx;
+               }
+
+
+           }
+           break;
+       case 2:
+           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:60:8: '\"\"\"' (~ ( '\"' ) | '\"' ~ ( '\"' ) | '\"\"' ~ ( '\"' ) )* '\"\"\"'
+           {
+               MATCHS(lit_10); 
+               if  (HASEXCEPTION())
+               {
+                   goto ruleSTRINGEx;
+               }
+
+
+
+               // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:60:14: (~ ( '\"' ) | '\"' ~ ( '\"' ) | '\"\"' ~ ( '\"' ) )*
+
+               for (;;)
+               {
+                   int alt16=4;
+                   {
+                      /* dfaLoopbackState(k,edges,eotPredictsAlt,description,stateNumber,semPredState)
+                       */
+                       int LA16_0 = LA(1);
+                       if ( (LA16_0 == '"') ) 
+                       {
+                           {
+                              /* dfaLoopbackState(k,edges,eotPredictsAlt,description,stateNumber,semPredState)
+                               */
+                               int LA16_1 = LA(2);
+                               if ( (LA16_1 == '"') ) 
+                               {
+                                   {
+                                      /* dfaLoopbackState(k,edges,eotPredictsAlt,description,stateNumber,semPredState)
+                                       */
+                                       int LA16_3 = LA(3);
+                                       if ( (((LA16_3 >= 0x0000) && (LA16_3 <= '!')) || ((LA16_3 >= '#') && (LA16_3 <= 0xFFFF))) ) 
+                                       {
+                                           alt16=3;
+                                       }
+
+                                   }
+                               }
+                               else if ( (((LA16_1 >= 0x0000) && (LA16_1 <= '!')) || ((LA16_1 >= '#') && (LA16_1 <= 0xFFFF))) ) 
+                               {
+                                   alt16=2;
+                               }
+
+                           }
+                       }
+                       else if ( (((LA16_0 >= 0x0000) && (LA16_0 <= '!')) || ((LA16_0 >= '#') && (LA16_0 <= 0xFFFF))) ) 
+                       {
+                           alt16=1;
+                       }
+
+                   }
+                   switch (alt16) 
+                   {
+                       case 1:
+                           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:60:16: ~ ( '\"' )
+                           {
+                               if ( ((LA(1) >= 0x0000) && (LA(1) <= '!')) || ((LA(1) >= '#') && (LA(1) <= 0xFFFF)) )
+                               {
+                                   CONSUME();
+
+                               }
+                               else 
+                               {
+                                   CONSTRUCTEX();
+                                   EXCEPTION->type         = ANTLR3_MISMATCHED_SET_EXCEPTION;
+                                   EXCEPTION->name         = (void *)ANTLR3_MISMATCHED_SET_NAME;
+
+                                   LRECOVER();    goto ruleSTRINGEx;
+                               }
+
+
+                           }
+                           break;
+                       case 2:
+                           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:60:25: '\"' ~ ( '\"' )
+                           {
+                               MATCHC('"'); 
+                               if  (HASEXCEPTION())
+                               {
+                                   goto ruleSTRINGEx;
+                               }
+
+                               if ( ((LA(1) >= 0x0000) && (LA(1) <= '!')) || ((LA(1) >= '#') && (LA(1) <= 0xFFFF)) )
+                               {
+                                   CONSUME();
+
+                               }
+                               else 
+                               {
+                                   CONSTRUCTEX();
+                                   EXCEPTION->type         = ANTLR3_MISMATCHED_SET_EXCEPTION;
+                                   EXCEPTION->name         = (void *)ANTLR3_MISMATCHED_SET_NAME;
+
+                                   LRECOVER();    goto ruleSTRINGEx;
+                               }
+
+
+                           }
+                           break;
+                       case 3:
+                           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:60:38: '\"\"' ~ ( '\"' )
+                           {
+                               MATCHS(lit_11); 
+                               if  (HASEXCEPTION())
+                               {
+                                   goto ruleSTRINGEx;
+                               }
+
+
+                               if ( ((LA(1) >= 0x0000) && (LA(1) <= '!')) || ((LA(1) >= '#') && (LA(1) <= 0xFFFF)) )
+                               {
+                                   CONSUME();
+
+                               }
+                               else 
+                               {
+                                   CONSTRUCTEX();
+                                   EXCEPTION->type         = ANTLR3_MISMATCHED_SET_EXCEPTION;
+                                   EXCEPTION->name         = (void *)ANTLR3_MISMATCHED_SET_NAME;
+
+                                   LRECOVER();    goto ruleSTRINGEx;
+                               }
+
+
+                           }
+                           break;
+
+                       default:
+                           goto loop16;        /* break out of the loop */
+                           break;
+                   }
+               }
+               loop16: ; /* Jump out to here if this rule does not match */
+
+               MATCHS(lit_10); 
+               if  (HASEXCEPTION())
+               {
+                   goto ruleSTRINGEx;
+               }
+
+
+
+           }
+           break;
+
+        }
+    }
+       LEXSTATE->type = _type;
+
+    // This is where rules clean up and exit
+    //
+    goto ruleSTRINGEx; /* Prevent compiler warnings */
+    ruleSTRINGEx: ;
+
+}
+// $ANTLR end STRING
+
+//   Comes from: 64:10: ( ( 'e' | 'E' ) ( '+' | '-' )? ( '0' .. '9' )+ )
+/** \brief Lexer rule generated by ANTLR3
+ *
+ * $ANTLR start EXPONENT
+ *
+ * Looks to match the characters the constitute the token EXPONENT
+ * from the attached input stream.
+ *
+ *
+ * \remark
+ *  - lexer->error == ANTLR3_TRUE if an exception was thrown.
+ */
+static ANTLR3_INLINE
+void mEXPONENT(pSimanticsDataLexer ctx)
+{
+       ANTLR3_UINT32   _type;
+
+        
+    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:64:10: ( ( 'e' | 'E' ) ( '+' | '-' )? ( '0' .. '9' )+ )
+    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:64:12: ( 'e' | 'E' ) ( '+' | '-' )? ( '0' .. '9' )+
+    {
+        if ( LA(1) == 'E' || LA(1) == 'e' )
+        {
+            CONSUME();
+
+        }
+        else 
+        {
+            CONSTRUCTEX();
+            EXCEPTION->type         = ANTLR3_MISMATCHED_SET_EXCEPTION;
+            EXCEPTION->name         = (void *)ANTLR3_MISMATCHED_SET_NAME;
+
+            LRECOVER();    goto ruleEXPONENTEx;
+        }
+
+
+        // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:64:22: ( '+' | '-' )?
+        {
+            int alt18=2;
+            switch ( LA(1) ) 
+            {
+                case '+':
+                case '-':
+                       {
+                               alt18=1;
+                       }
+                    break;
+            }
+
+            switch (alt18) 
+            {
+               case 1:
+                   // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:
+                   {
+                       if ( LA(1) == '+' || LA(1) == '-' )
+                       {
+                           CONSUME();
+
+                       }
+                       else 
+                       {
+                           CONSTRUCTEX();
+                           EXCEPTION->type         = ANTLR3_MISMATCHED_SET_EXCEPTION;
+                           EXCEPTION->name         = (void *)ANTLR3_MISMATCHED_SET_NAME;
+
+                           LRECOVER();    goto ruleEXPONENTEx;
+                       }
+
+
+                   }
+                   break;
+
+            }
+        }
+        // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:64:33: ( '0' .. '9' )+
+        {
+            int cnt19=0;
+
+            for (;;)
+            {
+                int alt19=2;
+               switch ( LA(1) ) 
+               {
+               case '0':
+               case '1':
+               case '2':
+               case '3':
+               case '4':
+               case '5':
+               case '6':
+               case '7':
+               case '8':
+               case '9':
+                       {
+                               alt19=1;
+                       }
+                   break;
+
+               }
+
+               switch (alt19) 
+               {
+                   case 1:
+                       // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:64:34: '0' .. '9'
+                       {
+                           MATCHRANGE('0', '9'); 
+                           if  (HASEXCEPTION())
+                           {
+                               goto ruleEXPONENTEx;
+                           }
+
+
+                       }
+                       break;
+
+                   default:
+                   
+                       if ( cnt19 >= 1 )
+                       {
+                           goto loop19;
+                       }
+                       /* mismatchedSetEx()
+                        */
+                       CONSTRUCTEX();
+                       EXCEPTION->type = ANTLR3_EARLY_EXIT_EXCEPTION;
+                       EXCEPTION->name = (void *)ANTLR3_EARLY_EXIT_NAME;
+
+
+                       goto ruleEXPONENTEx;
+               }
+               cnt19++;
+            }
+            loop19: ;  /* Jump to here if this rule does not match */
+        }
+
+    }
+
+
+
+    // This is where rules clean up and exit
+    //
+    goto ruleEXPONENTEx; /* Prevent compiler warnings */
+    ruleEXPONENTEx: ;
+
+}
+// $ANTLR end EXPONENT
+
+//   Comes from: 67:11: ( ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) )
+/** \brief Lexer rule generated by ANTLR3
+ *
+ * $ANTLR start HEX_DIGIT
+ *
+ * Looks to match the characters the constitute the token HEX_DIGIT
+ * from the attached input stream.
+ *
+ *
+ * \remark
+ *  - lexer->error == ANTLR3_TRUE if an exception was thrown.
+ */
+static ANTLR3_INLINE
+void mHEX_DIGIT(pSimanticsDataLexer ctx)
+{
+       ANTLR3_UINT32   _type;
+
+        
+    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:67:11: ( ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) )
+    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:67:13: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )
+    {
+        if ( ((LA(1) >= '0') && (LA(1) <= '9')) || ((LA(1) >= 'A') && (LA(1) <= 'F')) || ((LA(1) >= 'a') && (LA(1) <= 'f')) )
+        {
+            CONSUME();
+
+        }
+        else 
+        {
+            CONSTRUCTEX();
+            EXCEPTION->type         = ANTLR3_MISMATCHED_SET_EXCEPTION;
+            EXCEPTION->name         = (void *)ANTLR3_MISMATCHED_SET_NAME;
+
+            LRECOVER();    goto ruleHEX_DIGITEx;
+        }
+
+
+    }
+
+
+
+    // This is where rules clean up and exit
+    //
+    goto ruleHEX_DIGITEx; /* Prevent compiler warnings */
+    ruleHEX_DIGITEx: ;
+
+}
+// $ANTLR end HEX_DIGIT
+
+//   Comes from: 71:5: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | UNICODE_ESC | OCTAL_ESC )
+/** \brief Lexer rule generated by ANTLR3
+ *
+ * $ANTLR start ESC_SEQ
+ *
+ * Looks to match the characters the constitute the token ESC_SEQ
+ * from the attached input stream.
+ *
+ *
+ * \remark
+ *  - lexer->error == ANTLR3_TRUE if an exception was thrown.
+ */
+static ANTLR3_INLINE
+void mESC_SEQ(pSimanticsDataLexer ctx)
+{
+       ANTLR3_UINT32   _type;
+
+        
+    {
+        //  C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:71:5: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | UNICODE_ESC | OCTAL_ESC )
+        
+        ANTLR3_UINT32 alt20;
+
+        alt20=3;
+
+        switch ( LA(1) ) 
+        {
+        case '\\':
+               {
+                       switch ( LA(2) ) 
+                       {
+                       case '"':
+                       case '\'':
+                       case '\\':
+                       case 'b':
+                       case 'f':
+                       case 'n':
+                       case 'r':
+                       case 't':
+                               {
+                                       alt20=1;
+                               }
+                           break;
+                       case 'u':
+                               {
+                                       alt20=2;
+                               }
+                           break;
+                       case '0':
+                       case '1':
+                       case '2':
+                       case '3':
+                       case '4':
+                       case '5':
+                       case '6':
+                       case '7':
+                               {
+                                       alt20=3;
+                               }
+                           break;
+
+                       default:
+                           CONSTRUCTEX();
+                           EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
+                           EXCEPTION->message      = (void *)"";
+                           EXCEPTION->decisionNum  = 20;
+                           EXCEPTION->state        = 1;
+
+
+                           goto ruleESC_SEQEx;
+                       }
+
+               }
+            break;
+
+        default:
+            CONSTRUCTEX();
+            EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
+            EXCEPTION->message      = (void *)"";
+            EXCEPTION->decisionNum  = 20;
+            EXCEPTION->state        = 0;
+
+
+            goto ruleESC_SEQEx;
+        }
+
+        switch (alt20) 
+        {
+       case 1:
+           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:71:9: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' )
+           {
+               MATCHC('\\'); 
+               if  (HASEXCEPTION())
+               {
+                   goto ruleESC_SEQEx;
+               }
+
+               if ( LA(1) == '"' || LA(1) == '\'' || LA(1) == '\\' || LA(1) == 'b' || LA(1) == 'f' || LA(1) == 'n' || LA(1) == 'r' || LA(1) == 't' )
+               {
+                   CONSUME();
+
+               }
+               else 
+               {
+                   CONSTRUCTEX();
+                   EXCEPTION->type         = ANTLR3_MISMATCHED_SET_EXCEPTION;
+                   EXCEPTION->name         = (void *)ANTLR3_MISMATCHED_SET_NAME;
+
+                   LRECOVER();    goto ruleESC_SEQEx;
+               }
+
+
+           }
+           break;
+       case 2:
+           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:72:9: UNICODE_ESC
+           {
+               /* 72:9: UNICODE_ESC */
+               mUNICODE_ESC(ctx ); 
+               if  (HASEXCEPTION())
+               {
+                   goto ruleESC_SEQEx;
+               }
+
+
+           }
+           break;
+       case 3:
+           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:73:9: OCTAL_ESC
+           {
+               /* 73:9: OCTAL_ESC */
+               mOCTAL_ESC(ctx ); 
+               if  (HASEXCEPTION())
+               {
+                   goto ruleESC_SEQEx;
+               }
+
+
+           }
+           break;
+
+        }
+    }
+
+
+    // This is where rules clean up and exit
+    //
+    goto ruleESC_SEQEx; /* Prevent compiler warnings */
+    ruleESC_SEQEx: ;
+
+}
+// $ANTLR end ESC_SEQ
+
+//   Comes from: 78:5: ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) )
+/** \brief Lexer rule generated by ANTLR3
+ *
+ * $ANTLR start OCTAL_ESC
+ *
+ * Looks to match the characters the constitute the token OCTAL_ESC
+ * from the attached input stream.
+ *
+ *
+ * \remark
+ *  - lexer->error == ANTLR3_TRUE if an exception was thrown.
+ */
+static ANTLR3_INLINE
+void mOCTAL_ESC(pSimanticsDataLexer ctx)
+{
+       ANTLR3_UINT32   _type;
+
+        
+    {
+        //  C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:78:5: ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) )
+        
+        ANTLR3_UINT32 alt21;
+
+        alt21=3;
+
+        switch ( LA(1) ) 
+        {
+        case '\\':
+               {
+                       switch ( LA(2) ) 
+                       {
+                       case '0':
+                       case '1':
+                       case '2':
+                       case '3':
+                               {
+                                       switch ( LA(3) ) 
+                                       {
+                                       case '0':
+                                       case '1':
+                                       case '2':
+                                       case '3':
+                                       case '4':
+                                       case '5':
+                                       case '6':
+                                       case '7':
+                                               {
+                                                       switch ( LA(4) ) 
+                                                       {
+                                                       case '0':
+                                                       case '1':
+                                                       case '2':
+                                                       case '3':
+                                                       case '4':
+                                                       case '5':
+                                                       case '6':
+                                                       case '7':
+                                                               {
+                                                                       alt21=1;
+                                                               }
+                                                           break;
+
+                                                       default:
+                                                           alt21=2;}
+
+                                               }
+                                           break;
+
+                                       default:
+                                           alt21=3;}
+
+                               }
+                           break;
+                       case '4':
+                       case '5':
+                       case '6':
+                       case '7':
+                               {
+                                       switch ( LA(3) ) 
+                                       {
+                                       case '0':
+                                       case '1':
+                                       case '2':
+                                       case '3':
+                                       case '4':
+                                       case '5':
+                                       case '6':
+                                       case '7':
+                                               {
+                                                       alt21=2;
+                                               }
+                                           break;
+
+                                       default:
+                                           alt21=3;}
+
+                               }
+                           break;
+
+                       default:
+                           CONSTRUCTEX();
+                           EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
+                           EXCEPTION->message      = (void *)"";
+                           EXCEPTION->decisionNum  = 21;
+                           EXCEPTION->state        = 1;
+
+
+                           goto ruleOCTAL_ESCEx;
+                       }
+
+               }
+            break;
+
+        default:
+            CONSTRUCTEX();
+            EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
+            EXCEPTION->message      = (void *)"";
+            EXCEPTION->decisionNum  = 21;
+            EXCEPTION->state        = 0;
+
+
+            goto ruleOCTAL_ESCEx;
+        }
+
+        switch (alt21) 
+        {
+       case 1:
+           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:78:9: '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' )
+           {
+               MATCHC('\\'); 
+               if  (HASEXCEPTION())
+               {
+                   goto ruleOCTAL_ESCEx;
+               }
+
+               // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:78:14: ( '0' .. '3' )
+               // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:78:15: '0' .. '3'
+               {
+                   MATCHRANGE('0', '3'); 
+                   if  (HASEXCEPTION())
+                   {
+                       goto ruleOCTAL_ESCEx;
+                   }
+
+
+               }
+
+               // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:78:25: ( '0' .. '7' )
+               // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:78:26: '0' .. '7'
+               {
+                   MATCHRANGE('0', '7'); 
+                   if  (HASEXCEPTION())
+                   {
+                       goto ruleOCTAL_ESCEx;
+                   }
+
+
+               }
+
+               // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:78:36: ( '0' .. '7' )
+               // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:78:37: '0' .. '7'
+               {
+                   MATCHRANGE('0', '7'); 
+                   if  (HASEXCEPTION())
+                   {
+                       goto ruleOCTAL_ESCEx;
+                   }
+
+
+               }
+
+
+           }
+           break;
+       case 2:
+           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:79:9: '\\\\' ( '0' .. '7' ) ( '0' .. '7' )
+           {
+               MATCHC('\\'); 
+               if  (HASEXCEPTION())
+               {
+                   goto ruleOCTAL_ESCEx;
+               }
+
+               // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:79:14: ( '0' .. '7' )
+               // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:79:15: '0' .. '7'
+               {
+                   MATCHRANGE('0', '7'); 
+                   if  (HASEXCEPTION())
+                   {
+                       goto ruleOCTAL_ESCEx;
+                   }
+
+
+               }
+
+               // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:79:25: ( '0' .. '7' )
+               // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:79:26: '0' .. '7'
+               {
+                   MATCHRANGE('0', '7'); 
+                   if  (HASEXCEPTION())
+                   {
+                       goto ruleOCTAL_ESCEx;
+                   }
+
+
+               }
+
+
+           }
+           break;
+       case 3:
+           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:80:9: '\\\\' ( '0' .. '7' )
+           {
+               MATCHC('\\'); 
+               if  (HASEXCEPTION())
+               {
+                   goto ruleOCTAL_ESCEx;
+               }
+
+               // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:80:14: ( '0' .. '7' )
+               // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:80:15: '0' .. '7'
+               {
+                   MATCHRANGE('0', '7'); 
+                   if  (HASEXCEPTION())
+                   {
+                       goto ruleOCTAL_ESCEx;
+                   }
+
+
+               }
+
+
+           }
+           break;
+
+        }
+    }
+
+
+    // This is where rules clean up and exit
+    //
+    goto ruleOCTAL_ESCEx; /* Prevent compiler warnings */
+    ruleOCTAL_ESCEx: ;
+
+}
+// $ANTLR end OCTAL_ESC
+
+//   Comes from: 85:5: ( '\\\\' 'u' HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT )
+/** \brief Lexer rule generated by ANTLR3
+ *
+ * $ANTLR start UNICODE_ESC
+ *
+ * Looks to match the characters the constitute the token UNICODE_ESC
+ * from the attached input stream.
+ *
+ *
+ * \remark
+ *  - lexer->error == ANTLR3_TRUE if an exception was thrown.
+ */
+static ANTLR3_INLINE
+void mUNICODE_ESC(pSimanticsDataLexer ctx)
+{
+       ANTLR3_UINT32   _type;
+
+        
+    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:85:5: ( '\\\\' 'u' HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT )
+    // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:85:9: '\\\\' 'u' HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT
+    {
+        MATCHC('\\'); 
+        if  (HASEXCEPTION())
+        {
+            goto ruleUNICODE_ESCEx;
+        }
+
+        MATCHC('u'); 
+        if  (HASEXCEPTION())
+        {
+            goto ruleUNICODE_ESCEx;
+        }
+
+        /* 85:9: '\\\\' 'u' HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT */
+        mHEX_DIGIT(ctx ); 
+        if  (HASEXCEPTION())
+        {
+            goto ruleUNICODE_ESCEx;
+        }
+
+        /* 85:9: '\\\\' 'u' HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT */
+        mHEX_DIGIT(ctx ); 
+        if  (HASEXCEPTION())
+        {
+            goto ruleUNICODE_ESCEx;
+        }
+
+        /* 85:9: '\\\\' 'u' HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT */
+        mHEX_DIGIT(ctx ); 
+        if  (HASEXCEPTION())
+        {
+            goto ruleUNICODE_ESCEx;
+        }
+
+        /* 85:9: '\\\\' 'u' HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT */
+        mHEX_DIGIT(ctx ); 
+        if  (HASEXCEPTION())
+        {
+            goto ruleUNICODE_ESCEx;
+        }
+
+
+    }
+
+
+
+    // This is where rules clean up and exit
+    //
+    goto ruleUNICODE_ESCEx; /* Prevent compiler warnings */
+    ruleUNICODE_ESCEx: ;
+
+}
+// $ANTLR end UNICODE_ESC
+
+/** This is the entry point in to the lexer from an object that
+ *  wants to generate the next token, such as a pCOMMON_TOKEN_STREAM
+ */
+static void 
+mTokens(pSimanticsDataLexer ctx)
+{
+    {
+        //  C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:1:8: ( T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | ID | INT | FLOAT | COMMENT | WS | STRING )
+        
+        ANTLR3_UINT32 alt22;
+
+        alt22=22;
+
+        alt22 = cdfa22.predict(ctx, RECOGNIZER, ISTREAM, &cdfa22);
+        if  (HASEXCEPTION())
+        {
+            goto ruleTokensEx;
+        }
+
+        switch (alt22) 
+        {
+       case 1:
+           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:1:10: T__34
+           {
+               /* 1:10: T__34 */
+               mT__34(ctx ); 
+               if  (HASEXCEPTION())
+               {
+                   goto ruleTokensEx;
+               }
+
+
+           }
+           break;
+       case 2:
+           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:1:16: T__35
+           {
+               /* 1:16: T__35 */
+               mT__35(ctx ); 
+               if  (HASEXCEPTION())
+               {
+                   goto ruleTokensEx;
+               }
+
+
+           }
+           break;
+       case 3:
+           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:1:22: T__36
+           {
+               /* 1:22: T__36 */
+               mT__36(ctx ); 
+               if  (HASEXCEPTION())
+               {
+                   goto ruleTokensEx;
+               }
+
+
+           }
+           break;
+       case 4:
+           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:1:28: T__37
+           {
+               /* 1:28: T__37 */
+               mT__37(ctx ); 
+               if  (HASEXCEPTION())
+               {
+                   goto ruleTokensEx;
+               }
+
+
+           }
+           break;
+       case 5:
+           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:1:34: T__38
+           {
+               /* 1:34: T__38 */
+               mT__38(ctx ); 
+               if  (HASEXCEPTION())
+               {
+                   goto ruleTokensEx;
+               }
+
+
+           }
+           break;
+       case 6:
+           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:1:40: T__39
+           {
+               /* 1:40: T__39 */
+               mT__39(ctx ); 
+               if  (HASEXCEPTION())
+               {
+                   goto ruleTokensEx;
+               }
+
+
+           }
+           break;
+       case 7:
+           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:1:46: T__40
+           {
+               /* 1:46: T__40 */
+               mT__40(ctx ); 
+               if  (HASEXCEPTION())
+               {
+                   goto ruleTokensEx;
+               }
+
+
+           }
+           break;
+       case 8:
+           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:1:52: T__41
+           {
+               /* 1:52: T__41 */
+               mT__41(ctx ); 
+               if  (HASEXCEPTION())
+               {
+                   goto ruleTokensEx;
+               }
+
+
+           }
+           break;
+       case 9:
+           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:1:58: T__42
+           {
+               /* 1:58: T__42 */
+               mT__42(ctx ); 
+               if  (HASEXCEPTION())
+               {
+                   goto ruleTokensEx;
+               }
+
+
+           }
+           break;
+       case 10:
+           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:1:64: T__43
+           {
+               /* 1:64: T__43 */
+               mT__43(ctx ); 
+               if  (HASEXCEPTION())
+               {
+                   goto ruleTokensEx;
+               }
+
+
+           }
+           break;
+       case 11:
+           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:1:70: T__44
+           {
+               /* 1:70: T__44 */
+               mT__44(ctx ); 
+               if  (HASEXCEPTION())
+               {
+                   goto ruleTokensEx;
+               }
+
+
+           }
+           break;
+       case 12:
+           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:1:76: T__45
+           {
+               /* 1:76: T__45 */
+               mT__45(ctx ); 
+               if  (HASEXCEPTION())
+               {
+                   goto ruleTokensEx;
+               }
+
+
+           }
+           break;
+       case 13:
+           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:1:82: T__46
+           {
+               /* 1:82: T__46 */
+               mT__46(ctx ); 
+               if  (HASEXCEPTION())
+               {
+                   goto ruleTokensEx;
+               }
+
+
+           }
+           break;
+       case 14:
+           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:1:88: T__47
+           {
+               /* 1:88: T__47 */
+               mT__47(ctx ); 
+               if  (HASEXCEPTION())
+               {
+                   goto ruleTokensEx;
+               }
+
+
+           }
+           break;
+       case 15:
+           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:1:94: T__48
+           {
+               /* 1:94: T__48 */
+               mT__48(ctx ); 
+               if  (HASEXCEPTION())
+               {
+                   goto ruleTokensEx;
+               }
+
+
+           }
+           break;
+       case 16:
+           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:1:100: T__49
+           {
+               /* 1:100: T__49 */
+               mT__49(ctx ); 
+               if  (HASEXCEPTION())
+               {
+                   goto ruleTokensEx;
+               }
+
+
+           }
+           break;
+       case 17:
+           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:1:106: ID
+           {
+               /* 1:106: ID */
+               mID(ctx ); 
+               if  (HASEXCEPTION())
+               {
+                   goto ruleTokensEx;
+               }
+
+
+           }
+           break;
+       case 18:
+           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:1:109: INT
+           {
+               /* 1:109: INT */
+               mINT(ctx ); 
+               if  (HASEXCEPTION())
+               {
+                   goto ruleTokensEx;
+               }
+
+
+           }
+           break;
+       case 19:
+           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:1:113: FLOAT
+           {
+               /* 1:113: FLOAT */
+               mFLOAT(ctx ); 
+               if  (HASEXCEPTION())
+               {
+                   goto ruleTokensEx;
+               }
+
+
+           }
+           break;
+       case 20:
+           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:1:119: COMMENT
+           {
+               /* 1:119: COMMENT */
+               mCOMMENT(ctx ); 
+               if  (HASEXCEPTION())
+               {
+                   goto ruleTokensEx;
+               }
+
+
+           }
+           break;
+       case 21:
+           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:1:127: WS
+           {
+               /* 1:127: WS */
+               mWS(ctx ); 
+               if  (HASEXCEPTION())
+               {
+                   goto ruleTokensEx;
+               }
+
+
+           }
+           break;
+       case 22:
+           // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:1:130: STRING
+           {
+               /* 1:130: STRING */
+               mSTRING(ctx ); 
+               if  (HASEXCEPTION())
+               {
+                   goto ruleTokensEx;
+               }
+
+
+           }
+           break;
+
+        }
+    }
+
+    
+    goto ruleTokensEx; /* Prevent compiler warnings */
+ruleTokensEx: ;
+}
+
+/* =========================================================================
+ * Lexer matching rules end.
+ * =========================================================================
+ */
+/* End of Lexer code
+ * ================================================
+ * ================================================
+ */ 
+
+
+/* End of code
+ * =============================================================================
+ */