--- /dev/null
+/** \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:27\r
+ * - for the parser : SimanticsDataParserParser *\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 "SimanticsDataParser.h"\r
+/* ----------------------------------------- */\r
+\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) pSimanticsDataParser_##scope##_SCOPE\r
+#define SCOPE_STACK(scope) pSimanticsDataParser_##scope##Stack\r
+#define SCOPE_TOP(scope) ctx->pSimanticsDataParser_##scope##Top\r
+#define SCOPE_SIZE(scope) ctx->pSimanticsDataParser_##scope##Stack_limit\r
+#define SCOPE_INSTANCE(scope, i) (ctx->SCOPE_STACK(scope)->get(ctx->SCOPE_STACK(scope),i))\r
+\r
+/* Macros for accessing things in the parser\r
+ */\r
+ \r
+#undef PARSER \r
+#undef RECOGNIZER \r
+#undef HAVEPARSEDRULE\r
+#undef MEMOIZE\r
+#undef INPUT\r
+#undef STRSTREAM\r
+#undef HASEXCEPTION\r
+#undef EXCEPTION\r
+#undef MATCHT\r
+#undef MATCHANYT\r
+#undef FOLLOWSTACK\r
+#undef FOLLOWPUSH\r
+#undef FOLLOWPOP\r
+#undef PRECOVER\r
+#undef PREPORTERROR\r
+#undef LA\r
+#undef LT\r
+#undef CONSTRUCTEX\r
+#undef CONSUME\r
+#undef MARK\r
+#undef REWIND\r
+#undef REWINDLAST\r
+#undef PERRORRECOVERY\r
+#undef HASFAILED\r
+#undef FAILEDFLAG\r
+#undef RECOVERFROMMISMATCHEDSET\r
+#undef RECOVERFROMMISMATCHEDELEMENT\r
+#undef INDEX\r
+#undef ADAPTOR\r
+#undef SEEK\r
+#undef RULEMEMO \r
+#undef DBG\r
+\r
+#define PARSER ctx->pParser \r
+#define RECOGNIZER PARSER->rec\r
+#define PSRSTATE RECOGNIZER->state\r
+#define HAVEPARSEDRULE(r) RECOGNIZER->alreadyParsedRule(RECOGNIZER, r)\r
+#define MEMOIZE(ri,si) RECOGNIZER->memoize(RECOGNIZER, ri, si)\r
+#define INPUT PARSER->tstream\r
+#define STRSTREAM INPUT\r
+#define ISTREAM INPUT->istream\r
+#define INDEX() ISTREAM->index(INPUT->istream)\r
+#define HASEXCEPTION() (PSRSTATE->error == ANTLR3_TRUE)\r
+#define EXCEPTION PSRSTATE->exception\r
+#define MATCHT(t, fs) RECOGNIZER->match(RECOGNIZER, t, fs)\r
+#define MATCHANYT() RECOGNIZER->matchAny(RECOGNIZER)\r
+#define FOLLOWSTACK PSRSTATE->following\r
+#define FOLLOWPUSH(x) FOLLOWSTACK->push(FOLLOWSTACK, ((void *)(&(x))), NULL)\r
+#define FOLLOWPOP() FOLLOWSTACK->pop(FOLLOWSTACK)\r
+#define PRECOVER() RECOGNIZER->recover(RECOGNIZER)\r
+#define PREPORTERROR() RECOGNIZER->reportError(RECOGNIZER)\r
+#define LA(n) INPUT->istream->_LA(ISTREAM, n)\r
+#define LT(n) INPUT->_LT(INPUT, n)\r
+#define CONSTRUCTEX() RECOGNIZER->exConstruct(RECOGNIZER)\r
+#define CONSUME() ISTREAM->consume(ISTREAM)\r
+#define MARK() ISTREAM->mark(ISTREAM)\r
+#define REWIND(m) ISTREAM->rewind(ISTREAM, m)\r
+#define REWINDLAST() ISTREAM->rewindLast(ISTREAM)\r
+#define SEEK(n) ISTREAM->seek(ISTREAM, n)\r
+#define PERRORRECOVERY PSRSTATE->errorRecovery\r
+#define FAILEDFLAG PSRSTATE->failed\r
+#define HASFAILED() (FAILEDFLAG == ANTLR3_TRUE)\r
+#define BACKTRACKING PSRSTATE->backtracking\r
+#define RECOVERFROMMISMATCHEDSET(s) RECOGNIZER->recoverFromMismatchedSet(RECOGNIZER, s)\r
+#define RECOVERFROMMISMATCHEDELEMENT(e) RECOGNIZER->recoverFromMismatchedElement(RECOGNIZER, s)\r
+#define ADAPTOR ctx->adaptor\r
+#define RULEMEMO PSRSTATE->ruleMemo\r
+#define DBG RECOGNIZER->debugger\r
+\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
+\r
+/** \brief Table of all token names in symbolic order, mainly used for\r
+ * error reporting.\r
+ */\r
+pANTLR3_UINT8 SimanticsDataParserTokenNames[46+4]\r
+ = {\r
+ (pANTLR3_UINT8) "<invalid>", /* String to print to indicate an invalid token */\r
+ (pANTLR3_UINT8) "<EOR>",\r
+ (pANTLR3_UINT8) "<DOWN>", \r
+ (pANTLR3_UINT8) "<UP>", \r
+ (pANTLR3_UINT8) "TYPE_DEFINITIONS",\r
+ (pANTLR3_UINT8) "TYPE_DEFINITION",\r
+ (pANTLR3_UINT8) "UNION_TYPE",\r
+ (pANTLR3_UINT8) "RECORD_TYPE",\r
+ (pANTLR3_UINT8) "TUPLE_TYPE",\r
+ (pANTLR3_UINT8) "ARRAY_TYPE",\r
+ (pANTLR3_UINT8) "TYPE_REFERENCE",\r
+ (pANTLR3_UINT8) "TYPE_ANNOTATION",\r
+ (pANTLR3_UINT8) "TYPE_COMPONENT",\r
+ (pANTLR3_UINT8) "VALUE_DEFINITIONS",\r
+ (pANTLR3_UINT8) "VALUE_DEFINITION",\r
+ (pANTLR3_UINT8) "NO_VALUE",\r
+ (pANTLR3_UINT8) "VARIANT",\r
+ (pANTLR3_UINT8) "ARRAY",\r
+ (pANTLR3_UINT8) "TUPLE",\r
+ (pANTLR3_UINT8) "TAGGED_VALUE",\r
+ (pANTLR3_UINT8) "RECORD",\r
+ (pANTLR3_UINT8) "MAP",\r
+ (pANTLR3_UINT8) "ASSIGNMENT",\r
+ (pANTLR3_UINT8) "ID",\r
+ (pANTLR3_UINT8) "INT",\r
+ (pANTLR3_UINT8) "EXPONENT",\r
+ (pANTLR3_UINT8) "FLOAT",\r
+ (pANTLR3_UINT8) "COMMENT",\r
+ (pANTLR3_UINT8) "WS",\r
+ (pANTLR3_UINT8) "ESC_SEQ",\r
+ (pANTLR3_UINT8) "STRING",\r
+ (pANTLR3_UINT8) "HEX_DIGIT",\r
+ (pANTLR3_UINT8) "UNICODE_ESC",\r
+ (pANTLR3_UINT8) "OCTAL_ESC",\r
+ (pANTLR3_UINT8) "'type'",\r
+ (pANTLR3_UINT8) "'='",\r
+ (pANTLR3_UINT8) "'|'",\r
+ (pANTLR3_UINT8) "'['",\r
+ (pANTLR3_UINT8) "']'",\r
+ (pANTLR3_UINT8) "'..'",\r
+ (pANTLR3_UINT8) "'('",\r
+ (pANTLR3_UINT8) "','",\r
+ (pANTLR3_UINT8) "')'",\r
+ (pANTLR3_UINT8) "'{'",\r
+ (pANTLR3_UINT8) "'}'",\r
+ (pANTLR3_UINT8) "':'",\r
+ (pANTLR3_UINT8) "'true'",\r
+ (pANTLR3_UINT8) "'false'",\r
+ (pANTLR3_UINT8) "'null'",\r
+ (pANTLR3_UINT8) "'map'"\r
+ };\r
+\r
+ \r
+\r
+// Forward declare the locally static matching functions we have generated.\r
+//\r
+static SimanticsDataParser_typeDefinitions_return typeDefinitions (pSimanticsDataParser ctx);\r
+static SimanticsDataParser_typeDefinition_return typeDefinition (pSimanticsDataParser ctx);\r
+static SimanticsDataParser_unionType_return unionType (pSimanticsDataParser ctx);\r
+static SimanticsDataParser_unionComponent_return unionComponent (pSimanticsDataParser ctx);\r
+static SimanticsDataParser_type_return type (pSimanticsDataParser ctx);\r
+static SimanticsDataParser_arrayLength_return arrayLength (pSimanticsDataParser ctx);\r
+static SimanticsDataParser_basicType_return basicType (pSimanticsDataParser ctx);\r
+static SimanticsDataParser_tupleType_return tupleType (pSimanticsDataParser ctx);\r
+static SimanticsDataParser_recordType_return recordType (pSimanticsDataParser ctx);\r
+static SimanticsDataParser_component_return component (pSimanticsDataParser ctx);\r
+static SimanticsDataParser_typeReference_return typeReference (pSimanticsDataParser ctx);\r
+static SimanticsDataParser_parameter_return parameter (pSimanticsDataParser ctx);\r
+static SimanticsDataParser_parameterValue_return parameterValue (pSimanticsDataParser ctx);\r
+static SimanticsDataParser_range_return range (pSimanticsDataParser ctx);\r
+static SimanticsDataParser_number_return number (pSimanticsDataParser ctx);\r
+static SimanticsDataParser_string_return string (pSimanticsDataParser ctx);\r
+static SimanticsDataParser_boolean_return boolean (pSimanticsDataParser ctx);\r
+static SimanticsDataParser_valueDefinitions_return valueDefinitions (pSimanticsDataParser ctx);\r
+static SimanticsDataParser_valueDefinition_return valueDefinition (pSimanticsDataParser ctx);\r
+static SimanticsDataParser_value_return value (pSimanticsDataParser ctx);\r
+static SimanticsDataParser_basicValue_return basicValue (pSimanticsDataParser ctx);\r
+static SimanticsDataParser_array_return array (pSimanticsDataParser ctx);\r
+static SimanticsDataParser_tuple_return tuple (pSimanticsDataParser ctx);\r
+static SimanticsDataParser_taggedValue_return taggedValue (pSimanticsDataParser ctx);\r
+static SimanticsDataParser_record_return record (pSimanticsDataParser ctx);\r
+static SimanticsDataParser_recordAssignment_return recordAssignment (pSimanticsDataParser ctx);\r
+static SimanticsDataParser_map_return map (pSimanticsDataParser ctx);\r
+static SimanticsDataParser_mapAssignment_return mapAssignment (pSimanticsDataParser ctx);\r
+static void SimanticsDataParserFree(pSimanticsDataParser ctx);\r
+/* For use in tree output where we are accumulating rule labels via label += ruleRef\r
+ * we need a function that knows how to free a return scope when the list is destroyed. \r
+ * We cannot just use ANTLR3_FREE because in debug tracking mode, this is a macro.\r
+ */\r
+static void ANTLR3_CDECL freeScope(void * scope)\r
+{\r
+ ANTLR3_FREE(scope);\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
+/** \brief Create a new SimanticsDataParser parser and return a context for it.\r
+ *\r
+ * \param[in] instream Pointer to an input stream interface.\r
+ *\r
+ * \return Pointer to new parser context upon success.\r
+ */\r
+ANTLR3_API pSimanticsDataParser\r
+SimanticsDataParserNew (pANTLR3_COMMON_TOKEN_STREAM instream)\r
+{\r
+ // See if we can create a new parser with the standard constructor\r
+ //\r
+ return SimanticsDataParserNewSSD(instream, NULL);\r
+}\r
+\r
+/** \brief Create a new SimanticsDataParser parser and return a context for it.\r
+ *\r
+ * \param[in] instream Pointer to an input stream interface.\r
+ *\r
+ * \return Pointer to new parser context upon success.\r
+ */\r
+ANTLR3_API pSimanticsDataParser\r
+SimanticsDataParserNewSSD (pANTLR3_COMMON_TOKEN_STREAM instream, pANTLR3_RECOGNIZER_SHARED_STATE state)\r
+{\r
+ pSimanticsDataParser ctx; /* Context structure we will build and return */\r
+ \r
+ ctx = (pSimanticsDataParser) ANTLR3_CALLOC(1, sizeof(SimanticsDataParser));\r
+ \r
+ if (ctx == NULL)\r
+ {\r
+ // Failed to allocate memory for parser context\r
+ //\r
+ return NULL;\r
+ }\r
+ \r
+ /* -------------------------------------------------------------------\r
+ * Memory for basic structure is allocated, now to fill in\r
+ * the base ANTLR3 structures. We initialize the function pointers\r
+ * for the standard ANTLR3 parser 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 SimanticsDataParser.h here, in order that you can get a sense\r
+ * of what goes where.\r
+ */\r
+\r
+ /* Create a base parser/recognizer, using the supplied token stream\r
+ */\r
+ ctx->pParser = antlr3ParserNewStream(ANTLR3_SIZE_HINT, instream->tstream, state);\r
+ /* Install the implementation of our SimanticsDataParser interface\r
+ */\r
+ ctx->typeDefinitions = typeDefinitions;\r
+ ctx->typeDefinition = typeDefinition;\r
+ ctx->unionType = unionType;\r
+ ctx->unionComponent = unionComponent;\r
+ ctx->type = type;\r
+ ctx->arrayLength = arrayLength;\r
+ ctx->basicType = basicType;\r
+ ctx->tupleType = tupleType;\r
+ ctx->recordType = recordType;\r
+ ctx->component = component;\r
+ ctx->typeReference = typeReference;\r
+ ctx->parameter = parameter;\r
+ ctx->parameterValue = parameterValue;\r
+ ctx->range = range;\r
+ ctx->number = number;\r
+ ctx->string = string;\r
+ ctx->boolean = boolean;\r
+ ctx->valueDefinitions = valueDefinitions;\r
+ ctx->valueDefinition = valueDefinition;\r
+ ctx->value = value;\r
+ ctx->basicValue = basicValue;\r
+ ctx->array = array;\r
+ ctx->tuple = tuple;\r
+ ctx->taggedValue = taggedValue;\r
+ ctx->record = record;\r
+ ctx->recordAssignment = recordAssignment;\r
+ ctx->map = map;\r
+ ctx->mapAssignment = mapAssignment;\r
+ ctx->free = SimanticsDataParserFree;\r
+ ctx->getGrammarFileName = getGrammarFileName;\r
+ \r
+ /* Install the scope pushing methods.\r
+ */\r
+ ADAPTOR = ANTLR3_TREE_ADAPTORNew(instream->tstream->tokenSource->strFactory);\r
+ ctx->vectors = antlr3VectorFactoryNew(0);\r
+ \r
+\r
+ \r
+ /* Install the token table\r
+ */\r
+ PSRSTATE->tokenNames = SimanticsDataParserTokenNames;\r
+ \r
+ \r
+ /* Return the newly built parser to the caller\r
+ */\r
+ return ctx;\r
+}\r
+\r
+/** Free the parser resources\r
+ */\r
+ static void\r
+ SimanticsDataParserFree(pSimanticsDataParser ctx)\r
+ {\r
+ /* Free any scope memory\r
+ */\r
+ \r
+ ctx->vectors->close(ctx->vectors);\r
+ /* We created the adaptor so we must free it\r
+ */\r
+ ADAPTOR->free(ADAPTOR);\r
+ // Free this parser\r
+ //\r
+ ctx->pParser->free(ctx->pParser);\r
+ ANTLR3_FREE(ctx);\r
+\r
+ /* Everything is released, so we can return\r
+ */\r
+ return;\r
+ }\r
+ \r
+/** Return token names used by this parser\r
+ *\r
+ * The returned pointer is used as an index into the token names table (using the token \r
+ * number as the index).\r
+ * \r
+ * \return Pointer to first char * in the table.\r
+ */\r
+static pANTLR3_UINT8 *getTokenNames() \r
+{\r
+ return SimanticsDataParserTokenNames; \r
+}\r
+\r
+ \r
+/* Declare the bitsets\r
+ */\r
+\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_typeDefinition_in_typeDefinitions768 */\r
+static ANTLR3_BITWORD FOLLOW_typeDefinition_in_typeDefinitions768_bits[] = { ANTLR3_UINT64_LIT(0x0000000400000002) };\r
+static ANTLR3_BITSET_LIST FOLLOW_typeDefinition_in_typeDefinitions768 = { FOLLOW_typeDefinition_in_typeDefinitions768_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_34_in_typeDefinition791 */\r
+static ANTLR3_BITWORD FOLLOW_34_in_typeDefinition791_bits[] = { ANTLR3_UINT64_LIT(0x0000000000800000) };\r
+static ANTLR3_BITSET_LIST FOLLOW_34_in_typeDefinition791 = { FOLLOW_34_in_typeDefinition791_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_ID_in_typeDefinition793 */\r
+static ANTLR3_BITWORD FOLLOW_ID_in_typeDefinition793_bits[] = { ANTLR3_UINT64_LIT(0x0000000800000000) };\r
+static ANTLR3_BITSET_LIST FOLLOW_ID_in_typeDefinition793 = { FOLLOW_ID_in_typeDefinition793_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_35_in_typeDefinition795 */\r
+static ANTLR3_BITWORD FOLLOW_35_in_typeDefinition795_bits[] = { ANTLR3_UINT64_LIT(0x0000091000800000) };\r
+static ANTLR3_BITSET_LIST FOLLOW_35_in_typeDefinition795 = { FOLLOW_35_in_typeDefinition795_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_unionType_in_typeDefinition797 */\r
+static ANTLR3_BITWORD FOLLOW_unionType_in_typeDefinition797_bits[] = { ANTLR3_UINT64_LIT(0x0000000000000002) };\r
+static ANTLR3_BITSET_LIST FOLLOW_unionType_in_typeDefinition797 = { FOLLOW_unionType_in_typeDefinition797_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_type_in_unionType829 */\r
+static ANTLR3_BITWORD FOLLOW_type_in_unionType829_bits[] = { ANTLR3_UINT64_LIT(0x0000000000000002) };\r
+static ANTLR3_BITSET_LIST FOLLOW_type_in_unionType829 = { FOLLOW_type_in_unionType829_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_36_in_unionType838 */\r
+static ANTLR3_BITWORD FOLLOW_36_in_unionType838_bits[] = { ANTLR3_UINT64_LIT(0x0000000000800000) };\r
+static ANTLR3_BITSET_LIST FOLLOW_36_in_unionType838 = { FOLLOW_36_in_unionType838_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_unionComponent_in_unionType840 */\r
+static ANTLR3_BITWORD FOLLOW_unionComponent_in_unionType840_bits[] = { ANTLR3_UINT64_LIT(0x0000001000000002) };\r
+static ANTLR3_BITSET_LIST FOLLOW_unionComponent_in_unionType840 = { FOLLOW_unionComponent_in_unionType840_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_ID_in_unionComponent871 */\r
+static ANTLR3_BITWORD FOLLOW_ID_in_unionComponent871_bits[] = { ANTLR3_UINT64_LIT(0x0000090000800002) };\r
+static ANTLR3_BITSET_LIST FOLLOW_ID_in_unionComponent871 = { FOLLOW_ID_in_unionComponent871_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_type_in_unionComponent873 */\r
+static ANTLR3_BITWORD FOLLOW_type_in_unionComponent873_bits[] = { ANTLR3_UINT64_LIT(0x0000000000000002) };\r
+static ANTLR3_BITSET_LIST FOLLOW_type_in_unionComponent873 = { FOLLOW_type_in_unionComponent873_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_basicType_in_type900 */\r
+static ANTLR3_BITWORD FOLLOW_basicType_in_type900_bits[] = { ANTLR3_UINT64_LIT(0x0000002000000002) };\r
+static ANTLR3_BITSET_LIST FOLLOW_basicType_in_type900 = { FOLLOW_basicType_in_type900_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_37_in_type914 */\r
+static ANTLR3_BITWORD FOLLOW_37_in_type914_bits[] = { ANTLR3_UINT64_LIT(0x000000C001000000) };\r
+static ANTLR3_BITSET_LIST FOLLOW_37_in_type914 = { FOLLOW_37_in_type914_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_arrayLength_in_type916 */\r
+static ANTLR3_BITWORD FOLLOW_arrayLength_in_type916_bits[] = { ANTLR3_UINT64_LIT(0x0000004000000000) };\r
+static ANTLR3_BITSET_LIST FOLLOW_arrayLength_in_type916 = { FOLLOW_arrayLength_in_type916_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_38_in_type919 */\r
+static ANTLR3_BITWORD FOLLOW_38_in_type919_bits[] = { ANTLR3_UINT64_LIT(0x0000002000000002) };\r
+static ANTLR3_BITSET_LIST FOLLOW_38_in_type919 = { FOLLOW_38_in_type919_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_INT_in_arrayLength947 */\r
+static ANTLR3_BITWORD FOLLOW_INT_in_arrayLength947_bits[] = { ANTLR3_UINT64_LIT(0x0000000000000002) };\r
+static ANTLR3_BITSET_LIST FOLLOW_INT_in_arrayLength947 = { FOLLOW_INT_in_arrayLength947_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_INT_in_arrayLength955 */\r
+static ANTLR3_BITWORD FOLLOW_INT_in_arrayLength955_bits[] = { ANTLR3_UINT64_LIT(0x0000008000000000) };\r
+static ANTLR3_BITSET_LIST FOLLOW_INT_in_arrayLength955 = { FOLLOW_INT_in_arrayLength955_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_39_in_arrayLength957 */\r
+static ANTLR3_BITWORD FOLLOW_39_in_arrayLength957_bits[] = { ANTLR3_UINT64_LIT(0x0000000000000002) };\r
+static ANTLR3_BITSET_LIST FOLLOW_39_in_arrayLength957 = { FOLLOW_39_in_arrayLength957_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_39_in_arrayLength965 */\r
+static ANTLR3_BITWORD FOLLOW_39_in_arrayLength965_bits[] = { ANTLR3_UINT64_LIT(0x0000000001000000) };\r
+static ANTLR3_BITSET_LIST FOLLOW_39_in_arrayLength965 = { FOLLOW_39_in_arrayLength965_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_INT_in_arrayLength967 */\r
+static ANTLR3_BITWORD FOLLOW_INT_in_arrayLength967_bits[] = { ANTLR3_UINT64_LIT(0x0000000000000002) };\r
+static ANTLR3_BITSET_LIST FOLLOW_INT_in_arrayLength967 = { FOLLOW_INT_in_arrayLength967_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_INT_in_arrayLength976 */\r
+static ANTLR3_BITWORD FOLLOW_INT_in_arrayLength976_bits[] = { ANTLR3_UINT64_LIT(0x0000008000000000) };\r
+static ANTLR3_BITSET_LIST FOLLOW_INT_in_arrayLength976 = { FOLLOW_INT_in_arrayLength976_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_39_in_arrayLength978 */\r
+static ANTLR3_BITWORD FOLLOW_39_in_arrayLength978_bits[] = { ANTLR3_UINT64_LIT(0x0000000001000000) };\r
+static ANTLR3_BITSET_LIST FOLLOW_39_in_arrayLength978 = { FOLLOW_39_in_arrayLength978_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_INT_in_arrayLength980 */\r
+static ANTLR3_BITWORD FOLLOW_INT_in_arrayLength980_bits[] = { ANTLR3_UINT64_LIT(0x0000000000000002) };\r
+static ANTLR3_BITSET_LIST FOLLOW_INT_in_arrayLength980 = { FOLLOW_INT_in_arrayLength980_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_tupleType_in_basicType998 */\r
+static ANTLR3_BITWORD FOLLOW_tupleType_in_basicType998_bits[] = { ANTLR3_UINT64_LIT(0x0000000000000002) };\r
+static ANTLR3_BITSET_LIST FOLLOW_tupleType_in_basicType998 = { FOLLOW_tupleType_in_basicType998_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_recordType_in_basicType1006 */\r
+static ANTLR3_BITWORD FOLLOW_recordType_in_basicType1006_bits[] = { ANTLR3_UINT64_LIT(0x0000000000000002) };\r
+static ANTLR3_BITSET_LIST FOLLOW_recordType_in_basicType1006 = { FOLLOW_recordType_in_basicType1006_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_typeReference_in_basicType1014 */\r
+static ANTLR3_BITWORD FOLLOW_typeReference_in_basicType1014_bits[] = { ANTLR3_UINT64_LIT(0x0000000000000002) };\r
+static ANTLR3_BITSET_LIST FOLLOW_typeReference_in_basicType1014 = { FOLLOW_typeReference_in_basicType1014_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_40_in_tupleType1036 */\r
+static ANTLR3_BITWORD FOLLOW_40_in_tupleType1036_bits[] = { ANTLR3_UINT64_LIT(0x00000D1000800000) };\r
+static ANTLR3_BITSET_LIST FOLLOW_40_in_tupleType1036 = { FOLLOW_40_in_tupleType1036_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_unionType_in_tupleType1039 */\r
+static ANTLR3_BITWORD FOLLOW_unionType_in_tupleType1039_bits[] = { ANTLR3_UINT64_LIT(0x0000060000000000) };\r
+static ANTLR3_BITSET_LIST FOLLOW_unionType_in_tupleType1039 = { FOLLOW_unionType_in_tupleType1039_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_41_in_tupleType1042 */\r
+static ANTLR3_BITWORD FOLLOW_41_in_tupleType1042_bits[] = { ANTLR3_UINT64_LIT(0x0000091000800000) };\r
+static ANTLR3_BITSET_LIST FOLLOW_41_in_tupleType1042 = { FOLLOW_41_in_tupleType1042_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_unionType_in_tupleType1044 */\r
+static ANTLR3_BITWORD FOLLOW_unionType_in_tupleType1044_bits[] = { ANTLR3_UINT64_LIT(0x0000060000000000) };\r
+static ANTLR3_BITSET_LIST FOLLOW_unionType_in_tupleType1044 = { FOLLOW_unionType_in_tupleType1044_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_42_in_tupleType1050 */\r
+static ANTLR3_BITWORD FOLLOW_42_in_tupleType1050_bits[] = { ANTLR3_UINT64_LIT(0x0000000000000002) };\r
+static ANTLR3_BITSET_LIST FOLLOW_42_in_tupleType1050 = { FOLLOW_42_in_tupleType1050_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_43_in_recordType1083 */\r
+static ANTLR3_BITWORD FOLLOW_43_in_recordType1083_bits[] = { ANTLR3_UINT64_LIT(0x0000100000800000) };\r
+static ANTLR3_BITSET_LIST FOLLOW_43_in_recordType1083 = { FOLLOW_43_in_recordType1083_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_component_in_recordType1086 */\r
+static ANTLR3_BITWORD FOLLOW_component_in_recordType1086_bits[] = { ANTLR3_UINT64_LIT(0x0000120000000000) };\r
+static ANTLR3_BITSET_LIST FOLLOW_component_in_recordType1086 = { FOLLOW_component_in_recordType1086_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_41_in_recordType1089 */\r
+static ANTLR3_BITWORD FOLLOW_41_in_recordType1089_bits[] = { ANTLR3_UINT64_LIT(0x0000000000800000) };\r
+static ANTLR3_BITSET_LIST FOLLOW_41_in_recordType1089 = { FOLLOW_41_in_recordType1089_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_component_in_recordType1091 */\r
+static ANTLR3_BITWORD FOLLOW_component_in_recordType1091_bits[] = { ANTLR3_UINT64_LIT(0x0000120000000000) };\r
+static ANTLR3_BITSET_LIST FOLLOW_component_in_recordType1091 = { FOLLOW_component_in_recordType1091_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_44_in_recordType1097 */\r
+static ANTLR3_BITWORD FOLLOW_44_in_recordType1097_bits[] = { ANTLR3_UINT64_LIT(0x0000000000000002) };\r
+static ANTLR3_BITSET_LIST FOLLOW_44_in_recordType1097 = { FOLLOW_44_in_recordType1097_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_ID_in_component1129 */\r
+static ANTLR3_BITWORD FOLLOW_ID_in_component1129_bits[] = { ANTLR3_UINT64_LIT(0x0000200000000000) };\r
+static ANTLR3_BITSET_LIST FOLLOW_ID_in_component1129 = { FOLLOW_ID_in_component1129_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_45_in_component1131 */\r
+static ANTLR3_BITWORD FOLLOW_45_in_component1131_bits[] = { ANTLR3_UINT64_LIT(0x0000091000800000) };\r
+static ANTLR3_BITSET_LIST FOLLOW_45_in_component1131 = { FOLLOW_45_in_component1131_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_unionType_in_component1133 */\r
+static ANTLR3_BITWORD FOLLOW_unionType_in_component1133_bits[] = { ANTLR3_UINT64_LIT(0x0000000000000002) };\r
+static ANTLR3_BITSET_LIST FOLLOW_unionType_in_component1133 = { FOLLOW_unionType_in_component1133_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_ID_in_typeReference1167 */\r
+static ANTLR3_BITWORD FOLLOW_ID_in_typeReference1167_bits[] = { ANTLR3_UINT64_LIT(0x0000010000000002) };\r
+static ANTLR3_BITSET_LIST FOLLOW_ID_in_typeReference1167 = { FOLLOW_ID_in_typeReference1167_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_40_in_typeReference1170 */\r
+static ANTLR3_BITWORD FOLLOW_40_in_typeReference1170_bits[] = { ANTLR3_UINT64_LIT(0x0000091000800000) };\r
+static ANTLR3_BITSET_LIST FOLLOW_40_in_typeReference1170 = { FOLLOW_40_in_typeReference1170_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_parameter_in_typeReference1172 */\r
+static ANTLR3_BITWORD FOLLOW_parameter_in_typeReference1172_bits[] = { ANTLR3_UINT64_LIT(0x0000060000000000) };\r
+static ANTLR3_BITSET_LIST FOLLOW_parameter_in_typeReference1172 = { FOLLOW_parameter_in_typeReference1172_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_41_in_typeReference1175 */\r
+static ANTLR3_BITWORD FOLLOW_41_in_typeReference1175_bits[] = { ANTLR3_UINT64_LIT(0x0000091000800000) };\r
+static ANTLR3_BITSET_LIST FOLLOW_41_in_typeReference1175 = { FOLLOW_41_in_typeReference1175_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_parameter_in_typeReference1177 */\r
+static ANTLR3_BITWORD FOLLOW_parameter_in_typeReference1177_bits[] = { ANTLR3_UINT64_LIT(0x0000060000000000) };\r
+static ANTLR3_BITSET_LIST FOLLOW_parameter_in_typeReference1177 = { FOLLOW_parameter_in_typeReference1177_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_42_in_typeReference1181 */\r
+static ANTLR3_BITWORD FOLLOW_42_in_typeReference1181_bits[] = { ANTLR3_UINT64_LIT(0x0000000000000002) };\r
+static ANTLR3_BITSET_LIST FOLLOW_42_in_typeReference1181 = { FOLLOW_42_in_typeReference1181_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_ID_in_parameter1217 */\r
+static ANTLR3_BITWORD FOLLOW_ID_in_parameter1217_bits[] = { ANTLR3_UINT64_LIT(0x0000000800000000) };\r
+static ANTLR3_BITSET_LIST FOLLOW_ID_in_parameter1217 = { FOLLOW_ID_in_parameter1217_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_35_in_parameter1219 */\r
+static ANTLR3_BITWORD FOLLOW_35_in_parameter1219_bits[] = { ANTLR3_UINT64_LIT(0x0000C12045000000) };\r
+static ANTLR3_BITSET_LIST FOLLOW_35_in_parameter1219 = { FOLLOW_35_in_parameter1219_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_parameterValue_in_parameter1221 */\r
+static ANTLR3_BITWORD FOLLOW_parameterValue_in_parameter1221_bits[] = { ANTLR3_UINT64_LIT(0x0000000000000002) };\r
+static ANTLR3_BITSET_LIST FOLLOW_parameterValue_in_parameter1221 = { FOLLOW_parameterValue_in_parameter1221_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_unionType_in_parameter1239 */\r
+static ANTLR3_BITWORD FOLLOW_unionType_in_parameter1239_bits[] = { ANTLR3_UINT64_LIT(0x0000000000000002) };\r
+static ANTLR3_BITSET_LIST FOLLOW_unionType_in_parameter1239 = { FOLLOW_unionType_in_parameter1239_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_string_in_parameterValue1258 */\r
+static ANTLR3_BITWORD FOLLOW_string_in_parameterValue1258_bits[] = { ANTLR3_UINT64_LIT(0x0000000000000002) };\r
+static ANTLR3_BITSET_LIST FOLLOW_string_in_parameterValue1258 = { FOLLOW_string_in_parameterValue1258_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_boolean_in_parameterValue1266 */\r
+static ANTLR3_BITWORD FOLLOW_boolean_in_parameterValue1266_bits[] = { ANTLR3_UINT64_LIT(0x0000000000000002) };\r
+static ANTLR3_BITSET_LIST FOLLOW_boolean_in_parameterValue1266 = { FOLLOW_boolean_in_parameterValue1266_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_number_in_parameterValue1274 */\r
+static ANTLR3_BITWORD FOLLOW_number_in_parameterValue1274_bits[] = { ANTLR3_UINT64_LIT(0x0000000000000002) };\r
+static ANTLR3_BITSET_LIST FOLLOW_number_in_parameterValue1274 = { FOLLOW_number_in_parameterValue1274_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_set_in_parameterValue1282 */\r
+static ANTLR3_BITWORD FOLLOW_set_in_parameterValue1282_bits[] = { ANTLR3_UINT64_LIT(0x0000008005000000) };\r
+static ANTLR3_BITSET_LIST FOLLOW_set_in_parameterValue1282 = { FOLLOW_set_in_parameterValue1282_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_range_in_parameterValue1290 */\r
+static ANTLR3_BITWORD FOLLOW_range_in_parameterValue1290_bits[] = { ANTLR3_UINT64_LIT(0x0000044000000000) };\r
+static ANTLR3_BITSET_LIST FOLLOW_range_in_parameterValue1290 = { FOLLOW_range_in_parameterValue1290_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_set_in_parameterValue1292 */\r
+static ANTLR3_BITWORD FOLLOW_set_in_parameterValue1292_bits[] = { ANTLR3_UINT64_LIT(0x0000000000000002) };\r
+static ANTLR3_BITSET_LIST FOLLOW_set_in_parameterValue1292 = { FOLLOW_set_in_parameterValue1292_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_number_in_range1319 */\r
+static ANTLR3_BITWORD FOLLOW_number_in_range1319_bits[] = { ANTLR3_UINT64_LIT(0x0000000000000002) };\r
+static ANTLR3_BITSET_LIST FOLLOW_number_in_range1319 = { FOLLOW_number_in_range1319_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_number_in_range1327 */\r
+static ANTLR3_BITWORD FOLLOW_number_in_range1327_bits[] = { ANTLR3_UINT64_LIT(0x0000008000000000) };\r
+static ANTLR3_BITSET_LIST FOLLOW_number_in_range1327 = { FOLLOW_number_in_range1327_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_39_in_range1329 */\r
+static ANTLR3_BITWORD FOLLOW_39_in_range1329_bits[] = { ANTLR3_UINT64_LIT(0x0000000000000002) };\r
+static ANTLR3_BITSET_LIST FOLLOW_39_in_range1329 = { FOLLOW_39_in_range1329_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_39_in_range1337 */\r
+static ANTLR3_BITWORD FOLLOW_39_in_range1337_bits[] = { ANTLR3_UINT64_LIT(0x0000000005000000) };\r
+static ANTLR3_BITSET_LIST FOLLOW_39_in_range1337 = { FOLLOW_39_in_range1337_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_number_in_range1339 */\r
+static ANTLR3_BITWORD FOLLOW_number_in_range1339_bits[] = { ANTLR3_UINT64_LIT(0x0000000000000002) };\r
+static ANTLR3_BITSET_LIST FOLLOW_number_in_range1339 = { FOLLOW_number_in_range1339_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_number_in_range1348 */\r
+static ANTLR3_BITWORD FOLLOW_number_in_range1348_bits[] = { ANTLR3_UINT64_LIT(0x0000008000000000) };\r
+static ANTLR3_BITSET_LIST FOLLOW_number_in_range1348 = { FOLLOW_number_in_range1348_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_39_in_range1350 */\r
+static ANTLR3_BITWORD FOLLOW_39_in_range1350_bits[] = { ANTLR3_UINT64_LIT(0x0000000005000000) };\r
+static ANTLR3_BITSET_LIST FOLLOW_39_in_range1350 = { FOLLOW_39_in_range1350_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_number_in_range1352 */\r
+static ANTLR3_BITWORD FOLLOW_number_in_range1352_bits[] = { ANTLR3_UINT64_LIT(0x0000000000000002) };\r
+static ANTLR3_BITSET_LIST FOLLOW_number_in_range1352 = { FOLLOW_number_in_range1352_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_set_in_number0 */\r
+static ANTLR3_BITWORD FOLLOW_set_in_number0_bits[] = { ANTLR3_UINT64_LIT(0x0000000000000002) };\r
+static ANTLR3_BITSET_LIST FOLLOW_set_in_number0 = { FOLLOW_set_in_number0_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_STRING_in_string1402 */\r
+static ANTLR3_BITWORD FOLLOW_STRING_in_string1402_bits[] = { ANTLR3_UINT64_LIT(0x0000000000000002) };\r
+static ANTLR3_BITSET_LIST FOLLOW_STRING_in_string1402 = { FOLLOW_STRING_in_string1402_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_set_in_boolean0 */\r
+static ANTLR3_BITWORD FOLLOW_set_in_boolean0_bits[] = { ANTLR3_UINT64_LIT(0x0000000000000002) };\r
+static ANTLR3_BITSET_LIST FOLLOW_set_in_boolean0 = { FOLLOW_set_in_boolean0_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_valueDefinition_in_valueDefinitions1447 */\r
+static ANTLR3_BITWORD FOLLOW_valueDefinition_in_valueDefinitions1447_bits[] = { ANTLR3_UINT64_LIT(0x0000000000800002) };\r
+static ANTLR3_BITSET_LIST FOLLOW_valueDefinition_in_valueDefinitions1447 = { FOLLOW_valueDefinition_in_valueDefinitions1447_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_ID_in_valueDefinition1470 */\r
+static ANTLR3_BITWORD FOLLOW_ID_in_valueDefinition1470_bits[] = { ANTLR3_UINT64_LIT(0x0000200000000000) };\r
+static ANTLR3_BITSET_LIST FOLLOW_ID_in_valueDefinition1470 = { FOLLOW_ID_in_valueDefinition1470_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_45_in_valueDefinition1472 */\r
+static ANTLR3_BITWORD FOLLOW_45_in_valueDefinition1472_bits[] = { ANTLR3_UINT64_LIT(0x0000091000800000) };\r
+static ANTLR3_BITSET_LIST FOLLOW_45_in_valueDefinition1472 = { FOLLOW_45_in_valueDefinition1472_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_unionType_in_valueDefinition1474 */\r
+static ANTLR3_BITWORD FOLLOW_unionType_in_valueDefinition1474_bits[] = { ANTLR3_UINT64_LIT(0x0000000800000000) };\r
+static ANTLR3_BITSET_LIST FOLLOW_unionType_in_valueDefinition1474 = { FOLLOW_unionType_in_valueDefinition1474_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_35_in_valueDefinition1476 */\r
+static ANTLR3_BITWORD FOLLOW_35_in_valueDefinition1476_bits[] = { ANTLR3_UINT64_LIT(0x0003C92045800000) };\r
+static ANTLR3_BITSET_LIST FOLLOW_35_in_valueDefinition1476 = { FOLLOW_35_in_valueDefinition1476_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_value_in_valueDefinition1478 */\r
+static ANTLR3_BITWORD FOLLOW_value_in_valueDefinition1478_bits[] = { ANTLR3_UINT64_LIT(0x0000000000000002) };\r
+static ANTLR3_BITSET_LIST FOLLOW_value_in_valueDefinition1478 = { FOLLOW_value_in_valueDefinition1478_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_basicValue_in_value1514 */\r
+static ANTLR3_BITWORD FOLLOW_basicValue_in_value1514_bits[] = { ANTLR3_UINT64_LIT(0x0000200000000002) };\r
+static ANTLR3_BITSET_LIST FOLLOW_basicValue_in_value1514 = { FOLLOW_basicValue_in_value1514_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_45_in_value1528 */\r
+static ANTLR3_BITWORD FOLLOW_45_in_value1528_bits[] = { ANTLR3_UINT64_LIT(0x0000090000800000) };\r
+static ANTLR3_BITSET_LIST FOLLOW_45_in_value1528 = { FOLLOW_45_in_value1528_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_type_in_value1530 */\r
+static ANTLR3_BITWORD FOLLOW_type_in_value1530_bits[] = { ANTLR3_UINT64_LIT(0x0000200000000002) };\r
+static ANTLR3_BITSET_LIST FOLLOW_type_in_value1530 = { FOLLOW_type_in_value1530_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_48_in_basicValue1562 */\r
+static ANTLR3_BITWORD FOLLOW_48_in_basicValue1562_bits[] = { ANTLR3_UINT64_LIT(0x0000000000000002) };\r
+static ANTLR3_BITSET_LIST FOLLOW_48_in_basicValue1562 = { FOLLOW_48_in_basicValue1562_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_string_in_basicValue1574 */\r
+static ANTLR3_BITWORD FOLLOW_string_in_basicValue1574_bits[] = { ANTLR3_UINT64_LIT(0x0000000000000002) };\r
+static ANTLR3_BITSET_LIST FOLLOW_string_in_basicValue1574 = { FOLLOW_string_in_basicValue1574_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_number_in_basicValue1582 */\r
+static ANTLR3_BITWORD FOLLOW_number_in_basicValue1582_bits[] = { ANTLR3_UINT64_LIT(0x0000000000000002) };\r
+static ANTLR3_BITSET_LIST FOLLOW_number_in_basicValue1582 = { FOLLOW_number_in_basicValue1582_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_boolean_in_basicValue1590 */\r
+static ANTLR3_BITWORD FOLLOW_boolean_in_basicValue1590_bits[] = { ANTLR3_UINT64_LIT(0x0000000000000002) };\r
+static ANTLR3_BITSET_LIST FOLLOW_boolean_in_basicValue1590 = { FOLLOW_boolean_in_basicValue1590_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_array_in_basicValue1598 */\r
+static ANTLR3_BITWORD FOLLOW_array_in_basicValue1598_bits[] = { ANTLR3_UINT64_LIT(0x0000000000000002) };\r
+static ANTLR3_BITSET_LIST FOLLOW_array_in_basicValue1598 = { FOLLOW_array_in_basicValue1598_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_tuple_in_basicValue1606 */\r
+static ANTLR3_BITWORD FOLLOW_tuple_in_basicValue1606_bits[] = { ANTLR3_UINT64_LIT(0x0000000000000002) };\r
+static ANTLR3_BITSET_LIST FOLLOW_tuple_in_basicValue1606 = { FOLLOW_tuple_in_basicValue1606_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_taggedValue_in_basicValue1614 */\r
+static ANTLR3_BITWORD FOLLOW_taggedValue_in_basicValue1614_bits[] = { ANTLR3_UINT64_LIT(0x0000000000000002) };\r
+static ANTLR3_BITSET_LIST FOLLOW_taggedValue_in_basicValue1614 = { FOLLOW_taggedValue_in_basicValue1614_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_map_in_basicValue1622 */\r
+static ANTLR3_BITWORD FOLLOW_map_in_basicValue1622_bits[] = { ANTLR3_UINT64_LIT(0x0000000000000002) };\r
+static ANTLR3_BITSET_LIST FOLLOW_map_in_basicValue1622 = { FOLLOW_map_in_basicValue1622_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_record_in_basicValue1630 */\r
+static ANTLR3_BITWORD FOLLOW_record_in_basicValue1630_bits[] = { ANTLR3_UINT64_LIT(0x0000000000000002) };\r
+static ANTLR3_BITSET_LIST FOLLOW_record_in_basicValue1630 = { FOLLOW_record_in_basicValue1630_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_37_in_array1648 */\r
+static ANTLR3_BITWORD FOLLOW_37_in_array1648_bits[] = { ANTLR3_UINT64_LIT(0x0003C96045800000) };\r
+static ANTLR3_BITSET_LIST FOLLOW_37_in_array1648 = { FOLLOW_37_in_array1648_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_value_in_array1651 */\r
+static ANTLR3_BITWORD FOLLOW_value_in_array1651_bits[] = { ANTLR3_UINT64_LIT(0x0000024000000000) };\r
+static ANTLR3_BITSET_LIST FOLLOW_value_in_array1651 = { FOLLOW_value_in_array1651_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_41_in_array1654 */\r
+static ANTLR3_BITWORD FOLLOW_41_in_array1654_bits[] = { ANTLR3_UINT64_LIT(0x0003C92045800000) };\r
+static ANTLR3_BITSET_LIST FOLLOW_41_in_array1654 = { FOLLOW_41_in_array1654_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_value_in_array1656 */\r
+static ANTLR3_BITWORD FOLLOW_value_in_array1656_bits[] = { ANTLR3_UINT64_LIT(0x0000024000000000) };\r
+static ANTLR3_BITSET_LIST FOLLOW_value_in_array1656 = { FOLLOW_value_in_array1656_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_38_in_array1662 */\r
+static ANTLR3_BITWORD FOLLOW_38_in_array1662_bits[] = { ANTLR3_UINT64_LIT(0x0000000000000002) };\r
+static ANTLR3_BITSET_LIST FOLLOW_38_in_array1662 = { FOLLOW_38_in_array1662_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_40_in_tuple1694 */\r
+static ANTLR3_BITWORD FOLLOW_40_in_tuple1694_bits[] = { ANTLR3_UINT64_LIT(0x0003CD2045800000) };\r
+static ANTLR3_BITSET_LIST FOLLOW_40_in_tuple1694 = { FOLLOW_40_in_tuple1694_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_value_in_tuple1697 */\r
+static ANTLR3_BITWORD FOLLOW_value_in_tuple1697_bits[] = { ANTLR3_UINT64_LIT(0x0000060000000000) };\r
+static ANTLR3_BITSET_LIST FOLLOW_value_in_tuple1697 = { FOLLOW_value_in_tuple1697_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_41_in_tuple1700 */\r
+static ANTLR3_BITWORD FOLLOW_41_in_tuple1700_bits[] = { ANTLR3_UINT64_LIT(0x0003C92045800000) };\r
+static ANTLR3_BITSET_LIST FOLLOW_41_in_tuple1700 = { FOLLOW_41_in_tuple1700_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_value_in_tuple1702 */\r
+static ANTLR3_BITWORD FOLLOW_value_in_tuple1702_bits[] = { ANTLR3_UINT64_LIT(0x0000060000000000) };\r
+static ANTLR3_BITSET_LIST FOLLOW_value_in_tuple1702 = { FOLLOW_value_in_tuple1702_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_42_in_tuple1708 */\r
+static ANTLR3_BITWORD FOLLOW_42_in_tuple1708_bits[] = { ANTLR3_UINT64_LIT(0x0000000000000002) };\r
+static ANTLR3_BITSET_LIST FOLLOW_42_in_tuple1708 = { FOLLOW_42_in_tuple1708_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_ID_in_taggedValue1740 */\r
+static ANTLR3_BITWORD FOLLOW_ID_in_taggedValue1740_bits[] = { ANTLR3_UINT64_LIT(0x0003C92045800000) };\r
+static ANTLR3_BITSET_LIST FOLLOW_ID_in_taggedValue1740 = { FOLLOW_ID_in_taggedValue1740_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_basicValue_in_taggedValue1742 */\r
+static ANTLR3_BITWORD FOLLOW_basicValue_in_taggedValue1742_bits[] = { ANTLR3_UINT64_LIT(0x0000000000000002) };\r
+static ANTLR3_BITSET_LIST FOLLOW_basicValue_in_taggedValue1742 = { FOLLOW_basicValue_in_taggedValue1742_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_43_in_record1775 */\r
+static ANTLR3_BITWORD FOLLOW_43_in_record1775_bits[] = { ANTLR3_UINT64_LIT(0x0000100000800000) };\r
+static ANTLR3_BITSET_LIST FOLLOW_43_in_record1775 = { FOLLOW_43_in_record1775_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_recordAssignment_in_record1778 */\r
+static ANTLR3_BITWORD FOLLOW_recordAssignment_in_record1778_bits[] = { ANTLR3_UINT64_LIT(0x0000120000000000) };\r
+static ANTLR3_BITSET_LIST FOLLOW_recordAssignment_in_record1778 = { FOLLOW_recordAssignment_in_record1778_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_41_in_record1781 */\r
+static ANTLR3_BITWORD FOLLOW_41_in_record1781_bits[] = { ANTLR3_UINT64_LIT(0x0000000000800000) };\r
+static ANTLR3_BITSET_LIST FOLLOW_41_in_record1781 = { FOLLOW_41_in_record1781_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_recordAssignment_in_record1783 */\r
+static ANTLR3_BITWORD FOLLOW_recordAssignment_in_record1783_bits[] = { ANTLR3_UINT64_LIT(0x0000120000000000) };\r
+static ANTLR3_BITSET_LIST FOLLOW_recordAssignment_in_record1783 = { FOLLOW_recordAssignment_in_record1783_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_44_in_record1789 */\r
+static ANTLR3_BITWORD FOLLOW_44_in_record1789_bits[] = { ANTLR3_UINT64_LIT(0x0000000000000002) };\r
+static ANTLR3_BITSET_LIST FOLLOW_44_in_record1789 = { FOLLOW_44_in_record1789_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_ID_in_recordAssignment1821 */\r
+static ANTLR3_BITWORD FOLLOW_ID_in_recordAssignment1821_bits[] = { ANTLR3_UINT64_LIT(0x0000000800000000) };\r
+static ANTLR3_BITSET_LIST FOLLOW_ID_in_recordAssignment1821 = { FOLLOW_ID_in_recordAssignment1821_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_35_in_recordAssignment1823 */\r
+static ANTLR3_BITWORD FOLLOW_35_in_recordAssignment1823_bits[] = { ANTLR3_UINT64_LIT(0x0003C92045800000) };\r
+static ANTLR3_BITSET_LIST FOLLOW_35_in_recordAssignment1823 = { FOLLOW_35_in_recordAssignment1823_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_value_in_recordAssignment1825 */\r
+static ANTLR3_BITWORD FOLLOW_value_in_recordAssignment1825_bits[] = { ANTLR3_UINT64_LIT(0x0000000000000002) };\r
+static ANTLR3_BITSET_LIST FOLLOW_value_in_recordAssignment1825 = { FOLLOW_value_in_recordAssignment1825_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_49_in_map1852 */\r
+static ANTLR3_BITWORD FOLLOW_49_in_map1852_bits[] = { ANTLR3_UINT64_LIT(0x0000080000000000) };\r
+static ANTLR3_BITSET_LIST FOLLOW_49_in_map1852 = { FOLLOW_49_in_map1852_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_43_in_map1854 */\r
+static ANTLR3_BITWORD FOLLOW_43_in_map1854_bits[] = { ANTLR3_UINT64_LIT(0x0003D92045800000) };\r
+static ANTLR3_BITSET_LIST FOLLOW_43_in_map1854 = { FOLLOW_43_in_map1854_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_mapAssignment_in_map1857 */\r
+static ANTLR3_BITWORD FOLLOW_mapAssignment_in_map1857_bits[] = { ANTLR3_UINT64_LIT(0x0000120000000000) };\r
+static ANTLR3_BITSET_LIST FOLLOW_mapAssignment_in_map1857 = { FOLLOW_mapAssignment_in_map1857_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_41_in_map1860 */\r
+static ANTLR3_BITWORD FOLLOW_41_in_map1860_bits[] = { ANTLR3_UINT64_LIT(0x0003C92045800000) };\r
+static ANTLR3_BITSET_LIST FOLLOW_41_in_map1860 = { FOLLOW_41_in_map1860_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_mapAssignment_in_map1862 */\r
+static ANTLR3_BITWORD FOLLOW_mapAssignment_in_map1862_bits[] = { ANTLR3_UINT64_LIT(0x0000120000000000) };\r
+static ANTLR3_BITSET_LIST FOLLOW_mapAssignment_in_map1862 = { FOLLOW_mapAssignment_in_map1862_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_44_in_map1868 */\r
+static ANTLR3_BITWORD FOLLOW_44_in_map1868_bits[] = { ANTLR3_UINT64_LIT(0x0000000000000002) };\r
+static ANTLR3_BITSET_LIST FOLLOW_44_in_map1868 = { FOLLOW_44_in_map1868_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_value_in_mapAssignment1900 */\r
+static ANTLR3_BITWORD FOLLOW_value_in_mapAssignment1900_bits[] = { ANTLR3_UINT64_LIT(0x0000000800000000) };\r
+static ANTLR3_BITSET_LIST FOLLOW_value_in_mapAssignment1900 = { FOLLOW_value_in_mapAssignment1900_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_35_in_mapAssignment1902 */\r
+static ANTLR3_BITWORD FOLLOW_35_in_mapAssignment1902_bits[] = { ANTLR3_UINT64_LIT(0x0003C92045800000) };\r
+static ANTLR3_BITSET_LIST FOLLOW_35_in_mapAssignment1902 = { FOLLOW_35_in_mapAssignment1902_bits, 1 };\r
+/** Bitset defining follow set for error recovery in rule state: FOLLOW_value_in_mapAssignment1904 */\r
+static ANTLR3_BITWORD FOLLOW_value_in_mapAssignment1904_bits[] = { ANTLR3_UINT64_LIT(0x0000000000000002) };\r
+static ANTLR3_BITSET_LIST FOLLOW_value_in_mapAssignment1904 = { FOLLOW_value_in_mapAssignment1904_bits, 1 };\r
+ \r
+\r
+ \r
+ \r
+/* ==============================================\r
+ * Parsing rules\r
+ */\r
+/** \r
+ * $ANTLR start typeDefinitions\r
+ * C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:93:1: typeDefinitions : ( typeDefinition )* -> ^( TYPE_DEFINITIONS ( typeDefinition )* ) ;\r
+ */\r
+static SimanticsDataParser_typeDefinitions_return\r
+typeDefinitions(pSimanticsDataParser ctx)\r
+{ \r
+ SimanticsDataParser_typeDefinitions_return retval;\r
+\r
+ pANTLR3_BASE_TREE root_0;\r
+\r
+ SimanticsDataParser_typeDefinition_return typeDefinition1;\r
+ #undef RETURN_TYPE_typeDefinition1\r
+ #define RETURN_TYPE_typeDefinition1 SimanticsDataParser_typeDefinition_return\r
+\r
+ pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_typeDefinition;\r
+ /* Initialize rule variables\r
+ */\r
+\r
+\r
+ root_0 = NULL;\r
+\r
+ typeDefinition1.tree = NULL;\r
+\r
+ retval.start = LT(1); retval.stop = retval.start;\r
+\r
+\r
+ stream_typeDefinition = NULL;\r
+ #define CREATE_stream_typeDefinition if (stream_typeDefinition == NULL) {stream_typeDefinition = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule typeDefinition"); }\r
+\r
+ retval.tree = NULL;\r
+ {\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:93:17: ( ( typeDefinition )* -> ^( TYPE_DEFINITIONS ( typeDefinition )* ) )\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:93:19: ( typeDefinition )*\r
+ {\r
+\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:93:19: ( typeDefinition )*\r
+\r
+ for (;;)\r
+ {\r
+ int alt1=2;\r
+ switch ( LA(1) ) \r
+ {\r
+ case 34:\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:93:19: typeDefinition\r
+ {\r
+ FOLLOWPUSH(FOLLOW_typeDefinition_in_typeDefinitions768);\r
+ typeDefinition1=typeDefinition(ctx);\r
+\r
+ FOLLOWPOP();\r
+ if (HASEXCEPTION())\r
+ {\r
+ goto ruletypeDefinitionsEx;\r
+ }\r
+\r
+ CREATE_stream_typeDefinition; stream_typeDefinition->add(stream_typeDefinition, typeDefinition1.tree, NULL);\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
+ /* AST REWRITE\r
+ * elements : typeDefinition\r
+ * token labels : \r
+ * rule labels : retval\r
+ * token list labels : \r
+ * rule list labels : \r
+ */\r
+ {\r
+ pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;\r
+\r
+ stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);\r
+\r
+ root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+ retval.tree = root_0;\r
+ // 93:35: -> ^( TYPE_DEFINITIONS ( typeDefinition )* )\r
+ {\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:93:38: ^( TYPE_DEFINITIONS ( typeDefinition )* )\r
+ {\r
+ pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+ root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, TYPE_DEFINITIONS, (pANTLR3_UINT8)"TYPE_DEFINITIONS"), root_1));\r
+\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:93:57: ( typeDefinition )*\r
+ {\r
+ while ( (stream_typeDefinition != NULL && stream_typeDefinition->hasNext(stream_typeDefinition)) )\r
+ {\r
+ ADAPTOR->addChild(ADAPTOR, root_1, stream_typeDefinition == NULL ? NULL : stream_typeDefinition->nextTree(stream_typeDefinition));\r
+\r
+ }\r
+ if (stream_typeDefinition != NULL) stream_typeDefinition->reset(stream_typeDefinition);\r
+\r
+ }\r
+\r
+ ADAPTOR->addChild(ADAPTOR, root_0, root_1);\r
+ }\r
+\r
+ }\r
+\r
+ retval.tree = root_0; // set result root\r
+ if (stream_retval != NULL) stream_retval->free(stream_retval);\r
+\r
+\r
+ }\r
+ }\r
+\r
+ }\r
+ \r
+\r
+ // This is where rules clean up and exit\r
+ //\r
+ goto ruletypeDefinitionsEx; /* Prevent compiler warnings */\r
+ ruletypeDefinitionsEx: ;\r
+ retval.stop = LT(-1);\r
+\r
+ retval.stop = LT(-1);\r
+ retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));\r
+ ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);\r
+ if (stream_typeDefinition != NULL) stream_typeDefinition->free(stream_typeDefinition);\r
+\r
+ if (HASEXCEPTION())\r
+ {\r
+ PREPORTERROR();\r
+ PRECOVER();\r
+ retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));\r
+ }\r
+\r
+\r
+ return retval;\r
+}\r
+/* $ANTLR end typeDefinitions */\r
+\r
+/** \r
+ * $ANTLR start typeDefinition\r
+ * C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:95:1: typeDefinition : 'type' ID '=' unionType -> ^( TYPE_DEFINITION ID unionType ) ;\r
+ */\r
+static SimanticsDataParser_typeDefinition_return\r
+typeDefinition(pSimanticsDataParser ctx)\r
+{ \r
+ SimanticsDataParser_typeDefinition_return retval;\r
+\r
+ pANTLR3_BASE_TREE root_0;\r
+\r
+ pANTLR3_COMMON_TOKEN string_literal2;\r
+ pANTLR3_COMMON_TOKEN ID3;\r
+ pANTLR3_COMMON_TOKEN char_literal4;\r
+ SimanticsDataParser_unionType_return unionType5;\r
+ #undef RETURN_TYPE_unionType5\r
+ #define RETURN_TYPE_unionType5 SimanticsDataParser_unionType_return\r
+\r
+ pANTLR3_BASE_TREE string_literal2_tree;\r
+ pANTLR3_BASE_TREE ID3_tree;\r
+ pANTLR3_BASE_TREE char_literal4_tree;\r
+ pANTLR3_REWRITE_RULE_TOKEN_STREAM stream_ID;\r
+ pANTLR3_REWRITE_RULE_TOKEN_STREAM stream_35;\r
+ pANTLR3_REWRITE_RULE_TOKEN_STREAM stream_34;\r
+ pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_unionType;\r
+ /* Initialize rule variables\r
+ */\r
+\r
+\r
+ root_0 = NULL;\r
+\r
+ string_literal2 = NULL;\r
+ ID3 = NULL;\r
+ char_literal4 = NULL;\r
+ unionType5.tree = NULL;\r
+\r
+ retval.start = LT(1); retval.stop = retval.start;\r
+\r
+ string_literal2_tree = NULL;\r
+ ID3_tree = NULL;\r
+ char_literal4_tree = NULL;\r
+\r
+ stream_ID = NULL;\r
+ #define CREATE_stream_ID if (stream_ID == NULL) {stream_ID = antlr3RewriteRuleTOKENStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token ID"); } \r
+ stream_35 = NULL;\r
+ #define CREATE_stream_35 if (stream_35 == NULL) {stream_35 = antlr3RewriteRuleTOKENStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token 35"); } \r
+ stream_34 = NULL;\r
+ #define CREATE_stream_34 if (stream_34 == NULL) {stream_34 = antlr3RewriteRuleTOKENStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token 34"); } \r
+ stream_unionType = NULL;\r
+ #define CREATE_stream_unionType if (stream_unionType == NULL) {stream_unionType = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule unionType"); }\r
+\r
+ retval.tree = NULL;\r
+ {\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:96:5: ( 'type' ID '=' unionType -> ^( TYPE_DEFINITION ID unionType ) )\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:96:7: 'type' ID '=' unionType\r
+ {\r
+ string_literal2 = (pANTLR3_COMMON_TOKEN) MATCHT(34, &FOLLOW_34_in_typeDefinition791); \r
+ if (HASEXCEPTION())\r
+ {\r
+ goto ruletypeDefinitionEx;\r
+ }\r
+ \r
+ CREATE_stream_34; stream_34->add(stream_34, string_literal2, NULL);\r
+\r
+ ID3 = (pANTLR3_COMMON_TOKEN) MATCHT(ID, &FOLLOW_ID_in_typeDefinition793); \r
+ if (HASEXCEPTION())\r
+ {\r
+ goto ruletypeDefinitionEx;\r
+ }\r
+ \r
+ CREATE_stream_ID; stream_ID->add(stream_ID, ID3, NULL);\r
+\r
+ char_literal4 = (pANTLR3_COMMON_TOKEN) MATCHT(35, &FOLLOW_35_in_typeDefinition795); \r
+ if (HASEXCEPTION())\r
+ {\r
+ goto ruletypeDefinitionEx;\r
+ }\r
+ \r
+ CREATE_stream_35; stream_35->add(stream_35, char_literal4, NULL);\r
+\r
+ FOLLOWPUSH(FOLLOW_unionType_in_typeDefinition797);\r
+ unionType5=unionType(ctx);\r
+\r
+ FOLLOWPOP();\r
+ if (HASEXCEPTION())\r
+ {\r
+ goto ruletypeDefinitionEx;\r
+ }\r
+\r
+ CREATE_stream_unionType; stream_unionType->add(stream_unionType, unionType5.tree, NULL);\r
+\r
+ \r
+ /* AST REWRITE\r
+ * elements : unionType, ID\r
+ * token labels : \r
+ * rule labels : retval\r
+ * token list labels : \r
+ * rule list labels : \r
+ */\r
+ {\r
+ pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;\r
+\r
+ stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);\r
+\r
+ root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+ retval.tree = root_0;\r
+ // 96:31: -> ^( TYPE_DEFINITION ID unionType )\r
+ {\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:96:34: ^( TYPE_DEFINITION ID unionType )\r
+ {\r
+ pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+ root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, TYPE_DEFINITION, (pANTLR3_UINT8)"TYPE_DEFINITION"), root_1));\r
+\r
+ ADAPTOR->addChild(ADAPTOR, root_1, stream_ID == NULL ? NULL : stream_ID->nextNode(stream_ID));\r
+ ADAPTOR->addChild(ADAPTOR, root_1, stream_unionType == NULL ? NULL : stream_unionType->nextTree(stream_unionType));\r
+\r
+ ADAPTOR->addChild(ADAPTOR, root_0, root_1);\r
+ }\r
+\r
+ }\r
+\r
+ retval.tree = root_0; // set result root\r
+ if (stream_retval != NULL) stream_retval->free(stream_retval);\r
+\r
+\r
+ }\r
+ }\r
+\r
+ }\r
+ \r
+\r
+ // This is where rules clean up and exit\r
+ //\r
+ goto ruletypeDefinitionEx; /* Prevent compiler warnings */\r
+ ruletypeDefinitionEx: ;\r
+ retval.stop = LT(-1);\r
+\r
+ retval.stop = LT(-1);\r
+ retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));\r
+ ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);\r
+ if (stream_ID != NULL) stream_ID->free(stream_ID);\r
+ if (stream_35 != NULL) stream_35->free(stream_35);\r
+ if (stream_34 != NULL) stream_34->free(stream_34);\r
+ if (stream_unionType != NULL) stream_unionType->free(stream_unionType);\r
+\r
+ if (HASEXCEPTION())\r
+ {\r
+ PREPORTERROR();\r
+ PRECOVER();\r
+ retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));\r
+ }\r
+\r
+\r
+ return retval;\r
+}\r
+/* $ANTLR end typeDefinition */\r
+\r
+/** \r
+ * $ANTLR start unionType\r
+ * C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:99:1: unionType : ( type | ( '|' unionComponent )+ -> ^( UNION_TYPE ( unionComponent )+ ) );\r
+ */\r
+static SimanticsDataParser_unionType_return\r
+unionType(pSimanticsDataParser ctx)\r
+{ \r
+ SimanticsDataParser_unionType_return retval;\r
+\r
+ pANTLR3_BASE_TREE root_0;\r
+\r
+ pANTLR3_COMMON_TOKEN char_literal7;\r
+ SimanticsDataParser_type_return type6;\r
+ #undef RETURN_TYPE_type6\r
+ #define RETURN_TYPE_type6 SimanticsDataParser_type_return\r
+\r
+ SimanticsDataParser_unionComponent_return unionComponent8;\r
+ #undef RETURN_TYPE_unionComponent8\r
+ #define RETURN_TYPE_unionComponent8 SimanticsDataParser_unionComponent_return\r
+\r
+ pANTLR3_BASE_TREE char_literal7_tree;\r
+ pANTLR3_REWRITE_RULE_TOKEN_STREAM stream_36;\r
+ pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_unionComponent;\r
+ /* Initialize rule variables\r
+ */\r
+\r
+\r
+ root_0 = NULL;\r
+\r
+ char_literal7 = NULL;\r
+ type6.tree = NULL;\r
+\r
+ unionComponent8.tree = NULL;\r
+\r
+ retval.start = LT(1); retval.stop = retval.start;\r
+\r
+ char_literal7_tree = NULL;\r
+\r
+ stream_36 = NULL;\r
+ #define CREATE_stream_36 if (stream_36 == NULL) {stream_36 = antlr3RewriteRuleTOKENStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token 36"); } \r
+ stream_unionComponent = NULL;\r
+ #define CREATE_stream_unionComponent if (stream_unionComponent == NULL) {stream_unionComponent = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule unionComponent"); }\r
+\r
+ retval.tree = NULL;\r
+ {\r
+ {\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:100:5: ( type | ( '|' unionComponent )+ -> ^( UNION_TYPE ( unionComponent )+ ) )\r
+ \r
+ ANTLR3_UINT32 alt3;\r
+\r
+ alt3=2;\r
+\r
+ switch ( LA(1) ) \r
+ {\r
+ case ID:\r
+ case 40:\r
+ case 43:\r
+ {\r
+ alt3=1;\r
+ }\r
+ break;\r
+ case 36:\r
+ {\r
+ alt3=2;\r
+ }\r
+ break;\r
+\r
+ default:\r
+ CONSTRUCTEX();\r
+ EXCEPTION->type = ANTLR3_NO_VIABLE_ALT_EXCEPTION;\r
+ EXCEPTION->message = (void *)"";\r
+ EXCEPTION->decisionNum = 3;\r
+ EXCEPTION->state = 0;\r
+\r
+\r
+ goto ruleunionTypeEx;\r
+ }\r
+\r
+ switch (alt3) \r
+ {\r
+ case 1:\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:100:7: type\r
+ {\r
+ root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+\r
+ FOLLOWPUSH(FOLLOW_type_in_unionType829);\r
+ type6=type(ctx);\r
+\r
+ FOLLOWPOP();\r
+ if (HASEXCEPTION())\r
+ {\r
+ goto ruleunionTypeEx;\r
+ }\r
+\r
+ ADAPTOR->addChild(ADAPTOR, root_0, type6.tree);\r
+\r
+ }\r
+ break;\r
+ case 2:\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:101:7: ( '|' unionComponent )+\r
+ {\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:101:7: ( '|' unionComponent )+\r
+ {\r
+ int cnt2=0;\r
+\r
+ for (;;)\r
+ {\r
+ int alt2=2;\r
+ switch ( LA(1) ) \r
+ {\r
+ case 36:\r
+ {\r
+ alt2=1;\r
+ }\r
+ break;\r
+\r
+ }\r
+\r
+ switch (alt2) \r
+ {\r
+ case 1:\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:101:8: '|' unionComponent\r
+ {\r
+ char_literal7 = (pANTLR3_COMMON_TOKEN) MATCHT(36, &FOLLOW_36_in_unionType838); \r
+ if (HASEXCEPTION())\r
+ {\r
+ goto ruleunionTypeEx;\r
+ }\r
+ \r
+ CREATE_stream_36; stream_36->add(stream_36, char_literal7, NULL);\r
+\r
+ FOLLOWPUSH(FOLLOW_unionComponent_in_unionType840);\r
+ unionComponent8=unionComponent(ctx);\r
+\r
+ FOLLOWPOP();\r
+ if (HASEXCEPTION())\r
+ {\r
+ goto ruleunionTypeEx;\r
+ }\r
+\r
+ CREATE_stream_unionComponent; stream_unionComponent->add(stream_unionComponent, unionComponent8.tree, NULL);\r
+\r
+ }\r
+ break;\r
+\r
+ default:\r
+ \r
+ if ( cnt2 >= 1 )\r
+ {\r
+ goto loop2;\r
+ }\r
+ /* mismatchedSetEx()\r
+ */\r
+ CONSTRUCTEX();\r
+ EXCEPTION->type = ANTLR3_EARLY_EXIT_EXCEPTION;\r
+ EXCEPTION->name = (void *)ANTLR3_EARLY_EXIT_NAME;\r
+\r
+\r
+ goto ruleunionTypeEx;\r
+ }\r
+ cnt2++;\r
+ }\r
+ loop2: ; /* Jump to here if this rule does not match */\r
+ }\r
+\r
+ \r
+ /* AST REWRITE\r
+ * elements : unionComponent\r
+ * token labels : \r
+ * rule labels : retval\r
+ * token list labels : \r
+ * rule list labels : \r
+ */\r
+ {\r
+ pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;\r
+\r
+ stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);\r
+\r
+ root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+ retval.tree = root_0;\r
+ // 102:5: -> ^( UNION_TYPE ( unionComponent )+ )\r
+ {\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:102:8: ^( UNION_TYPE ( unionComponent )+ )\r
+ {\r
+ pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+ root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, UNION_TYPE, (pANTLR3_UINT8)"UNION_TYPE"), root_1));\r
+\r
+ if ((stream_unionComponent == NULL || !stream_unionComponent->hasNext(stream_unionComponent)) )\r
+ {\r
+ CONSTRUCTEX();\r
+ EXCEPTION->type = ANTLR3_REWRITE_EARLY_EXCEPTION;\r
+ EXCEPTION->name = (void *)ANTLR3_REWRITE_EARLY_EXCEPTION_NAME;\r
+ }\r
+ else\r
+ {\r
+ while ( (stream_unionComponent->hasNext(stream_unionComponent)) ) {\r
+ ADAPTOR->addChild(ADAPTOR, root_1, stream_unionComponent == NULL ? NULL : stream_unionComponent->nextTree(stream_unionComponent));\r
+\r
+ }\r
+ stream_unionComponent->reset(stream_unionComponent);\r
+\r
+ }\r
+ ADAPTOR->addChild(ADAPTOR, root_0, root_1);\r
+ }\r
+\r
+ }\r
+\r
+ retval.tree = root_0; // set result root\r
+ if (stream_retval != NULL) stream_retval->free(stream_retval);\r
+\r
+\r
+ }\r
+ }\r
+ break;\r
+\r
+ }\r
+ }\r
+ }\r
+ \r
+\r
+ // This is where rules clean up and exit\r
+ //\r
+ goto ruleunionTypeEx; /* Prevent compiler warnings */\r
+ ruleunionTypeEx: ;\r
+ retval.stop = LT(-1);\r
+\r
+ retval.stop = LT(-1);\r
+ retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));\r
+ ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);\r
+ if (stream_36 != NULL) stream_36->free(stream_36);\r
+ if (stream_unionComponent != NULL) stream_unionComponent->free(stream_unionComponent);\r
+\r
+ if (HASEXCEPTION())\r
+ {\r
+ PREPORTERROR();\r
+ PRECOVER();\r
+ retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));\r
+ }\r
+\r
+\r
+ return retval;\r
+}\r
+/* $ANTLR end unionType */\r
+\r
+/** \r
+ * $ANTLR start unionComponent\r
+ * C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:105:1: unionComponent : ID ( type )? -> ^( TYPE_COMPONENT ID ( type )? ) ;\r
+ */\r
+static SimanticsDataParser_unionComponent_return\r
+unionComponent(pSimanticsDataParser ctx)\r
+{ \r
+ SimanticsDataParser_unionComponent_return retval;\r
+\r
+ pANTLR3_BASE_TREE root_0;\r
+\r
+ pANTLR3_COMMON_TOKEN ID9;\r
+ SimanticsDataParser_type_return type10;\r
+ #undef RETURN_TYPE_type10\r
+ #define RETURN_TYPE_type10 SimanticsDataParser_type_return\r
+\r
+ pANTLR3_BASE_TREE ID9_tree;\r
+ pANTLR3_REWRITE_RULE_TOKEN_STREAM stream_ID;\r
+ pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_type;\r
+ /* Initialize rule variables\r
+ */\r
+\r
+\r
+ root_0 = NULL;\r
+\r
+ ID9 = NULL;\r
+ type10.tree = NULL;\r
+\r
+ retval.start = LT(1); retval.stop = retval.start;\r
+\r
+ ID9_tree = NULL;\r
+\r
+ stream_ID = NULL;\r
+ #define CREATE_stream_ID if (stream_ID == NULL) {stream_ID = antlr3RewriteRuleTOKENStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token ID"); } \r
+ stream_type = NULL;\r
+ #define CREATE_stream_type if (stream_type == NULL) {stream_type = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule type"); }\r
+\r
+ retval.tree = NULL;\r
+ {\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:105:16: ( ID ( type )? -> ^( TYPE_COMPONENT ID ( type )? ) )\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:105:18: ID ( type )?\r
+ {\r
+ ID9 = (pANTLR3_COMMON_TOKEN) MATCHT(ID, &FOLLOW_ID_in_unionComponent871); \r
+ if (HASEXCEPTION())\r
+ {\r
+ goto ruleunionComponentEx;\r
+ }\r
+ \r
+ CREATE_stream_ID; stream_ID->add(stream_ID, ID9, NULL);\r
+\r
+\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:105:21: ( type )?\r
+ {\r
+ int alt4=2;\r
+ switch ( LA(1) ) \r
+ {\r
+ case ID:\r
+ case 40:\r
+ case 43:\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:105:21: type\r
+ {\r
+ FOLLOWPUSH(FOLLOW_type_in_unionComponent873);\r
+ type10=type(ctx);\r
+\r
+ FOLLOWPOP();\r
+ if (HASEXCEPTION())\r
+ {\r
+ goto ruleunionComponentEx;\r
+ }\r
+\r
+ CREATE_stream_type; stream_type->add(stream_type, type10.tree, NULL);\r
+\r
+ }\r
+ break;\r
+\r
+ }\r
+ }\r
+\r
+ \r
+ /* AST REWRITE\r
+ * elements : ID, type\r
+ * token labels : \r
+ * rule labels : retval\r
+ * token list labels : \r
+ * rule list labels : \r
+ */\r
+ {\r
+ pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;\r
+\r
+ stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);\r
+\r
+ root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+ retval.tree = root_0;\r
+ // 105:27: -> ^( TYPE_COMPONENT ID ( type )? )\r
+ {\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:105:30: ^( TYPE_COMPONENT ID ( type )? )\r
+ {\r
+ pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+ root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, TYPE_COMPONENT, (pANTLR3_UINT8)"TYPE_COMPONENT"), root_1));\r
+\r
+ ADAPTOR->addChild(ADAPTOR, root_1, stream_ID == NULL ? NULL : stream_ID->nextNode(stream_ID));\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:105:50: ( type )?\r
+ {\r
+ if ( (stream_type != NULL && stream_type->hasNext(stream_type)) )\r
+ {\r
+ ADAPTOR->addChild(ADAPTOR, root_1, stream_type == NULL ? NULL : stream_type->nextTree(stream_type));\r
+\r
+ }\r
+ if ( stream_type != NULL) stream_type->reset(stream_type);\r
+\r
+ }\r
+\r
+ ADAPTOR->addChild(ADAPTOR, root_0, root_1);\r
+ }\r
+\r
+ }\r
+\r
+ retval.tree = root_0; // set result root\r
+ if (stream_retval != NULL) stream_retval->free(stream_retval);\r
+\r
+\r
+ }\r
+ }\r
+\r
+ }\r
+ \r
+\r
+ // This is where rules clean up and exit\r
+ //\r
+ goto ruleunionComponentEx; /* Prevent compiler warnings */\r
+ ruleunionComponentEx: ;\r
+ retval.stop = LT(-1);\r
+\r
+ retval.stop = LT(-1);\r
+ retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));\r
+ ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);\r
+ if (stream_ID != NULL) stream_ID->free(stream_ID);\r
+ if (stream_type != NULL) stream_type->free(stream_type);\r
+\r
+ if (HASEXCEPTION())\r
+ {\r
+ PREPORTERROR();\r
+ PRECOVER();\r
+ retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));\r
+ }\r
+\r
+\r
+ return retval;\r
+}\r
+/* $ANTLR end unionComponent */\r
+\r
+/** \r
+ * $ANTLR start type\r
+ * C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:107:1: type : ( basicType -> basicType ) ( '[' ( arrayLength )? ']' -> ^( ARRAY_TYPE $type ( arrayLength )? ) )* ;\r
+ */\r
+static SimanticsDataParser_type_return\r
+type(pSimanticsDataParser ctx)\r
+{ \r
+ SimanticsDataParser_type_return retval;\r
+\r
+ pANTLR3_BASE_TREE root_0;\r
+\r
+ pANTLR3_COMMON_TOKEN char_literal12;\r
+ pANTLR3_COMMON_TOKEN char_literal14;\r
+ SimanticsDataParser_basicType_return basicType11;\r
+ #undef RETURN_TYPE_basicType11\r
+ #define RETURN_TYPE_basicType11 SimanticsDataParser_basicType_return\r
+\r
+ SimanticsDataParser_arrayLength_return arrayLength13;\r
+ #undef RETURN_TYPE_arrayLength13\r
+ #define RETURN_TYPE_arrayLength13 SimanticsDataParser_arrayLength_return\r
+\r
+ pANTLR3_BASE_TREE char_literal12_tree;\r
+ pANTLR3_BASE_TREE char_literal14_tree;\r
+ pANTLR3_REWRITE_RULE_TOKEN_STREAM stream_37;\r
+ pANTLR3_REWRITE_RULE_TOKEN_STREAM stream_38;\r
+ pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_arrayLength;\r
+ pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_basicType;\r
+ /* Initialize rule variables\r
+ */\r
+\r
+\r
+ root_0 = NULL;\r
+\r
+ char_literal12 = NULL;\r
+ char_literal14 = NULL;\r
+ basicType11.tree = NULL;\r
+\r
+ arrayLength13.tree = NULL;\r
+\r
+ retval.start = LT(1); retval.stop = retval.start;\r
+\r
+ char_literal12_tree = NULL;\r
+ char_literal14_tree = NULL;\r
+\r
+ stream_37 = NULL;\r
+ #define CREATE_stream_37 if (stream_37 == NULL) {stream_37 = antlr3RewriteRuleTOKENStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token 37"); } \r
+ stream_38 = NULL;\r
+ #define CREATE_stream_38 if (stream_38 == NULL) {stream_38 = antlr3RewriteRuleTOKENStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token 38"); } \r
+ stream_arrayLength = NULL;\r
+ #define CREATE_stream_arrayLength if (stream_arrayLength == NULL) {stream_arrayLength = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule arrayLength"); }\r
+ stream_basicType = NULL;\r
+ #define CREATE_stream_basicType if (stream_basicType == NULL) {stream_basicType = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule basicType"); }\r
+\r
+ retval.tree = NULL;\r
+ {\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:108:5: ( ( basicType -> basicType ) ( '[' ( arrayLength )? ']' -> ^( ARRAY_TYPE $type ( arrayLength )? ) )* )\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:108:7: ( basicType -> basicType ) ( '[' ( arrayLength )? ']' -> ^( ARRAY_TYPE $type ( arrayLength )? ) )*\r
+ {\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:108:7: ( basicType -> basicType )\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:108:8: basicType\r
+ {\r
+ FOLLOWPUSH(FOLLOW_basicType_in_type900);\r
+ basicType11=basicType(ctx);\r
+\r
+ FOLLOWPOP();\r
+ if (HASEXCEPTION())\r
+ {\r
+ goto ruletypeEx;\r
+ }\r
+\r
+ CREATE_stream_basicType; stream_basicType->add(stream_basicType, basicType11.tree, NULL);\r
+\r
+ \r
+ /* AST REWRITE\r
+ * elements : basicType\r
+ * token labels : \r
+ * rule labels : retval\r
+ * token list labels : \r
+ * rule list labels : \r
+ */\r
+ {\r
+ pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;\r
+\r
+ stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);\r
+\r
+ root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+ retval.tree = root_0;\r
+ // 108:18: -> basicType\r
+ {\r
+ ADAPTOR->addChild(ADAPTOR, root_0, stream_basicType == NULL ? NULL : stream_basicType->nextTree(stream_basicType));\r
+\r
+ }\r
+\r
+ retval.tree = root_0; // set result root\r
+ if (stream_retval != NULL) stream_retval->free(stream_retval);\r
+\r
+\r
+ }\r
+ }\r
+\r
+\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:109:7: ( '[' ( arrayLength )? ']' -> ^( ARRAY_TYPE $type ( arrayLength )? ) )*\r
+\r
+ for (;;)\r
+ {\r
+ int alt6=2;\r
+ switch ( LA(1) ) \r
+ {\r
+ case 37:\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:109:8: '[' ( arrayLength )? ']'\r
+ {\r
+ char_literal12 = (pANTLR3_COMMON_TOKEN) MATCHT(37, &FOLLOW_37_in_type914); \r
+ if (HASEXCEPTION())\r
+ {\r
+ goto ruletypeEx;\r
+ }\r
+ \r
+ CREATE_stream_37; stream_37->add(stream_37, char_literal12, NULL);\r
+\r
+\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:109:12: ( arrayLength )?\r
+ {\r
+ int alt5=2;\r
+ switch ( LA(1) ) \r
+ {\r
+ case INT:\r
+ case 39:\r
+ {\r
+ alt5=1;\r
+ }\r
+ break;\r
+ }\r
+\r
+ switch (alt5) \r
+ {\r
+ case 1:\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:109:12: arrayLength\r
+ {\r
+ FOLLOWPUSH(FOLLOW_arrayLength_in_type916);\r
+ arrayLength13=arrayLength(ctx);\r
+\r
+ FOLLOWPOP();\r
+ if (HASEXCEPTION())\r
+ {\r
+ goto ruletypeEx;\r
+ }\r
+\r
+ CREATE_stream_arrayLength; stream_arrayLength->add(stream_arrayLength, arrayLength13.tree, NULL);\r
+\r
+ }\r
+ break;\r
+\r
+ }\r
+ }\r
+ char_literal14 = (pANTLR3_COMMON_TOKEN) MATCHT(38, &FOLLOW_38_in_type919); \r
+ if (HASEXCEPTION())\r
+ {\r
+ goto ruletypeEx;\r
+ }\r
+ \r
+ CREATE_stream_38; stream_38->add(stream_38, char_literal14, NULL);\r
+\r
+\r
+ \r
+ /* AST REWRITE\r
+ * elements : arrayLength, type\r
+ * token labels : \r
+ * rule labels : retval\r
+ * token list labels : \r
+ * rule list labels : \r
+ */\r
+ {\r
+ pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;\r
+\r
+ stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);\r
+\r
+ root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+ retval.tree = root_0;\r
+ // 109:29: -> ^( ARRAY_TYPE $type ( arrayLength )? )\r
+ {\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:109:32: ^( ARRAY_TYPE $type ( arrayLength )? )\r
+ {\r
+ pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+ root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, ARRAY_TYPE, (pANTLR3_UINT8)"ARRAY_TYPE"), root_1));\r
+\r
+ ADAPTOR->addChild(ADAPTOR, root_1, stream_retval == NULL ? NULL : stream_retval->nextTree(stream_retval));\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:109:51: ( arrayLength )?\r
+ {\r
+ if ( (stream_arrayLength != NULL && stream_arrayLength->hasNext(stream_arrayLength)) )\r
+ {\r
+ ADAPTOR->addChild(ADAPTOR, root_1, stream_arrayLength == NULL ? NULL : stream_arrayLength->nextTree(stream_arrayLength));\r
+\r
+ }\r
+ if ( stream_arrayLength != NULL) stream_arrayLength->reset(stream_arrayLength);\r
+\r
+ }\r
+\r
+ ADAPTOR->addChild(ADAPTOR, root_0, root_1);\r
+ }\r
+\r
+ }\r
+\r
+ retval.tree = root_0; // set result root\r
+ if (stream_retval != NULL) stream_retval->free(stream_retval);\r
+\r
+\r
+ }\r
+ }\r
+ break;\r
+\r
+ default:\r
+ goto loop6; /* break out of the loop */\r
+ break;\r
+ }\r
+ }\r
+ loop6: ; /* Jump out to here if this rule does not match */\r
+\r
+\r
+ }\r
+\r
+ }\r
+ \r
+\r
+ // This is where rules clean up and exit\r
+ //\r
+ goto ruletypeEx; /* Prevent compiler warnings */\r
+ ruletypeEx: ;\r
+ retval.stop = LT(-1);\r
+\r
+ retval.stop = LT(-1);\r
+ retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));\r
+ ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);\r
+ if (stream_37 != NULL) stream_37->free(stream_37);\r
+ if (stream_38 != NULL) stream_38->free(stream_38);\r
+ if (stream_arrayLength != NULL) stream_arrayLength->free(stream_arrayLength);\r
+ if (stream_basicType != NULL) stream_basicType->free(stream_basicType);\r
+\r
+ if (HASEXCEPTION())\r
+ {\r
+ PREPORTERROR();\r
+ PRECOVER();\r
+ retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));\r
+ }\r
+\r
+\r
+ return retval;\r
+}\r
+/* $ANTLR end type */\r
+\r
+/** \r
+ * $ANTLR start arrayLength\r
+ * C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:111:1: arrayLength : ( INT | INT '..' | '..' INT | INT '..' INT );\r
+ */\r
+static SimanticsDataParser_arrayLength_return\r
+arrayLength(pSimanticsDataParser ctx)\r
+{ \r
+ SimanticsDataParser_arrayLength_return retval;\r
+\r
+ pANTLR3_BASE_TREE root_0;\r
+\r
+ pANTLR3_COMMON_TOKEN INT15;\r
+ pANTLR3_COMMON_TOKEN INT16;\r
+ pANTLR3_COMMON_TOKEN string_literal17;\r
+ pANTLR3_COMMON_TOKEN string_literal18;\r
+ pANTLR3_COMMON_TOKEN INT19;\r
+ pANTLR3_COMMON_TOKEN INT20;\r
+ pANTLR3_COMMON_TOKEN string_literal21;\r
+ pANTLR3_COMMON_TOKEN INT22;\r
+\r
+ pANTLR3_BASE_TREE INT15_tree;\r
+ pANTLR3_BASE_TREE INT16_tree;\r
+ pANTLR3_BASE_TREE string_literal17_tree;\r
+ pANTLR3_BASE_TREE string_literal18_tree;\r
+ pANTLR3_BASE_TREE INT19_tree;\r
+ pANTLR3_BASE_TREE INT20_tree;\r
+ pANTLR3_BASE_TREE string_literal21_tree;\r
+ pANTLR3_BASE_TREE INT22_tree;\r
+\r
+ /* Initialize rule variables\r
+ */\r
+\r
+\r
+ root_0 = NULL;\r
+\r
+ INT15 = NULL;\r
+ INT16 = NULL;\r
+ string_literal17 = NULL;\r
+ string_literal18 = NULL;\r
+ INT19 = NULL;\r
+ INT20 = NULL;\r
+ string_literal21 = NULL;\r
+ INT22 = NULL;\r
+ retval.start = LT(1); retval.stop = retval.start;\r
+\r
+ INT15_tree = NULL;\r
+ INT16_tree = NULL;\r
+ string_literal17_tree = NULL;\r
+ string_literal18_tree = NULL;\r
+ INT19_tree = NULL;\r
+ INT20_tree = NULL;\r
+ string_literal21_tree = NULL;\r
+ INT22_tree = NULL;\r
+\r
+\r
+ retval.tree = NULL;\r
+ {\r
+ {\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:112:5: ( INT | INT '..' | '..' INT | INT '..' INT )\r
+ \r
+ ANTLR3_UINT32 alt7;\r
+\r
+ alt7=4;\r
+\r
+ switch ( LA(1) ) \r
+ {\r
+ case INT:\r
+ {\r
+ switch ( LA(2) ) \r
+ {\r
+ case 39:\r
+ {\r
+ switch ( LA(3) ) \r
+ {\r
+ case INT:\r
+ {\r
+ alt7=4;\r
+ }\r
+ break;\r
+ case 38:\r
+ {\r
+ alt7=2;\r
+ }\r
+ break;\r
+\r
+ default:\r
+ CONSTRUCTEX();\r
+ EXCEPTION->type = ANTLR3_NO_VIABLE_ALT_EXCEPTION;\r
+ EXCEPTION->message = (void *)"";\r
+ EXCEPTION->decisionNum = 7;\r
+ EXCEPTION->state = 3;\r
+\r
+\r
+ goto rulearrayLengthEx;\r
+ }\r
+\r
+ }\r
+ break;\r
+ case 38:\r
+ {\r
+ alt7=1;\r
+ }\r
+ break;\r
+\r
+ default:\r
+ CONSTRUCTEX();\r
+ EXCEPTION->type = ANTLR3_NO_VIABLE_ALT_EXCEPTION;\r
+ EXCEPTION->message = (void *)"";\r
+ EXCEPTION->decisionNum = 7;\r
+ EXCEPTION->state = 1;\r
+\r
+\r
+ goto rulearrayLengthEx;\r
+ }\r
+\r
+ }\r
+ break;\r
+ case 39:\r
+ {\r
+ alt7=3;\r
+ }\r
+ break;\r
+\r
+ default:\r
+ CONSTRUCTEX();\r
+ EXCEPTION->type = ANTLR3_NO_VIABLE_ALT_EXCEPTION;\r
+ EXCEPTION->message = (void *)"";\r
+ EXCEPTION->decisionNum = 7;\r
+ EXCEPTION->state = 0;\r
+\r
+\r
+ goto rulearrayLengthEx;\r
+ }\r
+\r
+ switch (alt7) \r
+ {\r
+ case 1:\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:112:7: INT\r
+ {\r
+ root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+\r
+ INT15 = (pANTLR3_COMMON_TOKEN) MATCHT(INT, &FOLLOW_INT_in_arrayLength947); \r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulearrayLengthEx;\r
+ }\r
+\r
+ INT15_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, INT15));\r
+ ADAPTOR->addChild(ADAPTOR, root_0, INT15_tree);\r
+\r
+\r
+ }\r
+ break;\r
+ case 2:\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:113:7: INT '..'\r
+ {\r
+ root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+\r
+ INT16 = (pANTLR3_COMMON_TOKEN) MATCHT(INT, &FOLLOW_INT_in_arrayLength955); \r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulearrayLengthEx;\r
+ }\r
+\r
+ INT16_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, INT16));\r
+ ADAPTOR->addChild(ADAPTOR, root_0, INT16_tree);\r
+\r
+ string_literal17 = (pANTLR3_COMMON_TOKEN) MATCHT(39, &FOLLOW_39_in_arrayLength957); \r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulearrayLengthEx;\r
+ }\r
+\r
+ string_literal17_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, string_literal17));\r
+ ADAPTOR->addChild(ADAPTOR, root_0, string_literal17_tree);\r
+\r
+\r
+ }\r
+ break;\r
+ case 3:\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:114:7: '..' INT\r
+ {\r
+ root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+\r
+ string_literal18 = (pANTLR3_COMMON_TOKEN) MATCHT(39, &FOLLOW_39_in_arrayLength965); \r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulearrayLengthEx;\r
+ }\r
+\r
+ string_literal18_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, string_literal18));\r
+ ADAPTOR->addChild(ADAPTOR, root_0, string_literal18_tree);\r
+\r
+ INT19 = (pANTLR3_COMMON_TOKEN) MATCHT(INT, &FOLLOW_INT_in_arrayLength967); \r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulearrayLengthEx;\r
+ }\r
+\r
+ INT19_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, INT19));\r
+ ADAPTOR->addChild(ADAPTOR, root_0, INT19_tree);\r
+\r
+\r
+ }\r
+ break;\r
+ case 4:\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:115:7: INT '..' INT\r
+ {\r
+ root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+\r
+ INT20 = (pANTLR3_COMMON_TOKEN) MATCHT(INT, &FOLLOW_INT_in_arrayLength976); \r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulearrayLengthEx;\r
+ }\r
+\r
+ INT20_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, INT20));\r
+ ADAPTOR->addChild(ADAPTOR, root_0, INT20_tree);\r
+\r
+ string_literal21 = (pANTLR3_COMMON_TOKEN) MATCHT(39, &FOLLOW_39_in_arrayLength978); \r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulearrayLengthEx;\r
+ }\r
+\r
+ string_literal21_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, string_literal21));\r
+ ADAPTOR->addChild(ADAPTOR, root_0, string_literal21_tree);\r
+\r
+ INT22 = (pANTLR3_COMMON_TOKEN) MATCHT(INT, &FOLLOW_INT_in_arrayLength980); \r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulearrayLengthEx;\r
+ }\r
+\r
+ INT22_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, INT22));\r
+ ADAPTOR->addChild(ADAPTOR, root_0, INT22_tree);\r
+\r
+\r
+ }\r
+ break;\r
+\r
+ }\r
+ }\r
+ }\r
+ \r
+\r
+ // This is where rules clean up and exit\r
+ //\r
+ goto rulearrayLengthEx; /* Prevent compiler warnings */\r
+ rulearrayLengthEx: ;\r
+ retval.stop = LT(-1);\r
+\r
+ retval.stop = LT(-1);\r
+ retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));\r
+ ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);\r
+\r
+ if (HASEXCEPTION())\r
+ {\r
+ PREPORTERROR();\r
+ PRECOVER();\r
+ retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));\r
+ }\r
+\r
+\r
+ return retval;\r
+}\r
+/* $ANTLR end arrayLength */\r
+\r
+/** \r
+ * $ANTLR start basicType\r
+ * C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:118:1: basicType : ( tupleType | recordType | typeReference );\r
+ */\r
+static SimanticsDataParser_basicType_return\r
+basicType(pSimanticsDataParser ctx)\r
+{ \r
+ SimanticsDataParser_basicType_return retval;\r
+\r
+ pANTLR3_BASE_TREE root_0;\r
+\r
+ SimanticsDataParser_tupleType_return tupleType23;\r
+ #undef RETURN_TYPE_tupleType23\r
+ #define RETURN_TYPE_tupleType23 SimanticsDataParser_tupleType_return\r
+\r
+ SimanticsDataParser_recordType_return recordType24;\r
+ #undef RETURN_TYPE_recordType24\r
+ #define RETURN_TYPE_recordType24 SimanticsDataParser_recordType_return\r
+\r
+ SimanticsDataParser_typeReference_return typeReference25;\r
+ #undef RETURN_TYPE_typeReference25\r
+ #define RETURN_TYPE_typeReference25 SimanticsDataParser_typeReference_return\r
+\r
+\r
+ /* Initialize rule variables\r
+ */\r
+\r
+\r
+ root_0 = NULL;\r
+\r
+ tupleType23.tree = NULL;\r
+\r
+ recordType24.tree = NULL;\r
+\r
+ typeReference25.tree = NULL;\r
+\r
+ retval.start = LT(1); retval.stop = retval.start;\r
+\r
+\r
+\r
+ retval.tree = NULL;\r
+ {\r
+ {\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:119:5: ( tupleType | recordType | typeReference )\r
+ \r
+ ANTLR3_UINT32 alt8;\r
+\r
+ alt8=3;\r
+\r
+ switch ( LA(1) ) \r
+ {\r
+ case 40:\r
+ {\r
+ alt8=1;\r
+ }\r
+ break;\r
+ case 43:\r
+ {\r
+ alt8=2;\r
+ }\r
+ break;\r
+ case ID:\r
+ {\r
+ alt8=3;\r
+ }\r
+ break;\r
+\r
+ default:\r
+ CONSTRUCTEX();\r
+ EXCEPTION->type = ANTLR3_NO_VIABLE_ALT_EXCEPTION;\r
+ EXCEPTION->message = (void *)"";\r
+ EXCEPTION->decisionNum = 8;\r
+ EXCEPTION->state = 0;\r
+\r
+\r
+ goto rulebasicTypeEx;\r
+ }\r
+\r
+ switch (alt8) \r
+ {\r
+ case 1:\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:119:7: tupleType\r
+ {\r
+ root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+\r
+ FOLLOWPUSH(FOLLOW_tupleType_in_basicType998);\r
+ tupleType23=tupleType(ctx);\r
+\r
+ FOLLOWPOP();\r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulebasicTypeEx;\r
+ }\r
+\r
+ ADAPTOR->addChild(ADAPTOR, root_0, tupleType23.tree);\r
+\r
+ }\r
+ break;\r
+ case 2:\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:120:7: recordType\r
+ {\r
+ root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+\r
+ FOLLOWPUSH(FOLLOW_recordType_in_basicType1006);\r
+ recordType24=recordType(ctx);\r
+\r
+ FOLLOWPOP();\r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulebasicTypeEx;\r
+ }\r
+\r
+ ADAPTOR->addChild(ADAPTOR, root_0, recordType24.tree);\r
+\r
+ }\r
+ break;\r
+ case 3:\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:121:7: typeReference\r
+ {\r
+ root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+\r
+ FOLLOWPUSH(FOLLOW_typeReference_in_basicType1014);\r
+ typeReference25=typeReference(ctx);\r
+\r
+ FOLLOWPOP();\r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulebasicTypeEx;\r
+ }\r
+\r
+ ADAPTOR->addChild(ADAPTOR, root_0, typeReference25.tree);\r
+\r
+ }\r
+ break;\r
+\r
+ }\r
+ }\r
+ }\r
+ \r
+\r
+ // This is where rules clean up and exit\r
+ //\r
+ goto rulebasicTypeEx; /* Prevent compiler warnings */\r
+ rulebasicTypeEx: ;\r
+ retval.stop = LT(-1);\r
+\r
+ retval.stop = LT(-1);\r
+ retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));\r
+ ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);\r
+\r
+ if (HASEXCEPTION())\r
+ {\r
+ PREPORTERROR();\r
+ PRECOVER();\r
+ retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));\r
+ }\r
+\r
+\r
+ return retval;\r
+}\r
+/* $ANTLR end basicType */\r
+\r
+/** \r
+ * $ANTLR start tupleType\r
+ * C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:124:1: tupleType : '(' ( unionType ( ',' unionType )* )? ')' -> ^( TUPLE_TYPE ( unionType )* ) ;\r
+ */\r
+static SimanticsDataParser_tupleType_return\r
+tupleType(pSimanticsDataParser ctx)\r
+{ \r
+ SimanticsDataParser_tupleType_return retval;\r
+\r
+ pANTLR3_BASE_TREE root_0;\r
+\r
+ pANTLR3_COMMON_TOKEN char_literal26;\r
+ pANTLR3_COMMON_TOKEN char_literal28;\r
+ pANTLR3_COMMON_TOKEN char_literal30;\r
+ SimanticsDataParser_unionType_return unionType27;\r
+ #undef RETURN_TYPE_unionType27\r
+ #define RETURN_TYPE_unionType27 SimanticsDataParser_unionType_return\r
+\r
+ SimanticsDataParser_unionType_return unionType29;\r
+ #undef RETURN_TYPE_unionType29\r
+ #define RETURN_TYPE_unionType29 SimanticsDataParser_unionType_return\r
+\r
+ pANTLR3_BASE_TREE char_literal26_tree;\r
+ pANTLR3_BASE_TREE char_literal28_tree;\r
+ pANTLR3_BASE_TREE char_literal30_tree;\r
+ pANTLR3_REWRITE_RULE_TOKEN_STREAM stream_42;\r
+ pANTLR3_REWRITE_RULE_TOKEN_STREAM stream_41;\r
+ pANTLR3_REWRITE_RULE_TOKEN_STREAM stream_40;\r
+ pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_unionType;\r
+ /* Initialize rule variables\r
+ */\r
+\r
+\r
+ root_0 = NULL;\r
+\r
+ char_literal26 = NULL;\r
+ char_literal28 = NULL;\r
+ char_literal30 = NULL;\r
+ unionType27.tree = NULL;\r
+\r
+ unionType29.tree = NULL;\r
+\r
+ retval.start = LT(1); retval.stop = retval.start;\r
+\r
+ char_literal26_tree = NULL;\r
+ char_literal28_tree = NULL;\r
+ char_literal30_tree = NULL;\r
+\r
+ stream_42 = NULL;\r
+ #define CREATE_stream_42 if (stream_42 == NULL) {stream_42 = antlr3RewriteRuleTOKENStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token 42"); } \r
+ stream_41 = NULL;\r
+ #define CREATE_stream_41 if (stream_41 == NULL) {stream_41 = antlr3RewriteRuleTOKENStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token 41"); } \r
+ stream_40 = NULL;\r
+ #define CREATE_stream_40 if (stream_40 == NULL) {stream_40 = antlr3RewriteRuleTOKENStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token 40"); } \r
+ stream_unionType = NULL;\r
+ #define CREATE_stream_unionType if (stream_unionType == NULL) {stream_unionType = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule unionType"); }\r
+\r
+ retval.tree = NULL;\r
+ {\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:125:5: ( '(' ( unionType ( ',' unionType )* )? ')' -> ^( TUPLE_TYPE ( unionType )* ) )\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:125:7: '(' ( unionType ( ',' unionType )* )? ')'\r
+ {\r
+ char_literal26 = (pANTLR3_COMMON_TOKEN) MATCHT(40, &FOLLOW_40_in_tupleType1036); \r
+ if (HASEXCEPTION())\r
+ {\r
+ goto ruletupleTypeEx;\r
+ }\r
+ \r
+ CREATE_stream_40; stream_40->add(stream_40, char_literal26, NULL);\r
+\r
+\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:125:11: ( unionType ( ',' unionType )* )?\r
+ {\r
+ int alt10=2;\r
+ switch ( LA(1) ) \r
+ {\r
+ case ID:\r
+ case 36:\r
+ case 40:\r
+ case 43:\r
+ {\r
+ alt10=1;\r
+ }\r
+ break;\r
+ }\r
+\r
+ switch (alt10) \r
+ {\r
+ case 1:\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:125:12: unionType ( ',' unionType )*\r
+ {\r
+ FOLLOWPUSH(FOLLOW_unionType_in_tupleType1039);\r
+ unionType27=unionType(ctx);\r
+\r
+ FOLLOWPOP();\r
+ if (HASEXCEPTION())\r
+ {\r
+ goto ruletupleTypeEx;\r
+ }\r
+\r
+ CREATE_stream_unionType; stream_unionType->add(stream_unionType, unionType27.tree, NULL);\r
+\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:125:22: ( ',' unionType )*\r
+\r
+ for (;;)\r
+ {\r
+ int alt9=2;\r
+ switch ( LA(1) ) \r
+ {\r
+ case 41:\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:125:23: ',' unionType\r
+ {\r
+ char_literal28 = (pANTLR3_COMMON_TOKEN) MATCHT(41, &FOLLOW_41_in_tupleType1042); \r
+ if (HASEXCEPTION())\r
+ {\r
+ goto ruletupleTypeEx;\r
+ }\r
+ \r
+ CREATE_stream_41; stream_41->add(stream_41, char_literal28, NULL);\r
+\r
+ FOLLOWPUSH(FOLLOW_unionType_in_tupleType1044);\r
+ unionType29=unionType(ctx);\r
+\r
+ FOLLOWPOP();\r
+ if (HASEXCEPTION())\r
+ {\r
+ goto ruletupleTypeEx;\r
+ }\r
+\r
+ CREATE_stream_unionType; stream_unionType->add(stream_unionType, unionType29.tree, NULL);\r
+\r
+ }\r
+ break;\r
+\r
+ default:\r
+ goto loop9; /* break out of the loop */\r
+ break;\r
+ }\r
+ }\r
+ loop9: ; /* Jump out to here if this rule does not match */\r
+\r
+\r
+ }\r
+ break;\r
+\r
+ }\r
+ }\r
+ char_literal30 = (pANTLR3_COMMON_TOKEN) MATCHT(42, &FOLLOW_42_in_tupleType1050); \r
+ if (HASEXCEPTION())\r
+ {\r
+ goto ruletupleTypeEx;\r
+ }\r
+ \r
+ CREATE_stream_42; stream_42->add(stream_42, char_literal30, NULL);\r
+\r
+\r
+ \r
+ /* AST REWRITE\r
+ * elements : unionType\r
+ * token labels : \r
+ * rule labels : retval\r
+ * token list labels : \r
+ * rule list labels : \r
+ */\r
+ {\r
+ pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;\r
+\r
+ stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);\r
+\r
+ root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+ retval.tree = root_0;\r
+ // 126:5: -> ^( TUPLE_TYPE ( unionType )* )\r
+ {\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:126:8: ^( TUPLE_TYPE ( unionType )* )\r
+ {\r
+ pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+ root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, TUPLE_TYPE, (pANTLR3_UINT8)"TUPLE_TYPE"), root_1));\r
+\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:126:21: ( unionType )*\r
+ {\r
+ while ( (stream_unionType != NULL && stream_unionType->hasNext(stream_unionType)) )\r
+ {\r
+ ADAPTOR->addChild(ADAPTOR, root_1, stream_unionType == NULL ? NULL : stream_unionType->nextTree(stream_unionType));\r
+\r
+ }\r
+ if (stream_unionType != NULL) stream_unionType->reset(stream_unionType);\r
+\r
+ }\r
+\r
+ ADAPTOR->addChild(ADAPTOR, root_0, root_1);\r
+ }\r
+\r
+ }\r
+\r
+ retval.tree = root_0; // set result root\r
+ if (stream_retval != NULL) stream_retval->free(stream_retval);\r
+\r
+\r
+ }\r
+ }\r
+\r
+ }\r
+ \r
+\r
+ // This is where rules clean up and exit\r
+ //\r
+ goto ruletupleTypeEx; /* Prevent compiler warnings */\r
+ ruletupleTypeEx: ;\r
+ retval.stop = LT(-1);\r
+\r
+ retval.stop = LT(-1);\r
+ retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));\r
+ ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);\r
+ if (stream_42 != NULL) stream_42->free(stream_42);\r
+ if (stream_41 != NULL) stream_41->free(stream_41);\r
+ if (stream_40 != NULL) stream_40->free(stream_40);\r
+ if (stream_unionType != NULL) stream_unionType->free(stream_unionType);\r
+\r
+ if (HASEXCEPTION())\r
+ {\r
+ PREPORTERROR();\r
+ PRECOVER();\r
+ retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));\r
+ }\r
+\r
+\r
+ return retval;\r
+}\r
+/* $ANTLR end tupleType */\r
+\r
+/** \r
+ * $ANTLR start recordType\r
+ * C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:129:1: recordType : '{' ( component ( ',' component )* )? '}' -> ^( RECORD_TYPE ( component )* ) ;\r
+ */\r
+static SimanticsDataParser_recordType_return\r
+recordType(pSimanticsDataParser ctx)\r
+{ \r
+ SimanticsDataParser_recordType_return retval;\r
+\r
+ pANTLR3_BASE_TREE root_0;\r
+\r
+ pANTLR3_COMMON_TOKEN char_literal31;\r
+ pANTLR3_COMMON_TOKEN char_literal33;\r
+ pANTLR3_COMMON_TOKEN char_literal35;\r
+ SimanticsDataParser_component_return component32;\r
+ #undef RETURN_TYPE_component32\r
+ #define RETURN_TYPE_component32 SimanticsDataParser_component_return\r
+\r
+ SimanticsDataParser_component_return component34;\r
+ #undef RETURN_TYPE_component34\r
+ #define RETURN_TYPE_component34 SimanticsDataParser_component_return\r
+\r
+ pANTLR3_BASE_TREE char_literal31_tree;\r
+ pANTLR3_BASE_TREE char_literal33_tree;\r
+ pANTLR3_BASE_TREE char_literal35_tree;\r
+ pANTLR3_REWRITE_RULE_TOKEN_STREAM stream_43;\r
+ pANTLR3_REWRITE_RULE_TOKEN_STREAM stream_44;\r
+ pANTLR3_REWRITE_RULE_TOKEN_STREAM stream_41;\r
+ pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_component;\r
+ /* Initialize rule variables\r
+ */\r
+\r
+\r
+ root_0 = NULL;\r
+\r
+ char_literal31 = NULL;\r
+ char_literal33 = NULL;\r
+ char_literal35 = NULL;\r
+ component32.tree = NULL;\r
+\r
+ component34.tree = NULL;\r
+\r
+ retval.start = LT(1); retval.stop = retval.start;\r
+\r
+ char_literal31_tree = NULL;\r
+ char_literal33_tree = NULL;\r
+ char_literal35_tree = NULL;\r
+\r
+ stream_43 = NULL;\r
+ #define CREATE_stream_43 if (stream_43 == NULL) {stream_43 = antlr3RewriteRuleTOKENStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token 43"); } \r
+ stream_44 = NULL;\r
+ #define CREATE_stream_44 if (stream_44 == NULL) {stream_44 = antlr3RewriteRuleTOKENStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token 44"); } \r
+ stream_41 = NULL;\r
+ #define CREATE_stream_41 if (stream_41 == NULL) {stream_41 = antlr3RewriteRuleTOKENStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token 41"); } \r
+ stream_component = NULL;\r
+ #define CREATE_stream_component if (stream_component == NULL) {stream_component = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule component"); }\r
+\r
+ retval.tree = NULL;\r
+ {\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:130:5: ( '{' ( component ( ',' component )* )? '}' -> ^( RECORD_TYPE ( component )* ) )\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:130:7: '{' ( component ( ',' component )* )? '}'\r
+ {\r
+ char_literal31 = (pANTLR3_COMMON_TOKEN) MATCHT(43, &FOLLOW_43_in_recordType1083); \r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulerecordTypeEx;\r
+ }\r
+ \r
+ CREATE_stream_43; stream_43->add(stream_43, char_literal31, NULL);\r
+\r
+\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:130:11: ( component ( ',' component )* )?\r
+ {\r
+ int alt12=2;\r
+ switch ( LA(1) ) \r
+ {\r
+ case ID:\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:130:12: component ( ',' component )*\r
+ {\r
+ FOLLOWPUSH(FOLLOW_component_in_recordType1086);\r
+ component32=component(ctx);\r
+\r
+ FOLLOWPOP();\r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulerecordTypeEx;\r
+ }\r
+\r
+ CREATE_stream_component; stream_component->add(stream_component, component32.tree, NULL);\r
+\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:130:22: ( ',' component )*\r
+\r
+ for (;;)\r
+ {\r
+ int alt11=2;\r
+ switch ( LA(1) ) \r
+ {\r
+ case 41:\r
+ {\r
+ alt11=1;\r
+ }\r
+ break;\r
+\r
+ }\r
+\r
+ switch (alt11) \r
+ {\r
+ case 1:\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:130:23: ',' component\r
+ {\r
+ char_literal33 = (pANTLR3_COMMON_TOKEN) MATCHT(41, &FOLLOW_41_in_recordType1089); \r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulerecordTypeEx;\r
+ }\r
+ \r
+ CREATE_stream_41; stream_41->add(stream_41, char_literal33, NULL);\r
+\r
+ FOLLOWPUSH(FOLLOW_component_in_recordType1091);\r
+ component34=component(ctx);\r
+\r
+ FOLLOWPOP();\r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulerecordTypeEx;\r
+ }\r
+\r
+ CREATE_stream_component; stream_component->add(stream_component, component34.tree, NULL);\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
+ }\r
+ break;\r
+\r
+ }\r
+ }\r
+ char_literal35 = (pANTLR3_COMMON_TOKEN) MATCHT(44, &FOLLOW_44_in_recordType1097); \r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulerecordTypeEx;\r
+ }\r
+ \r
+ CREATE_stream_44; stream_44->add(stream_44, char_literal35, NULL);\r
+\r
+\r
+ \r
+ /* AST REWRITE\r
+ * elements : component\r
+ * token labels : \r
+ * rule labels : retval\r
+ * token list labels : \r
+ * rule list labels : \r
+ */\r
+ {\r
+ pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;\r
+\r
+ stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);\r
+\r
+ root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+ retval.tree = root_0;\r
+ // 131:5: -> ^( RECORD_TYPE ( component )* )\r
+ {\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:131:8: ^( RECORD_TYPE ( component )* )\r
+ {\r
+ pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+ root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, RECORD_TYPE, (pANTLR3_UINT8)"RECORD_TYPE"), root_1));\r
+\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:131:22: ( component )*\r
+ {\r
+ while ( (stream_component != NULL && stream_component->hasNext(stream_component)) )\r
+ {\r
+ ADAPTOR->addChild(ADAPTOR, root_1, stream_component == NULL ? NULL : stream_component->nextTree(stream_component));\r
+\r
+ }\r
+ if (stream_component != NULL) stream_component->reset(stream_component);\r
+\r
+ }\r
+\r
+ ADAPTOR->addChild(ADAPTOR, root_0, root_1);\r
+ }\r
+\r
+ }\r
+\r
+ retval.tree = root_0; // set result root\r
+ if (stream_retval != NULL) stream_retval->free(stream_retval);\r
+\r
+\r
+ }\r
+ }\r
+\r
+ }\r
+ \r
+\r
+ // This is where rules clean up and exit\r
+ //\r
+ goto rulerecordTypeEx; /* Prevent compiler warnings */\r
+ rulerecordTypeEx: ;\r
+ retval.stop = LT(-1);\r
+\r
+ retval.stop = LT(-1);\r
+ retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));\r
+ ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);\r
+ if (stream_43 != NULL) stream_43->free(stream_43);\r
+ if (stream_44 != NULL) stream_44->free(stream_44);\r
+ if (stream_41 != NULL) stream_41->free(stream_41);\r
+ if (stream_component != NULL) stream_component->free(stream_component);\r
+\r
+ if (HASEXCEPTION())\r
+ {\r
+ PREPORTERROR();\r
+ PRECOVER();\r
+ retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));\r
+ }\r
+\r
+\r
+ return retval;\r
+}\r
+/* $ANTLR end recordType */\r
+\r
+/** \r
+ * $ANTLR start component\r
+ * C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:134:1: component : ID ':' unionType -> ^( TYPE_COMPONENT ID unionType ) ;\r
+ */\r
+static SimanticsDataParser_component_return\r
+component(pSimanticsDataParser ctx)\r
+{ \r
+ SimanticsDataParser_component_return retval;\r
+\r
+ pANTLR3_BASE_TREE root_0;\r
+\r
+ pANTLR3_COMMON_TOKEN ID36;\r
+ pANTLR3_COMMON_TOKEN char_literal37;\r
+ SimanticsDataParser_unionType_return unionType38;\r
+ #undef RETURN_TYPE_unionType38\r
+ #define RETURN_TYPE_unionType38 SimanticsDataParser_unionType_return\r
+\r
+ pANTLR3_BASE_TREE ID36_tree;\r
+ pANTLR3_BASE_TREE char_literal37_tree;\r
+ pANTLR3_REWRITE_RULE_TOKEN_STREAM stream_45;\r
+ pANTLR3_REWRITE_RULE_TOKEN_STREAM stream_ID;\r
+ pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_unionType;\r
+ /* Initialize rule variables\r
+ */\r
+\r
+\r
+ root_0 = NULL;\r
+\r
+ ID36 = NULL;\r
+ char_literal37 = NULL;\r
+ unionType38.tree = NULL;\r
+\r
+ retval.start = LT(1); retval.stop = retval.start;\r
+\r
+ ID36_tree = NULL;\r
+ char_literal37_tree = NULL;\r
+\r
+ stream_45 = NULL;\r
+ #define CREATE_stream_45 if (stream_45 == NULL) {stream_45 = antlr3RewriteRuleTOKENStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token 45"); } \r
+ stream_ID = NULL;\r
+ #define CREATE_stream_ID if (stream_ID == NULL) {stream_ID = antlr3RewriteRuleTOKENStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token ID"); } \r
+ stream_unionType = NULL;\r
+ #define CREATE_stream_unionType if (stream_unionType == NULL) {stream_unionType = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule unionType"); }\r
+\r
+ retval.tree = NULL;\r
+ {\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:135:5: ( ID ':' unionType -> ^( TYPE_COMPONENT ID unionType ) )\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:135:7: ID ':' unionType\r
+ {\r
+ ID36 = (pANTLR3_COMMON_TOKEN) MATCHT(ID, &FOLLOW_ID_in_component1129); \r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulecomponentEx;\r
+ }\r
+ \r
+ CREATE_stream_ID; stream_ID->add(stream_ID, ID36, NULL);\r
+\r
+ char_literal37 = (pANTLR3_COMMON_TOKEN) MATCHT(45, &FOLLOW_45_in_component1131); \r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulecomponentEx;\r
+ }\r
+ \r
+ CREATE_stream_45; stream_45->add(stream_45, char_literal37, NULL);\r
+\r
+ FOLLOWPUSH(FOLLOW_unionType_in_component1133);\r
+ unionType38=unionType(ctx);\r
+\r
+ FOLLOWPOP();\r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulecomponentEx;\r
+ }\r
+\r
+ CREATE_stream_unionType; stream_unionType->add(stream_unionType, unionType38.tree, NULL);\r
+\r
+ \r
+ /* AST REWRITE\r
+ * elements : ID, unionType\r
+ * token labels : \r
+ * rule labels : retval\r
+ * token list labels : \r
+ * rule list labels : \r
+ */\r
+ {\r
+ pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;\r
+\r
+ stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);\r
+\r
+ root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+ retval.tree = root_0;\r
+ // 136:5: -> ^( TYPE_COMPONENT ID unionType )\r
+ {\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:136:8: ^( TYPE_COMPONENT ID unionType )\r
+ {\r
+ pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+ root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, TYPE_COMPONENT, (pANTLR3_UINT8)"TYPE_COMPONENT"), root_1));\r
+\r
+ ADAPTOR->addChild(ADAPTOR, root_1, stream_ID == NULL ? NULL : stream_ID->nextNode(stream_ID));\r
+ ADAPTOR->addChild(ADAPTOR, root_1, stream_unionType == NULL ? NULL : stream_unionType->nextTree(stream_unionType));\r
+\r
+ ADAPTOR->addChild(ADAPTOR, root_0, root_1);\r
+ }\r
+\r
+ }\r
+\r
+ retval.tree = root_0; // set result root\r
+ if (stream_retval != NULL) stream_retval->free(stream_retval);\r
+\r
+\r
+ }\r
+ }\r
+\r
+ }\r
+ \r
+\r
+ // This is where rules clean up and exit\r
+ //\r
+ goto rulecomponentEx; /* Prevent compiler warnings */\r
+ rulecomponentEx: ;\r
+ retval.stop = LT(-1);\r
+\r
+ retval.stop = LT(-1);\r
+ retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));\r
+ ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);\r
+ if (stream_45 != NULL) stream_45->free(stream_45);\r
+ if (stream_ID != NULL) stream_ID->free(stream_ID);\r
+ if (stream_unionType != NULL) stream_unionType->free(stream_unionType);\r
+\r
+ if (HASEXCEPTION())\r
+ {\r
+ PREPORTERROR();\r
+ PRECOVER();\r
+ retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));\r
+ }\r
+\r
+\r
+ return retval;\r
+}\r
+/* $ANTLR end component */\r
+\r
+/** \r
+ * $ANTLR start typeReference\r
+ * C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:139:1: typeReference : ID ( '(' parameter ( ',' parameter )* ')' )? -> ^( TYPE_REFERENCE ID ( parameter )* ) ;\r
+ */\r
+static SimanticsDataParser_typeReference_return\r
+typeReference(pSimanticsDataParser ctx)\r
+{ \r
+ SimanticsDataParser_typeReference_return retval;\r
+\r
+ pANTLR3_BASE_TREE root_0;\r
+\r
+ pANTLR3_COMMON_TOKEN ID39;\r
+ pANTLR3_COMMON_TOKEN char_literal40;\r
+ pANTLR3_COMMON_TOKEN char_literal42;\r
+ pANTLR3_COMMON_TOKEN char_literal44;\r
+ SimanticsDataParser_parameter_return parameter41;\r
+ #undef RETURN_TYPE_parameter41\r
+ #define RETURN_TYPE_parameter41 SimanticsDataParser_parameter_return\r
+\r
+ SimanticsDataParser_parameter_return parameter43;\r
+ #undef RETURN_TYPE_parameter43\r
+ #define RETURN_TYPE_parameter43 SimanticsDataParser_parameter_return\r
+\r
+ pANTLR3_BASE_TREE ID39_tree;\r
+ pANTLR3_BASE_TREE char_literal40_tree;\r
+ pANTLR3_BASE_TREE char_literal42_tree;\r
+ pANTLR3_BASE_TREE char_literal44_tree;\r
+ pANTLR3_REWRITE_RULE_TOKEN_STREAM stream_42;\r
+ pANTLR3_REWRITE_RULE_TOKEN_STREAM stream_41;\r
+ pANTLR3_REWRITE_RULE_TOKEN_STREAM stream_40;\r
+ pANTLR3_REWRITE_RULE_TOKEN_STREAM stream_ID;\r
+ pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_parameter;\r
+ /* Initialize rule variables\r
+ */\r
+\r
+\r
+ root_0 = NULL;\r
+\r
+ ID39 = NULL;\r
+ char_literal40 = NULL;\r
+ char_literal42 = NULL;\r
+ char_literal44 = NULL;\r
+ parameter41.tree = NULL;\r
+\r
+ parameter43.tree = NULL;\r
+\r
+ retval.start = LT(1); retval.stop = retval.start;\r
+\r
+ ID39_tree = NULL;\r
+ char_literal40_tree = NULL;\r
+ char_literal42_tree = NULL;\r
+ char_literal44_tree = NULL;\r
+\r
+ stream_42 = NULL;\r
+ #define CREATE_stream_42 if (stream_42 == NULL) {stream_42 = antlr3RewriteRuleTOKENStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token 42"); } \r
+ stream_41 = NULL;\r
+ #define CREATE_stream_41 if (stream_41 == NULL) {stream_41 = antlr3RewriteRuleTOKENStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token 41"); } \r
+ stream_40 = NULL;\r
+ #define CREATE_stream_40 if (stream_40 == NULL) {stream_40 = antlr3RewriteRuleTOKENStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token 40"); } \r
+ stream_ID = NULL;\r
+ #define CREATE_stream_ID if (stream_ID == NULL) {stream_ID = antlr3RewriteRuleTOKENStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token ID"); } \r
+ stream_parameter = NULL;\r
+ #define CREATE_stream_parameter if (stream_parameter == NULL) {stream_parameter = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule parameter"); }\r
+\r
+ retval.tree = NULL;\r
+ {\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:140:5: ( ID ( '(' parameter ( ',' parameter )* ')' )? -> ^( TYPE_REFERENCE ID ( parameter )* ) )\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:140:7: ID ( '(' parameter ( ',' parameter )* ')' )?\r
+ {\r
+ ID39 = (pANTLR3_COMMON_TOKEN) MATCHT(ID, &FOLLOW_ID_in_typeReference1167); \r
+ if (HASEXCEPTION())\r
+ {\r
+ goto ruletypeReferenceEx;\r
+ }\r
+ \r
+ CREATE_stream_ID; stream_ID->add(stream_ID, ID39, NULL);\r
+\r
+\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:140:10: ( '(' parameter ( ',' parameter )* ')' )?\r
+ {\r
+ int alt14=2;\r
+ switch ( LA(1) ) \r
+ {\r
+ case 40:\r
+ {\r
+ alt14=1;\r
+ }\r
+ break;\r
+ }\r
+\r
+ switch (alt14) \r
+ {\r
+ case 1:\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:140:11: '(' parameter ( ',' parameter )* ')'\r
+ {\r
+ char_literal40 = (pANTLR3_COMMON_TOKEN) MATCHT(40, &FOLLOW_40_in_typeReference1170); \r
+ if (HASEXCEPTION())\r
+ {\r
+ goto ruletypeReferenceEx;\r
+ }\r
+ \r
+ CREATE_stream_40; stream_40->add(stream_40, char_literal40, NULL);\r
+\r
+ FOLLOWPUSH(FOLLOW_parameter_in_typeReference1172);\r
+ parameter41=parameter(ctx);\r
+\r
+ FOLLOWPOP();\r
+ if (HASEXCEPTION())\r
+ {\r
+ goto ruletypeReferenceEx;\r
+ }\r
+\r
+ CREATE_stream_parameter; stream_parameter->add(stream_parameter, parameter41.tree, NULL);\r
+\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:140:25: ( ',' parameter )*\r
+\r
+ for (;;)\r
+ {\r
+ int alt13=2;\r
+ switch ( LA(1) ) \r
+ {\r
+ case 41:\r
+ {\r
+ alt13=1;\r
+ }\r
+ break;\r
+\r
+ }\r
+\r
+ switch (alt13) \r
+ {\r
+ case 1:\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:140:26: ',' parameter\r
+ {\r
+ char_literal42 = (pANTLR3_COMMON_TOKEN) MATCHT(41, &FOLLOW_41_in_typeReference1175); \r
+ if (HASEXCEPTION())\r
+ {\r
+ goto ruletypeReferenceEx;\r
+ }\r
+ \r
+ CREATE_stream_41; stream_41->add(stream_41, char_literal42, NULL);\r
+\r
+ FOLLOWPUSH(FOLLOW_parameter_in_typeReference1177);\r
+ parameter43=parameter(ctx);\r
+\r
+ FOLLOWPOP();\r
+ if (HASEXCEPTION())\r
+ {\r
+ goto ruletypeReferenceEx;\r
+ }\r
+\r
+ CREATE_stream_parameter; stream_parameter->add(stream_parameter, parameter43.tree, NULL);\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
+ char_literal44 = (pANTLR3_COMMON_TOKEN) MATCHT(42, &FOLLOW_42_in_typeReference1181); \r
+ if (HASEXCEPTION())\r
+ {\r
+ goto ruletypeReferenceEx;\r
+ }\r
+ \r
+ CREATE_stream_42; stream_42->add(stream_42, char_literal44, NULL);\r
+\r
+\r
+ }\r
+ break;\r
+\r
+ }\r
+ }\r
+\r
+ \r
+ /* AST REWRITE\r
+ * elements : ID, parameter\r
+ * token labels : \r
+ * rule labels : retval\r
+ * token list labels : \r
+ * rule list labels : \r
+ */\r
+ {\r
+ pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;\r
+\r
+ stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);\r
+\r
+ root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+ retval.tree = root_0;\r
+ // 141:5: -> ^( TYPE_REFERENCE ID ( parameter )* )\r
+ {\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:141:8: ^( TYPE_REFERENCE ID ( parameter )* )\r
+ {\r
+ pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+ root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, TYPE_REFERENCE, (pANTLR3_UINT8)"TYPE_REFERENCE"), root_1));\r
+\r
+ ADAPTOR->addChild(ADAPTOR, root_1, stream_ID == NULL ? NULL : stream_ID->nextNode(stream_ID));\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:141:28: ( parameter )*\r
+ {\r
+ while ( (stream_parameter != NULL && stream_parameter->hasNext(stream_parameter)) )\r
+ {\r
+ ADAPTOR->addChild(ADAPTOR, root_1, stream_parameter == NULL ? NULL : stream_parameter->nextTree(stream_parameter));\r
+\r
+ }\r
+ if (stream_parameter != NULL) stream_parameter->reset(stream_parameter);\r
+\r
+ }\r
+\r
+ ADAPTOR->addChild(ADAPTOR, root_0, root_1);\r
+ }\r
+\r
+ }\r
+\r
+ retval.tree = root_0; // set result root\r
+ if (stream_retval != NULL) stream_retval->free(stream_retval);\r
+\r
+\r
+ }\r
+ }\r
+\r
+ }\r
+ \r
+\r
+ // This is where rules clean up and exit\r
+ //\r
+ goto ruletypeReferenceEx; /* Prevent compiler warnings */\r
+ ruletypeReferenceEx: ;\r
+ retval.stop = LT(-1);\r
+\r
+ retval.stop = LT(-1);\r
+ retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));\r
+ ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);\r
+ if (stream_42 != NULL) stream_42->free(stream_42);\r
+ if (stream_41 != NULL) stream_41->free(stream_41);\r
+ if (stream_40 != NULL) stream_40->free(stream_40);\r
+ if (stream_ID != NULL) stream_ID->free(stream_ID);\r
+ if (stream_parameter != NULL) stream_parameter->free(stream_parameter);\r
+\r
+ if (HASEXCEPTION())\r
+ {\r
+ PREPORTERROR();\r
+ PRECOVER();\r
+ retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));\r
+ }\r
+\r
+\r
+ return retval;\r
+}\r
+/* $ANTLR end typeReference */\r
+\r
+/** \r
+ * $ANTLR start parameter\r
+ * C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:144:1: parameter : ( ID '=' parameterValue -> ^( TYPE_ANNOTATION ID parameterValue ) | unionType );\r
+ */\r
+static SimanticsDataParser_parameter_return\r
+parameter(pSimanticsDataParser ctx)\r
+{ \r
+ SimanticsDataParser_parameter_return retval;\r
+\r
+ pANTLR3_BASE_TREE root_0;\r
+\r
+ pANTLR3_COMMON_TOKEN ID45;\r
+ pANTLR3_COMMON_TOKEN char_literal46;\r
+ SimanticsDataParser_parameterValue_return parameterValue47;\r
+ #undef RETURN_TYPE_parameterValue47\r
+ #define RETURN_TYPE_parameterValue47 SimanticsDataParser_parameterValue_return\r
+\r
+ SimanticsDataParser_unionType_return unionType48;\r
+ #undef RETURN_TYPE_unionType48\r
+ #define RETURN_TYPE_unionType48 SimanticsDataParser_unionType_return\r
+\r
+ pANTLR3_BASE_TREE ID45_tree;\r
+ pANTLR3_BASE_TREE char_literal46_tree;\r
+ pANTLR3_REWRITE_RULE_TOKEN_STREAM stream_ID;\r
+ pANTLR3_REWRITE_RULE_TOKEN_STREAM stream_35;\r
+ pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_parameterValue;\r
+ /* Initialize rule variables\r
+ */\r
+\r
+\r
+ root_0 = NULL;\r
+\r
+ ID45 = NULL;\r
+ char_literal46 = NULL;\r
+ parameterValue47.tree = NULL;\r
+\r
+ unionType48.tree = NULL;\r
+\r
+ retval.start = LT(1); retval.stop = retval.start;\r
+\r
+ ID45_tree = NULL;\r
+ char_literal46_tree = NULL;\r
+\r
+ stream_ID = NULL;\r
+ #define CREATE_stream_ID if (stream_ID == NULL) {stream_ID = antlr3RewriteRuleTOKENStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token ID"); } \r
+ stream_35 = NULL;\r
+ #define CREATE_stream_35 if (stream_35 == NULL) {stream_35 = antlr3RewriteRuleTOKENStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token 35"); } \r
+ stream_parameterValue = NULL;\r
+ #define CREATE_stream_parameterValue if (stream_parameterValue == NULL) {stream_parameterValue = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule parameterValue"); }\r
+\r
+ retval.tree = NULL;\r
+ {\r
+ {\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:145:5: ( ID '=' parameterValue -> ^( TYPE_ANNOTATION ID parameterValue ) | unionType )\r
+ \r
+ ANTLR3_UINT32 alt15;\r
+\r
+ alt15=2;\r
+\r
+ switch ( LA(1) ) \r
+ {\r
+ case ID:\r
+ {\r
+ switch ( LA(2) ) \r
+ {\r
+ case 35:\r
+ {\r
+ alt15=1;\r
+ }\r
+ break;\r
+ case 37:\r
+ case 40:\r
+ case 41:\r
+ case 42:\r
+ {\r
+ alt15=2;\r
+ }\r
+ break;\r
+\r
+ default:\r
+ CONSTRUCTEX();\r
+ EXCEPTION->type = ANTLR3_NO_VIABLE_ALT_EXCEPTION;\r
+ EXCEPTION->message = (void *)"";\r
+ EXCEPTION->decisionNum = 15;\r
+ EXCEPTION->state = 1;\r
+\r
+\r
+ goto ruleparameterEx;\r
+ }\r
+\r
+ }\r
+ break;\r
+ case 36:\r
+ case 40:\r
+ case 43:\r
+ {\r
+ alt15=2;\r
+ }\r
+ break;\r
+\r
+ default:\r
+ CONSTRUCTEX();\r
+ EXCEPTION->type = ANTLR3_NO_VIABLE_ALT_EXCEPTION;\r
+ EXCEPTION->message = (void *)"";\r
+ EXCEPTION->decisionNum = 15;\r
+ EXCEPTION->state = 0;\r
+\r
+\r
+ goto ruleparameterEx;\r
+ }\r
+\r
+ switch (alt15) \r
+ {\r
+ case 1:\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:145:7: ID '=' parameterValue\r
+ {\r
+ ID45 = (pANTLR3_COMMON_TOKEN) MATCHT(ID, &FOLLOW_ID_in_parameter1217); \r
+ if (HASEXCEPTION())\r
+ {\r
+ goto ruleparameterEx;\r
+ }\r
+ \r
+ CREATE_stream_ID; stream_ID->add(stream_ID, ID45, NULL);\r
+\r
+ char_literal46 = (pANTLR3_COMMON_TOKEN) MATCHT(35, &FOLLOW_35_in_parameter1219); \r
+ if (HASEXCEPTION())\r
+ {\r
+ goto ruleparameterEx;\r
+ }\r
+ \r
+ CREATE_stream_35; stream_35->add(stream_35, char_literal46, NULL);\r
+\r
+ FOLLOWPUSH(FOLLOW_parameterValue_in_parameter1221);\r
+ parameterValue47=parameterValue(ctx);\r
+\r
+ FOLLOWPOP();\r
+ if (HASEXCEPTION())\r
+ {\r
+ goto ruleparameterEx;\r
+ }\r
+\r
+ CREATE_stream_parameterValue; stream_parameterValue->add(stream_parameterValue, parameterValue47.tree, NULL);\r
+\r
+ \r
+ /* AST REWRITE\r
+ * elements : ID, parameterValue\r
+ * token labels : \r
+ * rule labels : retval\r
+ * token list labels : \r
+ * rule list labels : \r
+ */\r
+ {\r
+ pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;\r
+\r
+ stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);\r
+\r
+ root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+ retval.tree = root_0;\r
+ // 145:29: -> ^( TYPE_ANNOTATION ID parameterValue )\r
+ {\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:145:32: ^( TYPE_ANNOTATION ID parameterValue )\r
+ {\r
+ pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+ root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, TYPE_ANNOTATION, (pANTLR3_UINT8)"TYPE_ANNOTATION"), root_1));\r
+\r
+ ADAPTOR->addChild(ADAPTOR, root_1, stream_ID == NULL ? NULL : stream_ID->nextNode(stream_ID));\r
+ ADAPTOR->addChild(ADAPTOR, root_1, stream_parameterValue == NULL ? NULL : stream_parameterValue->nextTree(stream_parameterValue));\r
+\r
+ ADAPTOR->addChild(ADAPTOR, root_0, root_1);\r
+ }\r
+\r
+ }\r
+\r
+ retval.tree = root_0; // set result root\r
+ if (stream_retval != NULL) stream_retval->free(stream_retval);\r
+\r
+\r
+ }\r
+ }\r
+ break;\r
+ case 2:\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:146:7: unionType\r
+ {\r
+ root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+\r
+ FOLLOWPUSH(FOLLOW_unionType_in_parameter1239);\r
+ unionType48=unionType(ctx);\r
+\r
+ FOLLOWPOP();\r
+ if (HASEXCEPTION())\r
+ {\r
+ goto ruleparameterEx;\r
+ }\r
+\r
+ ADAPTOR->addChild(ADAPTOR, root_0, unionType48.tree);\r
+\r
+ }\r
+ break;\r
+\r
+ }\r
+ }\r
+ }\r
+ \r
+\r
+ // This is where rules clean up and exit\r
+ //\r
+ goto ruleparameterEx; /* Prevent compiler warnings */\r
+ ruleparameterEx: ;\r
+ retval.stop = LT(-1);\r
+\r
+ retval.stop = LT(-1);\r
+ retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));\r
+ ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);\r
+ if (stream_ID != NULL) stream_ID->free(stream_ID);\r
+ if (stream_35 != NULL) stream_35->free(stream_35);\r
+ if (stream_parameterValue != NULL) stream_parameterValue->free(stream_parameterValue);\r
+\r
+ if (HASEXCEPTION())\r
+ {\r
+ PREPORTERROR();\r
+ PRECOVER();\r
+ retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));\r
+ }\r
+\r
+\r
+ return retval;\r
+}\r
+/* $ANTLR end parameter */\r
+\r
+/** \r
+ * $ANTLR start parameterValue\r
+ * C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:149:1: parameterValue : ( string | boolean | number | ( '[' | '(' ) range ( ']' | ')' ) );\r
+ */\r
+static SimanticsDataParser_parameterValue_return\r
+parameterValue(pSimanticsDataParser ctx)\r
+{ \r
+ SimanticsDataParser_parameterValue_return retval;\r
+\r
+ pANTLR3_BASE_TREE root_0;\r
+\r
+ pANTLR3_COMMON_TOKEN set52;\r
+ pANTLR3_COMMON_TOKEN set54;\r
+ SimanticsDataParser_string_return string49;\r
+ #undef RETURN_TYPE_string49\r
+ #define RETURN_TYPE_string49 SimanticsDataParser_string_return\r
+\r
+ SimanticsDataParser_boolean_return boolean50;\r
+ #undef RETURN_TYPE_boolean50\r
+ #define RETURN_TYPE_boolean50 SimanticsDataParser_boolean_return\r
+\r
+ SimanticsDataParser_number_return number51;\r
+ #undef RETURN_TYPE_number51\r
+ #define RETURN_TYPE_number51 SimanticsDataParser_number_return\r
+\r
+ SimanticsDataParser_range_return range53;\r
+ #undef RETURN_TYPE_range53\r
+ #define RETURN_TYPE_range53 SimanticsDataParser_range_return\r
+\r
+ pANTLR3_BASE_TREE set52_tree;\r
+ pANTLR3_BASE_TREE set54_tree;\r
+\r
+ /* Initialize rule variables\r
+ */\r
+\r
+\r
+ root_0 = NULL;\r
+\r
+ set52 = NULL;\r
+ set54 = NULL;\r
+ string49.tree = NULL;\r
+\r
+ boolean50.tree = NULL;\r
+\r
+ number51.tree = NULL;\r
+\r
+ range53.tree = NULL;\r
+\r
+ retval.start = LT(1); retval.stop = retval.start;\r
+\r
+ set52_tree = NULL;\r
+ set54_tree = NULL;\r
+\r
+\r
+ retval.tree = NULL;\r
+ {\r
+ {\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:150:5: ( string | boolean | number | ( '[' | '(' ) range ( ']' | ')' ) )\r
+ \r
+ ANTLR3_UINT32 alt16;\r
+\r
+ alt16=4;\r
+\r
+ switch ( LA(1) ) \r
+ {\r
+ case STRING:\r
+ {\r
+ alt16=1;\r
+ }\r
+ break;\r
+ case 46:\r
+ case 47:\r
+ {\r
+ alt16=2;\r
+ }\r
+ break;\r
+ case INT:\r
+ case FLOAT:\r
+ {\r
+ alt16=3;\r
+ }\r
+ break;\r
+ case 37:\r
+ case 40:\r
+ {\r
+ alt16=4;\r
+ }\r
+ break;\r
+\r
+ default:\r
+ CONSTRUCTEX();\r
+ EXCEPTION->type = ANTLR3_NO_VIABLE_ALT_EXCEPTION;\r
+ EXCEPTION->message = (void *)"";\r
+ EXCEPTION->decisionNum = 16;\r
+ EXCEPTION->state = 0;\r
+\r
+\r
+ goto ruleparameterValueEx;\r
+ }\r
+\r
+ switch (alt16) \r
+ {\r
+ case 1:\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:150:7: string\r
+ {\r
+ root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+\r
+ FOLLOWPUSH(FOLLOW_string_in_parameterValue1258);\r
+ string49=string(ctx);\r
+\r
+ FOLLOWPOP();\r
+ if (HASEXCEPTION())\r
+ {\r
+ goto ruleparameterValueEx;\r
+ }\r
+\r
+ ADAPTOR->addChild(ADAPTOR, root_0, string49.tree);\r
+\r
+ }\r
+ break;\r
+ case 2:\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:151:7: boolean\r
+ {\r
+ root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+\r
+ FOLLOWPUSH(FOLLOW_boolean_in_parameterValue1266);\r
+ boolean50=boolean(ctx);\r
+\r
+ FOLLOWPOP();\r
+ if (HASEXCEPTION())\r
+ {\r
+ goto ruleparameterValueEx;\r
+ }\r
+\r
+ ADAPTOR->addChild(ADAPTOR, root_0, boolean50.tree);\r
+\r
+ }\r
+ break;\r
+ case 3:\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:152:7: number\r
+ {\r
+ root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+\r
+ FOLLOWPUSH(FOLLOW_number_in_parameterValue1274);\r
+ number51=number(ctx);\r
+\r
+ FOLLOWPOP();\r
+ if (HASEXCEPTION())\r
+ {\r
+ goto ruleparameterValueEx;\r
+ }\r
+\r
+ ADAPTOR->addChild(ADAPTOR, root_0, number51.tree);\r
+\r
+ }\r
+ break;\r
+ case 4:\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:153:7: ( '[' | '(' ) range ( ']' | ')' )\r
+ {\r
+ root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+\r
+ set52=(pANTLR3_COMMON_TOKEN)LT(1);\r
+ if ( LA(1) == 37 || LA(1) == 40 )\r
+ {\r
+ CONSUME();\r
+ ADAPTOR->addChild(ADAPTOR, root_0, (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, set52)));\r
+ PERRORRECOVERY=ANTLR3_FALSE;\r
+ }\r
+ else \r
+ {\r
+ CONSTRUCTEX();\r
+ EXCEPTION->type = ANTLR3_MISMATCHED_SET_EXCEPTION;\r
+ EXCEPTION->name = (void *)ANTLR3_MISMATCHED_SET_NAME;\r
+ EXCEPTION->expectingSet = &FOLLOW_set_in_parameterValue1282;\r
+ RECOVERFROMMISMATCHEDSET(&FOLLOW_set_in_parameterValue1282); goto ruleparameterValueEx;\r
+ }\r
+\r
+ FOLLOWPUSH(FOLLOW_range_in_parameterValue1290);\r
+ range53=range(ctx);\r
+\r
+ FOLLOWPOP();\r
+ if (HASEXCEPTION())\r
+ {\r
+ goto ruleparameterValueEx;\r
+ }\r
+\r
+ ADAPTOR->addChild(ADAPTOR, root_0, range53.tree);\r
+ set54=(pANTLR3_COMMON_TOKEN)LT(1);\r
+ if ( LA(1) == 38 || LA(1) == 42 )\r
+ {\r
+ CONSUME();\r
+ ADAPTOR->addChild(ADAPTOR, root_0, (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, set54)));\r
+ PERRORRECOVERY=ANTLR3_FALSE;\r
+ }\r
+ else \r
+ {\r
+ CONSTRUCTEX();\r
+ EXCEPTION->type = ANTLR3_MISMATCHED_SET_EXCEPTION;\r
+ EXCEPTION->name = (void *)ANTLR3_MISMATCHED_SET_NAME;\r
+ EXCEPTION->expectingSet = &FOLLOW_set_in_parameterValue1292;\r
+ RECOVERFROMMISMATCHEDSET(&FOLLOW_set_in_parameterValue1292); goto ruleparameterValueEx;\r
+ }\r
+\r
+\r
+ }\r
+ break;\r
+\r
+ }\r
+ }\r
+ }\r
+ \r
+\r
+ // This is where rules clean up and exit\r
+ //\r
+ goto ruleparameterValueEx; /* Prevent compiler warnings */\r
+ ruleparameterValueEx: ;\r
+ retval.stop = LT(-1);\r
+\r
+ retval.stop = LT(-1);\r
+ retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));\r
+ ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);\r
+\r
+ if (HASEXCEPTION())\r
+ {\r
+ PREPORTERROR();\r
+ PRECOVER();\r
+ retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));\r
+ }\r
+\r
+\r
+ return retval;\r
+}\r
+/* $ANTLR end parameterValue */\r
+\r
+/** \r
+ * $ANTLR start range\r
+ * C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:156:1: range : ( number | number '..' | '..' number | number '..' number );\r
+ */\r
+static SimanticsDataParser_range_return\r
+range(pSimanticsDataParser ctx)\r
+{ \r
+ SimanticsDataParser_range_return retval;\r
+\r
+ pANTLR3_BASE_TREE root_0;\r
+\r
+ pANTLR3_COMMON_TOKEN string_literal57;\r
+ pANTLR3_COMMON_TOKEN string_literal58;\r
+ pANTLR3_COMMON_TOKEN string_literal61;\r
+ SimanticsDataParser_number_return number55;\r
+ #undef RETURN_TYPE_number55\r
+ #define RETURN_TYPE_number55 SimanticsDataParser_number_return\r
+\r
+ SimanticsDataParser_number_return number56;\r
+ #undef RETURN_TYPE_number56\r
+ #define RETURN_TYPE_number56 SimanticsDataParser_number_return\r
+\r
+ SimanticsDataParser_number_return number59;\r
+ #undef RETURN_TYPE_number59\r
+ #define RETURN_TYPE_number59 SimanticsDataParser_number_return\r
+\r
+ SimanticsDataParser_number_return number60;\r
+ #undef RETURN_TYPE_number60\r
+ #define RETURN_TYPE_number60 SimanticsDataParser_number_return\r
+\r
+ SimanticsDataParser_number_return number62;\r
+ #undef RETURN_TYPE_number62\r
+ #define RETURN_TYPE_number62 SimanticsDataParser_number_return\r
+\r
+ pANTLR3_BASE_TREE string_literal57_tree;\r
+ pANTLR3_BASE_TREE string_literal58_tree;\r
+ pANTLR3_BASE_TREE string_literal61_tree;\r
+\r
+ /* Initialize rule variables\r
+ */\r
+\r
+\r
+ root_0 = NULL;\r
+\r
+ string_literal57 = NULL;\r
+ string_literal58 = NULL;\r
+ string_literal61 = NULL;\r
+ number55.tree = NULL;\r
+\r
+ number56.tree = NULL;\r
+\r
+ number59.tree = NULL;\r
+\r
+ number60.tree = NULL;\r
+\r
+ number62.tree = NULL;\r
+\r
+ retval.start = LT(1); retval.stop = retval.start;\r
+\r
+ string_literal57_tree = NULL;\r
+ string_literal58_tree = NULL;\r
+ string_literal61_tree = NULL;\r
+\r
+\r
+ retval.tree = NULL;\r
+ {\r
+ {\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:157:5: ( number | number '..' | '..' number | number '..' number )\r
+ \r
+ ANTLR3_UINT32 alt17;\r
+\r
+ alt17=4;\r
+\r
+ switch ( LA(1) ) \r
+ {\r
+ case INT:\r
+ case FLOAT:\r
+ {\r
+ switch ( LA(2) ) \r
+ {\r
+ case 39:\r
+ {\r
+ switch ( LA(3) ) \r
+ {\r
+ case INT:\r
+ case FLOAT:\r
+ {\r
+ alt17=4;\r
+ }\r
+ break;\r
+ case 38:\r
+ case 42:\r
+ {\r
+ alt17=2;\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 = 3;\r
+\r
+\r
+ goto rulerangeEx;\r
+ }\r
+\r
+ }\r
+ break;\r
+ case 38:\r
+ case 42:\r
+ {\r
+ alt17=1;\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 = 1;\r
+\r
+\r
+ goto rulerangeEx;\r
+ }\r
+\r
+ }\r
+ break;\r
+ case 39:\r
+ {\r
+ alt17=3;\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 rulerangeEx;\r
+ }\r
+\r
+ switch (alt17) \r
+ {\r
+ case 1:\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:157:7: number\r
+ {\r
+ root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+\r
+ FOLLOWPUSH(FOLLOW_number_in_range1319);\r
+ number55=number(ctx);\r
+\r
+ FOLLOWPOP();\r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulerangeEx;\r
+ }\r
+\r
+ ADAPTOR->addChild(ADAPTOR, root_0, number55.tree);\r
+\r
+ }\r
+ break;\r
+ case 2:\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:158:7: number '..'\r
+ {\r
+ root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+\r
+ FOLLOWPUSH(FOLLOW_number_in_range1327);\r
+ number56=number(ctx);\r
+\r
+ FOLLOWPOP();\r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulerangeEx;\r
+ }\r
+\r
+ ADAPTOR->addChild(ADAPTOR, root_0, number56.tree);\r
+ string_literal57 = (pANTLR3_COMMON_TOKEN) MATCHT(39, &FOLLOW_39_in_range1329); \r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulerangeEx;\r
+ }\r
+\r
+ string_literal57_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, string_literal57));\r
+ ADAPTOR->addChild(ADAPTOR, root_0, string_literal57_tree);\r
+\r
+\r
+ }\r
+ break;\r
+ case 3:\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:159:7: '..' number\r
+ {\r
+ root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+\r
+ string_literal58 = (pANTLR3_COMMON_TOKEN) MATCHT(39, &FOLLOW_39_in_range1337); \r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulerangeEx;\r
+ }\r
+\r
+ string_literal58_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, string_literal58));\r
+ ADAPTOR->addChild(ADAPTOR, root_0, string_literal58_tree);\r
+\r
+ FOLLOWPUSH(FOLLOW_number_in_range1339);\r
+ number59=number(ctx);\r
+\r
+ FOLLOWPOP();\r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulerangeEx;\r
+ }\r
+\r
+ ADAPTOR->addChild(ADAPTOR, root_0, number59.tree);\r
+\r
+ }\r
+ break;\r
+ case 4:\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:160:7: number '..' number\r
+ {\r
+ root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+\r
+ FOLLOWPUSH(FOLLOW_number_in_range1348);\r
+ number60=number(ctx);\r
+\r
+ FOLLOWPOP();\r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulerangeEx;\r
+ }\r
+\r
+ ADAPTOR->addChild(ADAPTOR, root_0, number60.tree);\r
+ string_literal61 = (pANTLR3_COMMON_TOKEN) MATCHT(39, &FOLLOW_39_in_range1350); \r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulerangeEx;\r
+ }\r
+\r
+ string_literal61_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, string_literal61));\r
+ ADAPTOR->addChild(ADAPTOR, root_0, string_literal61_tree);\r
+\r
+ FOLLOWPUSH(FOLLOW_number_in_range1352);\r
+ number62=number(ctx);\r
+\r
+ FOLLOWPOP();\r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulerangeEx;\r
+ }\r
+\r
+ ADAPTOR->addChild(ADAPTOR, root_0, number62.tree);\r
+\r
+ }\r
+ break;\r
+\r
+ }\r
+ }\r
+ }\r
+ \r
+\r
+ // This is where rules clean up and exit\r
+ //\r
+ goto rulerangeEx; /* Prevent compiler warnings */\r
+ rulerangeEx: ;\r
+ retval.stop = LT(-1);\r
+\r
+ retval.stop = LT(-1);\r
+ retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));\r
+ ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);\r
+\r
+ if (HASEXCEPTION())\r
+ {\r
+ PREPORTERROR();\r
+ PRECOVER();\r
+ retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));\r
+ }\r
+\r
+\r
+ return retval;\r
+}\r
+/* $ANTLR end range */\r
+\r
+/** \r
+ * $ANTLR start number\r
+ * C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:163:1: number : ( INT | FLOAT );\r
+ */\r
+static SimanticsDataParser_number_return\r
+number(pSimanticsDataParser ctx)\r
+{ \r
+ SimanticsDataParser_number_return retval;\r
+\r
+ pANTLR3_BASE_TREE root_0;\r
+\r
+ pANTLR3_COMMON_TOKEN set63;\r
+\r
+ pANTLR3_BASE_TREE set63_tree;\r
+\r
+ /* Initialize rule variables\r
+ */\r
+\r
+\r
+ root_0 = NULL;\r
+\r
+ set63 = NULL;\r
+ retval.start = LT(1); retval.stop = retval.start;\r
+\r
+ set63_tree = NULL;\r
+\r
+\r
+ retval.tree = NULL;\r
+ {\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:164:5: ( INT | FLOAT )\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:\r
+ {\r
+ root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+\r
+ set63=(pANTLR3_COMMON_TOKEN)LT(1);\r
+ if ( LA(1) == INT || LA(1) == FLOAT )\r
+ {\r
+ CONSUME();\r
+ ADAPTOR->addChild(ADAPTOR, root_0, (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, set63)));\r
+ PERRORRECOVERY=ANTLR3_FALSE;\r
+ }\r
+ else \r
+ {\r
+ CONSTRUCTEX();\r
+ EXCEPTION->type = ANTLR3_MISMATCHED_SET_EXCEPTION;\r
+ EXCEPTION->name = (void *)ANTLR3_MISMATCHED_SET_NAME;\r
+ EXCEPTION->expectingSet = &FOLLOW_set_in_number0;\r
+ RECOVERFROMMISMATCHEDSET(&FOLLOW_set_in_number0); goto rulenumberEx;\r
+ }\r
+\r
+\r
+ }\r
+\r
+ }\r
+ \r
+\r
+ // This is where rules clean up and exit\r
+ //\r
+ goto rulenumberEx; /* Prevent compiler warnings */\r
+ rulenumberEx: ;\r
+ retval.stop = LT(-1);\r
+\r
+ retval.stop = LT(-1);\r
+ retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));\r
+ ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);\r
+\r
+ if (HASEXCEPTION())\r
+ {\r
+ PREPORTERROR();\r
+ PRECOVER();\r
+ retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));\r
+ }\r
+\r
+\r
+ return retval;\r
+}\r
+/* $ANTLR end number */\r
+\r
+/** \r
+ * $ANTLR start string\r
+ * C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:168:1: string : STRING ;\r
+ */\r
+static SimanticsDataParser_string_return\r
+string(pSimanticsDataParser ctx)\r
+{ \r
+ SimanticsDataParser_string_return retval;\r
+\r
+ pANTLR3_BASE_TREE root_0;\r
+\r
+ pANTLR3_COMMON_TOKEN STRING64;\r
+\r
+ pANTLR3_BASE_TREE STRING64_tree;\r
+\r
+ /* Initialize rule variables\r
+ */\r
+\r
+\r
+ root_0 = NULL;\r
+\r
+ STRING64 = NULL;\r
+ retval.start = LT(1); retval.stop = retval.start;\r
+\r
+ STRING64_tree = NULL;\r
+\r
+\r
+ retval.tree = NULL;\r
+ {\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:169:5: ( STRING )\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:169:7: STRING\r
+ {\r
+ root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+\r
+ STRING64 = (pANTLR3_COMMON_TOKEN) MATCHT(STRING, &FOLLOW_STRING_in_string1402); \r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulestringEx;\r
+ }\r
+\r
+ STRING64_tree = (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, STRING64));\r
+ ADAPTOR->addChild(ADAPTOR, root_0, STRING64_tree);\r
+\r
+\r
+ }\r
+\r
+ }\r
+ \r
+\r
+ // This is where rules clean up and exit\r
+ //\r
+ goto rulestringEx; /* Prevent compiler warnings */\r
+ rulestringEx: ;\r
+ retval.stop = LT(-1);\r
+\r
+ retval.stop = LT(-1);\r
+ retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));\r
+ ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);\r
+\r
+ if (HASEXCEPTION())\r
+ {\r
+ PREPORTERROR();\r
+ PRECOVER();\r
+ retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));\r
+ }\r
+\r
+\r
+ return retval;\r
+}\r
+/* $ANTLR end string */\r
+\r
+/** \r
+ * $ANTLR start boolean\r
+ * C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:172:1: boolean : ( 'true' | 'false' );\r
+ */\r
+static SimanticsDataParser_boolean_return\r
+boolean(pSimanticsDataParser ctx)\r
+{ \r
+ SimanticsDataParser_boolean_return retval;\r
+\r
+ pANTLR3_BASE_TREE root_0;\r
+\r
+ pANTLR3_COMMON_TOKEN set65;\r
+\r
+ pANTLR3_BASE_TREE set65_tree;\r
+\r
+ /* Initialize rule variables\r
+ */\r
+\r
+\r
+ root_0 = NULL;\r
+\r
+ set65 = NULL;\r
+ retval.start = LT(1); retval.stop = retval.start;\r
+\r
+ set65_tree = NULL;\r
+\r
+\r
+ retval.tree = NULL;\r
+ {\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:173:5: ( 'true' | 'false' )\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:\r
+ {\r
+ root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+\r
+ set65=(pANTLR3_COMMON_TOKEN)LT(1);\r
+ if ( ((LA(1) >= 46) && (LA(1) <= 47)) )\r
+ {\r
+ CONSUME();\r
+ ADAPTOR->addChild(ADAPTOR, root_0, (pANTLR3_BASE_TREE)(ADAPTOR->create(ADAPTOR, set65)));\r
+ PERRORRECOVERY=ANTLR3_FALSE;\r
+ }\r
+ else \r
+ {\r
+ CONSTRUCTEX();\r
+ EXCEPTION->type = ANTLR3_MISMATCHED_SET_EXCEPTION;\r
+ EXCEPTION->name = (void *)ANTLR3_MISMATCHED_SET_NAME;\r
+ EXCEPTION->expectingSet = &FOLLOW_set_in_boolean0;\r
+ RECOVERFROMMISMATCHEDSET(&FOLLOW_set_in_boolean0); goto rulebooleanEx;\r
+ }\r
+\r
+\r
+ }\r
+\r
+ }\r
+ \r
+\r
+ // This is where rules clean up and exit\r
+ //\r
+ goto rulebooleanEx; /* Prevent compiler warnings */\r
+ rulebooleanEx: ;\r
+ retval.stop = LT(-1);\r
+\r
+ retval.stop = LT(-1);\r
+ retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));\r
+ ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);\r
+\r
+ if (HASEXCEPTION())\r
+ {\r
+ PREPORTERROR();\r
+ PRECOVER();\r
+ retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));\r
+ }\r
+\r
+\r
+ return retval;\r
+}\r
+/* $ANTLR end boolean */\r
+\r
+/** \r
+ * $ANTLR start valueDefinitions\r
+ * C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:181:1: valueDefinitions : ( valueDefinition )* -> ^( VALUE_DEFINITIONS ( valueDefinition )* ) ;\r
+ */\r
+static SimanticsDataParser_valueDefinitions_return\r
+valueDefinitions(pSimanticsDataParser ctx)\r
+{ \r
+ SimanticsDataParser_valueDefinitions_return retval;\r
+\r
+ pANTLR3_BASE_TREE root_0;\r
+\r
+ SimanticsDataParser_valueDefinition_return valueDefinition66;\r
+ #undef RETURN_TYPE_valueDefinition66\r
+ #define RETURN_TYPE_valueDefinition66 SimanticsDataParser_valueDefinition_return\r
+\r
+ pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_valueDefinition;\r
+ /* Initialize rule variables\r
+ */\r
+\r
+\r
+ root_0 = NULL;\r
+\r
+ valueDefinition66.tree = NULL;\r
+\r
+ retval.start = LT(1); retval.stop = retval.start;\r
+\r
+\r
+ stream_valueDefinition = NULL;\r
+ #define CREATE_stream_valueDefinition if (stream_valueDefinition == NULL) {stream_valueDefinition = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule valueDefinition"); }\r
+\r
+ retval.tree = NULL;\r
+ {\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:181:18: ( ( valueDefinition )* -> ^( VALUE_DEFINITIONS ( valueDefinition )* ) )\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:181:20: ( valueDefinition )*\r
+ {\r
+\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:181:20: ( valueDefinition )*\r
+\r
+ for (;;)\r
+ {\r
+ int alt18=2;\r
+ switch ( LA(1) ) \r
+ {\r
+ case ID:\r
+ {\r
+ alt18=1;\r
+ }\r
+ break;\r
+\r
+ }\r
+\r
+ switch (alt18) \r
+ {\r
+ case 1:\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:181:20: valueDefinition\r
+ {\r
+ FOLLOWPUSH(FOLLOW_valueDefinition_in_valueDefinitions1447);\r
+ valueDefinition66=valueDefinition(ctx);\r
+\r
+ FOLLOWPOP();\r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulevalueDefinitionsEx;\r
+ }\r
+\r
+ CREATE_stream_valueDefinition; stream_valueDefinition->add(stream_valueDefinition, valueDefinition66.tree, NULL);\r
+\r
+ }\r
+ break;\r
+\r
+ default:\r
+ goto loop18; /* break out of the loop */\r
+ break;\r
+ }\r
+ }\r
+ loop18: ; /* Jump out to here if this rule does not match */\r
+\r
+\r
+ \r
+ /* AST REWRITE\r
+ * elements : valueDefinition\r
+ * token labels : \r
+ * rule labels : retval\r
+ * token list labels : \r
+ * rule list labels : \r
+ */\r
+ {\r
+ pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;\r
+\r
+ stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);\r
+\r
+ root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+ retval.tree = root_0;\r
+ // 181:37: -> ^( VALUE_DEFINITIONS ( valueDefinition )* )\r
+ {\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:181:40: ^( VALUE_DEFINITIONS ( valueDefinition )* )\r
+ {\r
+ pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+ root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, VALUE_DEFINITIONS, (pANTLR3_UINT8)"VALUE_DEFINITIONS"), root_1));\r
+\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:181:60: ( valueDefinition )*\r
+ {\r
+ while ( (stream_valueDefinition != NULL && stream_valueDefinition->hasNext(stream_valueDefinition)) )\r
+ {\r
+ ADAPTOR->addChild(ADAPTOR, root_1, stream_valueDefinition == NULL ? NULL : stream_valueDefinition->nextTree(stream_valueDefinition));\r
+\r
+ }\r
+ if (stream_valueDefinition != NULL) stream_valueDefinition->reset(stream_valueDefinition);\r
+\r
+ }\r
+\r
+ ADAPTOR->addChild(ADAPTOR, root_0, root_1);\r
+ }\r
+\r
+ }\r
+\r
+ retval.tree = root_0; // set result root\r
+ if (stream_retval != NULL) stream_retval->free(stream_retval);\r
+\r
+\r
+ }\r
+ }\r
+\r
+ }\r
+ \r
+\r
+ // This is where rules clean up and exit\r
+ //\r
+ goto rulevalueDefinitionsEx; /* Prevent compiler warnings */\r
+ rulevalueDefinitionsEx: ;\r
+ retval.stop = LT(-1);\r
+\r
+ retval.stop = LT(-1);\r
+ retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));\r
+ ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);\r
+ if (stream_valueDefinition != NULL) stream_valueDefinition->free(stream_valueDefinition);\r
+\r
+ if (HASEXCEPTION())\r
+ {\r
+ PREPORTERROR();\r
+ PRECOVER();\r
+ retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));\r
+ }\r
+\r
+\r
+ return retval;\r
+}\r
+/* $ANTLR end valueDefinitions */\r
+\r
+/** \r
+ * $ANTLR start valueDefinition\r
+ * C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:183:1: valueDefinition : ID ':' unionType '=' value -> ^( VALUE_DEFINITION ID unionType value ) ;\r
+ */\r
+static SimanticsDataParser_valueDefinition_return\r
+valueDefinition(pSimanticsDataParser ctx)\r
+{ \r
+ SimanticsDataParser_valueDefinition_return retval;\r
+\r
+ pANTLR3_BASE_TREE root_0;\r
+\r
+ pANTLR3_COMMON_TOKEN ID67;\r
+ pANTLR3_COMMON_TOKEN char_literal68;\r
+ pANTLR3_COMMON_TOKEN char_literal70;\r
+ SimanticsDataParser_unionType_return unionType69;\r
+ #undef RETURN_TYPE_unionType69\r
+ #define RETURN_TYPE_unionType69 SimanticsDataParser_unionType_return\r
+\r
+ SimanticsDataParser_value_return value71;\r
+ #undef RETURN_TYPE_value71\r
+ #define RETURN_TYPE_value71 SimanticsDataParser_value_return\r
+\r
+ pANTLR3_BASE_TREE ID67_tree;\r
+ pANTLR3_BASE_TREE char_literal68_tree;\r
+ pANTLR3_BASE_TREE char_literal70_tree;\r
+ pANTLR3_REWRITE_RULE_TOKEN_STREAM stream_45;\r
+ pANTLR3_REWRITE_RULE_TOKEN_STREAM stream_ID;\r
+ pANTLR3_REWRITE_RULE_TOKEN_STREAM stream_35;\r
+ pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_unionType;\r
+ pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_value;\r
+ /* Initialize rule variables\r
+ */\r
+\r
+\r
+ root_0 = NULL;\r
+\r
+ ID67 = NULL;\r
+ char_literal68 = NULL;\r
+ char_literal70 = NULL;\r
+ unionType69.tree = NULL;\r
+\r
+ value71.tree = NULL;\r
+\r
+ retval.start = LT(1); retval.stop = retval.start;\r
+\r
+ ID67_tree = NULL;\r
+ char_literal68_tree = NULL;\r
+ char_literal70_tree = NULL;\r
+\r
+ stream_45 = NULL;\r
+ #define CREATE_stream_45 if (stream_45 == NULL) {stream_45 = antlr3RewriteRuleTOKENStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token 45"); } \r
+ stream_ID = NULL;\r
+ #define CREATE_stream_ID if (stream_ID == NULL) {stream_ID = antlr3RewriteRuleTOKENStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token ID"); } \r
+ stream_35 = NULL;\r
+ #define CREATE_stream_35 if (stream_35 == NULL) {stream_35 = antlr3RewriteRuleTOKENStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token 35"); } \r
+ stream_unionType = NULL;\r
+ #define CREATE_stream_unionType if (stream_unionType == NULL) {stream_unionType = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule unionType"); }\r
+ stream_value = NULL;\r
+ #define CREATE_stream_value if (stream_value == NULL) {stream_value = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule value"); }\r
+\r
+ retval.tree = NULL;\r
+ {\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:184:5: ( ID ':' unionType '=' value -> ^( VALUE_DEFINITION ID unionType value ) )\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:184:7: ID ':' unionType '=' value\r
+ {\r
+ ID67 = (pANTLR3_COMMON_TOKEN) MATCHT(ID, &FOLLOW_ID_in_valueDefinition1470); \r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulevalueDefinitionEx;\r
+ }\r
+ \r
+ CREATE_stream_ID; stream_ID->add(stream_ID, ID67, NULL);\r
+\r
+ char_literal68 = (pANTLR3_COMMON_TOKEN) MATCHT(45, &FOLLOW_45_in_valueDefinition1472); \r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulevalueDefinitionEx;\r
+ }\r
+ \r
+ CREATE_stream_45; stream_45->add(stream_45, char_literal68, NULL);\r
+\r
+ FOLLOWPUSH(FOLLOW_unionType_in_valueDefinition1474);\r
+ unionType69=unionType(ctx);\r
+\r
+ FOLLOWPOP();\r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulevalueDefinitionEx;\r
+ }\r
+\r
+ CREATE_stream_unionType; stream_unionType->add(stream_unionType, unionType69.tree, NULL);\r
+ char_literal70 = (pANTLR3_COMMON_TOKEN) MATCHT(35, &FOLLOW_35_in_valueDefinition1476); \r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulevalueDefinitionEx;\r
+ }\r
+ \r
+ CREATE_stream_35; stream_35->add(stream_35, char_literal70, NULL);\r
+\r
+ FOLLOWPUSH(FOLLOW_value_in_valueDefinition1478);\r
+ value71=value(ctx);\r
+\r
+ FOLLOWPOP();\r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulevalueDefinitionEx;\r
+ }\r
+\r
+ CREATE_stream_value; stream_value->add(stream_value, value71.tree, NULL);\r
+\r
+ \r
+ /* AST REWRITE\r
+ * elements : value, unionType, ID\r
+ * token labels : \r
+ * rule labels : retval\r
+ * token list labels : \r
+ * rule list labels : \r
+ */\r
+ {\r
+ pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;\r
+\r
+ stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);\r
+\r
+ root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+ retval.tree = root_0;\r
+ // 185:5: -> ^( VALUE_DEFINITION ID unionType value )\r
+ {\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:185:8: ^( VALUE_DEFINITION ID unionType value )\r
+ {\r
+ pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+ root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, VALUE_DEFINITION, (pANTLR3_UINT8)"VALUE_DEFINITION"), root_1));\r
+\r
+ ADAPTOR->addChild(ADAPTOR, root_1, stream_ID == NULL ? NULL : stream_ID->nextNode(stream_ID));\r
+ ADAPTOR->addChild(ADAPTOR, root_1, stream_unionType == NULL ? NULL : stream_unionType->nextTree(stream_unionType));\r
+ ADAPTOR->addChild(ADAPTOR, root_1, stream_value == NULL ? NULL : stream_value->nextTree(stream_value));\r
+\r
+ ADAPTOR->addChild(ADAPTOR, root_0, root_1);\r
+ }\r
+\r
+ }\r
+\r
+ retval.tree = root_0; // set result root\r
+ if (stream_retval != NULL) stream_retval->free(stream_retval);\r
+\r
+\r
+ }\r
+ }\r
+\r
+ }\r
+ \r
+\r
+ // This is where rules clean up and exit\r
+ //\r
+ goto rulevalueDefinitionEx; /* Prevent compiler warnings */\r
+ rulevalueDefinitionEx: ;\r
+ retval.stop = LT(-1);\r
+\r
+ retval.stop = LT(-1);\r
+ retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));\r
+ ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);\r
+ if (stream_45 != NULL) stream_45->free(stream_45);\r
+ if (stream_ID != NULL) stream_ID->free(stream_ID);\r
+ if (stream_35 != NULL) stream_35->free(stream_35);\r
+ if (stream_unionType != NULL) stream_unionType->free(stream_unionType);\r
+ if (stream_value != NULL) stream_value->free(stream_value);\r
+\r
+ if (HASEXCEPTION())\r
+ {\r
+ PREPORTERROR();\r
+ PRECOVER();\r
+ retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));\r
+ }\r
+\r
+\r
+ return retval;\r
+}\r
+/* $ANTLR end valueDefinition */\r
+\r
+/** \r
+ * $ANTLR start value\r
+ * C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:188:1: value : ( basicValue -> basicValue ) ( ':' type -> ^( VARIANT type $value) )* ;\r
+ */\r
+static SimanticsDataParser_value_return\r
+value(pSimanticsDataParser ctx)\r
+{ \r
+ SimanticsDataParser_value_return retval;\r
+\r
+ pANTLR3_BASE_TREE root_0;\r
+\r
+ pANTLR3_COMMON_TOKEN char_literal73;\r
+ SimanticsDataParser_basicValue_return basicValue72;\r
+ #undef RETURN_TYPE_basicValue72\r
+ #define RETURN_TYPE_basicValue72 SimanticsDataParser_basicValue_return\r
+\r
+ SimanticsDataParser_type_return type74;\r
+ #undef RETURN_TYPE_type74\r
+ #define RETURN_TYPE_type74 SimanticsDataParser_type_return\r
+\r
+ pANTLR3_BASE_TREE char_literal73_tree;\r
+ pANTLR3_REWRITE_RULE_TOKEN_STREAM stream_45;\r
+ pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_basicValue;\r
+ pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_type;\r
+ /* Initialize rule variables\r
+ */\r
+\r
+\r
+ root_0 = NULL;\r
+\r
+ char_literal73 = NULL;\r
+ basicValue72.tree = NULL;\r
+\r
+ type74.tree = NULL;\r
+\r
+ retval.start = LT(1); retval.stop = retval.start;\r
+\r
+ char_literal73_tree = NULL;\r
+\r
+ stream_45 = NULL;\r
+ #define CREATE_stream_45 if (stream_45 == NULL) {stream_45 = antlr3RewriteRuleTOKENStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token 45"); } \r
+ stream_basicValue = NULL;\r
+ #define CREATE_stream_basicValue if (stream_basicValue == NULL) {stream_basicValue = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule basicValue"); }\r
+ stream_type = NULL;\r
+ #define CREATE_stream_type if (stream_type == NULL) {stream_type = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule type"); }\r
+\r
+ retval.tree = NULL;\r
+ {\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:189:5: ( ( basicValue -> basicValue ) ( ':' type -> ^( VARIANT type $value) )* )\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:189:7: ( basicValue -> basicValue ) ( ':' type -> ^( VARIANT type $value) )*\r
+ {\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:189:7: ( basicValue -> basicValue )\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:189:8: basicValue\r
+ {\r
+ FOLLOWPUSH(FOLLOW_basicValue_in_value1514);\r
+ basicValue72=basicValue(ctx);\r
+\r
+ FOLLOWPOP();\r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulevalueEx;\r
+ }\r
+\r
+ CREATE_stream_basicValue; stream_basicValue->add(stream_basicValue, basicValue72.tree, NULL);\r
+\r
+ \r
+ /* AST REWRITE\r
+ * elements : basicValue\r
+ * token labels : \r
+ * rule labels : retval\r
+ * token list labels : \r
+ * rule list labels : \r
+ */\r
+ {\r
+ pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;\r
+\r
+ stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);\r
+\r
+ root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+ retval.tree = root_0;\r
+ // 189:19: -> basicValue\r
+ {\r
+ ADAPTOR->addChild(ADAPTOR, root_0, stream_basicValue == NULL ? NULL : stream_basicValue->nextTree(stream_basicValue));\r
+\r
+ }\r
+\r
+ retval.tree = root_0; // set result root\r
+ if (stream_retval != NULL) stream_retval->free(stream_retval);\r
+\r
+\r
+ }\r
+ }\r
+\r
+\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:190:7: ( ':' type -> ^( VARIANT type $value) )*\r
+\r
+ for (;;)\r
+ {\r
+ int alt19=2;\r
+ switch ( LA(1) ) \r
+ {\r
+ case 45:\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:190:8: ':' type\r
+ {\r
+ char_literal73 = (pANTLR3_COMMON_TOKEN) MATCHT(45, &FOLLOW_45_in_value1528); \r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulevalueEx;\r
+ }\r
+ \r
+ CREATE_stream_45; stream_45->add(stream_45, char_literal73, NULL);\r
+\r
+ FOLLOWPUSH(FOLLOW_type_in_value1530);\r
+ type74=type(ctx);\r
+\r
+ FOLLOWPOP();\r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulevalueEx;\r
+ }\r
+\r
+ CREATE_stream_type; stream_type->add(stream_type, type74.tree, NULL);\r
+\r
+ \r
+ /* AST REWRITE\r
+ * elements : value, type\r
+ * token labels : \r
+ * rule labels : retval\r
+ * token list labels : \r
+ * rule list labels : \r
+ */\r
+ {\r
+ pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;\r
+\r
+ stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);\r
+\r
+ root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+ retval.tree = root_0;\r
+ // 190:17: -> ^( VARIANT type $value)\r
+ {\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:190:20: ^( VARIANT type $value)\r
+ {\r
+ pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+ root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, VARIANT, (pANTLR3_UINT8)"VARIANT"), root_1));\r
+\r
+ ADAPTOR->addChild(ADAPTOR, root_1, stream_type == NULL ? NULL : stream_type->nextTree(stream_type));\r
+ ADAPTOR->addChild(ADAPTOR, root_1, stream_retval == NULL ? NULL : stream_retval->nextTree(stream_retval));\r
+\r
+ ADAPTOR->addChild(ADAPTOR, root_0, root_1);\r
+ }\r
+\r
+ }\r
+\r
+ retval.tree = root_0; // set result root\r
+ if (stream_retval != NULL) stream_retval->free(stream_retval);\r
+\r
+\r
+ }\r
+ }\r
+ break;\r
+\r
+ default:\r
+ goto loop19; /* break out of the loop */\r
+ break;\r
+ }\r
+ }\r
+ loop19: ; /* Jump out to here if this rule does not match */\r
+\r
+\r
+ }\r
+\r
+ }\r
+ \r
+\r
+ // This is where rules clean up and exit\r
+ //\r
+ goto rulevalueEx; /* Prevent compiler warnings */\r
+ rulevalueEx: ;\r
+ retval.stop = LT(-1);\r
+\r
+ retval.stop = LT(-1);\r
+ retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));\r
+ ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);\r
+ if (stream_45 != NULL) stream_45->free(stream_45);\r
+ if (stream_basicValue != NULL) stream_basicValue->free(stream_basicValue);\r
+ if (stream_type != NULL) stream_type->free(stream_type);\r
+\r
+ if (HASEXCEPTION())\r
+ {\r
+ PREPORTERROR();\r
+ PRECOVER();\r
+ retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));\r
+ }\r
+\r
+\r
+ return retval;\r
+}\r
+/* $ANTLR end value */\r
+\r
+/** \r
+ * $ANTLR start basicValue\r
+ * C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:193:1: basicValue : ( 'null' -> NO_VALUE | string | number | boolean | array | tuple | taggedValue | map | record );\r
+ */\r
+static SimanticsDataParser_basicValue_return\r
+basicValue(pSimanticsDataParser ctx)\r
+{ \r
+ SimanticsDataParser_basicValue_return retval;\r
+\r
+ pANTLR3_BASE_TREE root_0;\r
+\r
+ pANTLR3_COMMON_TOKEN string_literal75;\r
+ SimanticsDataParser_string_return string76;\r
+ #undef RETURN_TYPE_string76\r
+ #define RETURN_TYPE_string76 SimanticsDataParser_string_return\r
+\r
+ SimanticsDataParser_number_return number77;\r
+ #undef RETURN_TYPE_number77\r
+ #define RETURN_TYPE_number77 SimanticsDataParser_number_return\r
+\r
+ SimanticsDataParser_boolean_return boolean78;\r
+ #undef RETURN_TYPE_boolean78\r
+ #define RETURN_TYPE_boolean78 SimanticsDataParser_boolean_return\r
+\r
+ SimanticsDataParser_array_return array79;\r
+ #undef RETURN_TYPE_array79\r
+ #define RETURN_TYPE_array79 SimanticsDataParser_array_return\r
+\r
+ SimanticsDataParser_tuple_return tuple80;\r
+ #undef RETURN_TYPE_tuple80\r
+ #define RETURN_TYPE_tuple80 SimanticsDataParser_tuple_return\r
+\r
+ SimanticsDataParser_taggedValue_return taggedValue81;\r
+ #undef RETURN_TYPE_taggedValue81\r
+ #define RETURN_TYPE_taggedValue81 SimanticsDataParser_taggedValue_return\r
+\r
+ SimanticsDataParser_map_return map82;\r
+ #undef RETURN_TYPE_map82\r
+ #define RETURN_TYPE_map82 SimanticsDataParser_map_return\r
+\r
+ SimanticsDataParser_record_return record83;\r
+ #undef RETURN_TYPE_record83\r
+ #define RETURN_TYPE_record83 SimanticsDataParser_record_return\r
+\r
+ pANTLR3_BASE_TREE string_literal75_tree;\r
+ pANTLR3_REWRITE_RULE_TOKEN_STREAM stream_48;\r
+\r
+ /* Initialize rule variables\r
+ */\r
+\r
+\r
+ root_0 = NULL;\r
+\r
+ string_literal75 = NULL;\r
+ string76.tree = NULL;\r
+\r
+ number77.tree = NULL;\r
+\r
+ boolean78.tree = NULL;\r
+\r
+ array79.tree = NULL;\r
+\r
+ tuple80.tree = NULL;\r
+\r
+ taggedValue81.tree = NULL;\r
+\r
+ map82.tree = NULL;\r
+\r
+ record83.tree = NULL;\r
+\r
+ retval.start = LT(1); retval.stop = retval.start;\r
+\r
+ string_literal75_tree = NULL;\r
+\r
+ stream_48 = NULL;\r
+ #define CREATE_stream_48 if (stream_48 == NULL) {stream_48 = antlr3RewriteRuleTOKENStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token 48"); } \r
+\r
+ retval.tree = NULL;\r
+ {\r
+ {\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:194:5: ( 'null' -> NO_VALUE | string | number | boolean | array | tuple | taggedValue | map | record )\r
+ \r
+ ANTLR3_UINT32 alt20;\r
+\r
+ alt20=9;\r
+\r
+ switch ( LA(1) ) \r
+ {\r
+ case 48:\r
+ {\r
+ alt20=1;\r
+ }\r
+ break;\r
+ case STRING:\r
+ {\r
+ alt20=2;\r
+ }\r
+ break;\r
+ case INT:\r
+ case FLOAT:\r
+ {\r
+ alt20=3;\r
+ }\r
+ break;\r
+ case 46:\r
+ case 47:\r
+ {\r
+ alt20=4;\r
+ }\r
+ break;\r
+ case 37:\r
+ {\r
+ alt20=5;\r
+ }\r
+ break;\r
+ case 40:\r
+ {\r
+ alt20=6;\r
+ }\r
+ break;\r
+ case ID:\r
+ {\r
+ alt20=7;\r
+ }\r
+ break;\r
+ case 49:\r
+ {\r
+ alt20=8;\r
+ }\r
+ break;\r
+ case 43:\r
+ {\r
+ alt20=9;\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 rulebasicValueEx;\r
+ }\r
+\r
+ switch (alt20) \r
+ {\r
+ case 1:\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:194:7: 'null'\r
+ {\r
+ string_literal75 = (pANTLR3_COMMON_TOKEN) MATCHT(48, &FOLLOW_48_in_basicValue1562); \r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulebasicValueEx;\r
+ }\r
+ \r
+ CREATE_stream_48; stream_48->add(stream_48, string_literal75, NULL);\r
+\r
+\r
+ \r
+ /* AST REWRITE\r
+ * elements : \r
+ * token labels : \r
+ * rule labels : retval\r
+ * token list labels : \r
+ * rule list labels : \r
+ */\r
+ {\r
+ pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;\r
+\r
+ stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);\r
+\r
+ root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+ retval.tree = root_0;\r
+ // 194:14: -> NO_VALUE\r
+ {\r
+ ADAPTOR->addChild(ADAPTOR, root_0, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, NO_VALUE, (pANTLR3_UINT8)"NO_VALUE"));\r
+\r
+ }\r
+\r
+ retval.tree = root_0; // set result root\r
+ if (stream_retval != NULL) stream_retval->free(stream_retval);\r
+\r
+\r
+ }\r
+ }\r
+ break;\r
+ case 2:\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:195:7: string\r
+ {\r
+ root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+\r
+ FOLLOWPUSH(FOLLOW_string_in_basicValue1574);\r
+ string76=string(ctx);\r
+\r
+ FOLLOWPOP();\r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulebasicValueEx;\r
+ }\r
+\r
+ ADAPTOR->addChild(ADAPTOR, root_0, string76.tree);\r
+\r
+ }\r
+ break;\r
+ case 3:\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:196:7: number\r
+ {\r
+ root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+\r
+ FOLLOWPUSH(FOLLOW_number_in_basicValue1582);\r
+ number77=number(ctx);\r
+\r
+ FOLLOWPOP();\r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulebasicValueEx;\r
+ }\r
+\r
+ ADAPTOR->addChild(ADAPTOR, root_0, number77.tree);\r
+\r
+ }\r
+ break;\r
+ case 4:\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:197:7: boolean\r
+ {\r
+ root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+\r
+ FOLLOWPUSH(FOLLOW_boolean_in_basicValue1590);\r
+ boolean78=boolean(ctx);\r
+\r
+ FOLLOWPOP();\r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulebasicValueEx;\r
+ }\r
+\r
+ ADAPTOR->addChild(ADAPTOR, root_0, boolean78.tree);\r
+\r
+ }\r
+ break;\r
+ case 5:\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:198:7: array\r
+ {\r
+ root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+\r
+ FOLLOWPUSH(FOLLOW_array_in_basicValue1598);\r
+ array79=array(ctx);\r
+\r
+ FOLLOWPOP();\r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulebasicValueEx;\r
+ }\r
+\r
+ ADAPTOR->addChild(ADAPTOR, root_0, array79.tree);\r
+\r
+ }\r
+ break;\r
+ case 6:\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:199:7: tuple\r
+ {\r
+ root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+\r
+ FOLLOWPUSH(FOLLOW_tuple_in_basicValue1606);\r
+ tuple80=tuple(ctx);\r
+\r
+ FOLLOWPOP();\r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulebasicValueEx;\r
+ }\r
+\r
+ ADAPTOR->addChild(ADAPTOR, root_0, tuple80.tree);\r
+\r
+ }\r
+ break;\r
+ case 7:\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:200:7: taggedValue\r
+ {\r
+ root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+\r
+ FOLLOWPUSH(FOLLOW_taggedValue_in_basicValue1614);\r
+ taggedValue81=taggedValue(ctx);\r
+\r
+ FOLLOWPOP();\r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulebasicValueEx;\r
+ }\r
+\r
+ ADAPTOR->addChild(ADAPTOR, root_0, taggedValue81.tree);\r
+\r
+ }\r
+ break;\r
+ case 8:\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:201:7: map\r
+ {\r
+ root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+\r
+ FOLLOWPUSH(FOLLOW_map_in_basicValue1622);\r
+ map82=map(ctx);\r
+\r
+ FOLLOWPOP();\r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulebasicValueEx;\r
+ }\r
+\r
+ ADAPTOR->addChild(ADAPTOR, root_0, map82.tree);\r
+\r
+ }\r
+ break;\r
+ case 9:\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:202:7: record\r
+ {\r
+ root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+\r
+ FOLLOWPUSH(FOLLOW_record_in_basicValue1630);\r
+ record83=record(ctx);\r
+\r
+ FOLLOWPOP();\r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulebasicValueEx;\r
+ }\r
+\r
+ ADAPTOR->addChild(ADAPTOR, root_0, record83.tree);\r
+\r
+ }\r
+ break;\r
+\r
+ }\r
+ }\r
+ }\r
+ \r
+\r
+ // This is where rules clean up and exit\r
+ //\r
+ goto rulebasicValueEx; /* Prevent compiler warnings */\r
+ rulebasicValueEx: ;\r
+ retval.stop = LT(-1);\r
+\r
+ retval.stop = LT(-1);\r
+ retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));\r
+ ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);\r
+ if (stream_48 != NULL) stream_48->free(stream_48);\r
+\r
+ if (HASEXCEPTION())\r
+ {\r
+ PREPORTERROR();\r
+ PRECOVER();\r
+ retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));\r
+ }\r
+\r
+\r
+ return retval;\r
+}\r
+/* $ANTLR end basicValue */\r
+\r
+/** \r
+ * $ANTLR start array\r
+ * C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:205:1: array : '[' ( value ( ',' value )* )? ']' -> ^( ARRAY ( value )* ) ;\r
+ */\r
+static SimanticsDataParser_array_return\r
+array(pSimanticsDataParser ctx)\r
+{ \r
+ SimanticsDataParser_array_return retval;\r
+\r
+ pANTLR3_BASE_TREE root_0;\r
+\r
+ pANTLR3_COMMON_TOKEN char_literal84;\r
+ pANTLR3_COMMON_TOKEN char_literal86;\r
+ pANTLR3_COMMON_TOKEN char_literal88;\r
+ SimanticsDataParser_value_return value85;\r
+ #undef RETURN_TYPE_value85\r
+ #define RETURN_TYPE_value85 SimanticsDataParser_value_return\r
+\r
+ SimanticsDataParser_value_return value87;\r
+ #undef RETURN_TYPE_value87\r
+ #define RETURN_TYPE_value87 SimanticsDataParser_value_return\r
+\r
+ pANTLR3_BASE_TREE char_literal84_tree;\r
+ pANTLR3_BASE_TREE char_literal86_tree;\r
+ pANTLR3_BASE_TREE char_literal88_tree;\r
+ pANTLR3_REWRITE_RULE_TOKEN_STREAM stream_41;\r
+ pANTLR3_REWRITE_RULE_TOKEN_STREAM stream_37;\r
+ pANTLR3_REWRITE_RULE_TOKEN_STREAM stream_38;\r
+ pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_value;\r
+ /* Initialize rule variables\r
+ */\r
+\r
+\r
+ root_0 = NULL;\r
+\r
+ char_literal84 = NULL;\r
+ char_literal86 = NULL;\r
+ char_literal88 = NULL;\r
+ value85.tree = NULL;\r
+\r
+ value87.tree = NULL;\r
+\r
+ retval.start = LT(1); retval.stop = retval.start;\r
+\r
+ char_literal84_tree = NULL;\r
+ char_literal86_tree = NULL;\r
+ char_literal88_tree = NULL;\r
+\r
+ stream_41 = NULL;\r
+ #define CREATE_stream_41 if (stream_41 == NULL) {stream_41 = antlr3RewriteRuleTOKENStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token 41"); } \r
+ stream_37 = NULL;\r
+ #define CREATE_stream_37 if (stream_37 == NULL) {stream_37 = antlr3RewriteRuleTOKENStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token 37"); } \r
+ stream_38 = NULL;\r
+ #define CREATE_stream_38 if (stream_38 == NULL) {stream_38 = antlr3RewriteRuleTOKENStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token 38"); } \r
+ stream_value = NULL;\r
+ #define CREATE_stream_value if (stream_value == NULL) {stream_value = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule value"); }\r
+\r
+ retval.tree = NULL;\r
+ {\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:206:5: ( '[' ( value ( ',' value )* )? ']' -> ^( ARRAY ( value )* ) )\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:206:7: '[' ( value ( ',' value )* )? ']'\r
+ {\r
+ char_literal84 = (pANTLR3_COMMON_TOKEN) MATCHT(37, &FOLLOW_37_in_array1648); \r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulearrayEx;\r
+ }\r
+ \r
+ CREATE_stream_37; stream_37->add(stream_37, char_literal84, NULL);\r
+\r
+\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:206:11: ( value ( ',' value )* )?\r
+ {\r
+ int alt22=2;\r
+ switch ( LA(1) ) \r
+ {\r
+ case ID:\r
+ case INT:\r
+ case FLOAT:\r
+ case STRING:\r
+ case 37:\r
+ case 40:\r
+ case 43:\r
+ case 46:\r
+ case 47:\r
+ case 48:\r
+ case 49:\r
+ {\r
+ alt22=1;\r
+ }\r
+ break;\r
+ }\r
+\r
+ switch (alt22) \r
+ {\r
+ case 1:\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:206:12: value ( ',' value )*\r
+ {\r
+ FOLLOWPUSH(FOLLOW_value_in_array1651);\r
+ value85=value(ctx);\r
+\r
+ FOLLOWPOP();\r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulearrayEx;\r
+ }\r
+\r
+ CREATE_stream_value; stream_value->add(stream_value, value85.tree, NULL);\r
+\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:206:18: ( ',' value )*\r
+\r
+ for (;;)\r
+ {\r
+ int alt21=2;\r
+ switch ( LA(1) ) \r
+ {\r
+ case 41:\r
+ {\r
+ alt21=1;\r
+ }\r
+ break;\r
+\r
+ }\r
+\r
+ switch (alt21) \r
+ {\r
+ case 1:\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:206:19: ',' value\r
+ {\r
+ char_literal86 = (pANTLR3_COMMON_TOKEN) MATCHT(41, &FOLLOW_41_in_array1654); \r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulearrayEx;\r
+ }\r
+ \r
+ CREATE_stream_41; stream_41->add(stream_41, char_literal86, NULL);\r
+\r
+ FOLLOWPUSH(FOLLOW_value_in_array1656);\r
+ value87=value(ctx);\r
+\r
+ FOLLOWPOP();\r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulearrayEx;\r
+ }\r
+\r
+ CREATE_stream_value; stream_value->add(stream_value, value87.tree, NULL);\r
+\r
+ }\r
+ break;\r
+\r
+ default:\r
+ goto loop21; /* break out of the loop */\r
+ break;\r
+ }\r
+ }\r
+ loop21: ; /* Jump out to here if this rule does not match */\r
+\r
+\r
+ }\r
+ break;\r
+\r
+ }\r
+ }\r
+ char_literal88 = (pANTLR3_COMMON_TOKEN) MATCHT(38, &FOLLOW_38_in_array1662); \r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulearrayEx;\r
+ }\r
+ \r
+ CREATE_stream_38; stream_38->add(stream_38, char_literal88, NULL);\r
+\r
+\r
+ \r
+ /* AST REWRITE\r
+ * elements : value\r
+ * token labels : \r
+ * rule labels : retval\r
+ * token list labels : \r
+ * rule list labels : \r
+ */\r
+ {\r
+ pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;\r
+\r
+ stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);\r
+\r
+ root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+ retval.tree = root_0;\r
+ // 207:5: -> ^( ARRAY ( value )* )\r
+ {\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:207:8: ^( ARRAY ( value )* )\r
+ {\r
+ pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+ root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, ARRAY, (pANTLR3_UINT8)"ARRAY"), root_1));\r
+\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:207:16: ( value )*\r
+ {\r
+ while ( (stream_value != NULL && stream_value->hasNext(stream_value)) )\r
+ {\r
+ ADAPTOR->addChild(ADAPTOR, root_1, stream_value == NULL ? NULL : stream_value->nextTree(stream_value));\r
+\r
+ }\r
+ if (stream_value != NULL) stream_value->reset(stream_value);\r
+\r
+ }\r
+\r
+ ADAPTOR->addChild(ADAPTOR, root_0, root_1);\r
+ }\r
+\r
+ }\r
+\r
+ retval.tree = root_0; // set result root\r
+ if (stream_retval != NULL) stream_retval->free(stream_retval);\r
+\r
+\r
+ }\r
+ }\r
+\r
+ }\r
+ \r
+\r
+ // This is where rules clean up and exit\r
+ //\r
+ goto rulearrayEx; /* Prevent compiler warnings */\r
+ rulearrayEx: ;\r
+ retval.stop = LT(-1);\r
+\r
+ retval.stop = LT(-1);\r
+ retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));\r
+ ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);\r
+ if (stream_41 != NULL) stream_41->free(stream_41);\r
+ if (stream_37 != NULL) stream_37->free(stream_37);\r
+ if (stream_38 != NULL) stream_38->free(stream_38);\r
+ if (stream_value != NULL) stream_value->free(stream_value);\r
+\r
+ if (HASEXCEPTION())\r
+ {\r
+ PREPORTERROR();\r
+ PRECOVER();\r
+ retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));\r
+ }\r
+\r
+\r
+ return retval;\r
+}\r
+/* $ANTLR end array */\r
+\r
+/** \r
+ * $ANTLR start tuple\r
+ * C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:210:1: tuple : '(' ( value ( ',' value )* )? ')' -> ^( TUPLE ( value )* ) ;\r
+ */\r
+static SimanticsDataParser_tuple_return\r
+tuple(pSimanticsDataParser ctx)\r
+{ \r
+ SimanticsDataParser_tuple_return retval;\r
+\r
+ pANTLR3_BASE_TREE root_0;\r
+\r
+ pANTLR3_COMMON_TOKEN char_literal89;\r
+ pANTLR3_COMMON_TOKEN char_literal91;\r
+ pANTLR3_COMMON_TOKEN char_literal93;\r
+ SimanticsDataParser_value_return value90;\r
+ #undef RETURN_TYPE_value90\r
+ #define RETURN_TYPE_value90 SimanticsDataParser_value_return\r
+\r
+ SimanticsDataParser_value_return value92;\r
+ #undef RETURN_TYPE_value92\r
+ #define RETURN_TYPE_value92 SimanticsDataParser_value_return\r
+\r
+ pANTLR3_BASE_TREE char_literal89_tree;\r
+ pANTLR3_BASE_TREE char_literal91_tree;\r
+ pANTLR3_BASE_TREE char_literal93_tree;\r
+ pANTLR3_REWRITE_RULE_TOKEN_STREAM stream_42;\r
+ pANTLR3_REWRITE_RULE_TOKEN_STREAM stream_41;\r
+ pANTLR3_REWRITE_RULE_TOKEN_STREAM stream_40;\r
+ pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_value;\r
+ /* Initialize rule variables\r
+ */\r
+\r
+\r
+ root_0 = NULL;\r
+\r
+ char_literal89 = NULL;\r
+ char_literal91 = NULL;\r
+ char_literal93 = NULL;\r
+ value90.tree = NULL;\r
+\r
+ value92.tree = NULL;\r
+\r
+ retval.start = LT(1); retval.stop = retval.start;\r
+\r
+ char_literal89_tree = NULL;\r
+ char_literal91_tree = NULL;\r
+ char_literal93_tree = NULL;\r
+\r
+ stream_42 = NULL;\r
+ #define CREATE_stream_42 if (stream_42 == NULL) {stream_42 = antlr3RewriteRuleTOKENStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token 42"); } \r
+ stream_41 = NULL;\r
+ #define CREATE_stream_41 if (stream_41 == NULL) {stream_41 = antlr3RewriteRuleTOKENStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token 41"); } \r
+ stream_40 = NULL;\r
+ #define CREATE_stream_40 if (stream_40 == NULL) {stream_40 = antlr3RewriteRuleTOKENStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token 40"); } \r
+ stream_value = NULL;\r
+ #define CREATE_stream_value if (stream_value == NULL) {stream_value = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule value"); }\r
+\r
+ retval.tree = NULL;\r
+ {\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:211:5: ( '(' ( value ( ',' value )* )? ')' -> ^( TUPLE ( value )* ) )\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:211:7: '(' ( value ( ',' value )* )? ')'\r
+ {\r
+ char_literal89 = (pANTLR3_COMMON_TOKEN) MATCHT(40, &FOLLOW_40_in_tuple1694); \r
+ if (HASEXCEPTION())\r
+ {\r
+ goto ruletupleEx;\r
+ }\r
+ \r
+ CREATE_stream_40; stream_40->add(stream_40, char_literal89, NULL);\r
+\r
+\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:211:11: ( value ( ',' value )* )?\r
+ {\r
+ int alt24=2;\r
+ switch ( LA(1) ) \r
+ {\r
+ case ID:\r
+ case INT:\r
+ case FLOAT:\r
+ case STRING:\r
+ case 37:\r
+ case 40:\r
+ case 43:\r
+ case 46:\r
+ case 47:\r
+ case 48:\r
+ case 49:\r
+ {\r
+ alt24=1;\r
+ }\r
+ break;\r
+ }\r
+\r
+ switch (alt24) \r
+ {\r
+ case 1:\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:211:12: value ( ',' value )*\r
+ {\r
+ FOLLOWPUSH(FOLLOW_value_in_tuple1697);\r
+ value90=value(ctx);\r
+\r
+ FOLLOWPOP();\r
+ if (HASEXCEPTION())\r
+ {\r
+ goto ruletupleEx;\r
+ }\r
+\r
+ CREATE_stream_value; stream_value->add(stream_value, value90.tree, NULL);\r
+\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:211:18: ( ',' value )*\r
+\r
+ for (;;)\r
+ {\r
+ int alt23=2;\r
+ switch ( LA(1) ) \r
+ {\r
+ case 41:\r
+ {\r
+ alt23=1;\r
+ }\r
+ break;\r
+\r
+ }\r
+\r
+ switch (alt23) \r
+ {\r
+ case 1:\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:211:19: ',' value\r
+ {\r
+ char_literal91 = (pANTLR3_COMMON_TOKEN) MATCHT(41, &FOLLOW_41_in_tuple1700); \r
+ if (HASEXCEPTION())\r
+ {\r
+ goto ruletupleEx;\r
+ }\r
+ \r
+ CREATE_stream_41; stream_41->add(stream_41, char_literal91, NULL);\r
+\r
+ FOLLOWPUSH(FOLLOW_value_in_tuple1702);\r
+ value92=value(ctx);\r
+\r
+ FOLLOWPOP();\r
+ if (HASEXCEPTION())\r
+ {\r
+ goto ruletupleEx;\r
+ }\r
+\r
+ CREATE_stream_value; stream_value->add(stream_value, value92.tree, NULL);\r
+\r
+ }\r
+ break;\r
+\r
+ default:\r
+ goto loop23; /* break out of the loop */\r
+ break;\r
+ }\r
+ }\r
+ loop23: ; /* Jump out to here if this rule does not match */\r
+\r
+\r
+ }\r
+ break;\r
+\r
+ }\r
+ }\r
+ char_literal93 = (pANTLR3_COMMON_TOKEN) MATCHT(42, &FOLLOW_42_in_tuple1708); \r
+ if (HASEXCEPTION())\r
+ {\r
+ goto ruletupleEx;\r
+ }\r
+ \r
+ CREATE_stream_42; stream_42->add(stream_42, char_literal93, NULL);\r
+\r
+\r
+ \r
+ /* AST REWRITE\r
+ * elements : value\r
+ * token labels : \r
+ * rule labels : retval\r
+ * token list labels : \r
+ * rule list labels : \r
+ */\r
+ {\r
+ pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;\r
+\r
+ stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);\r
+\r
+ root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+ retval.tree = root_0;\r
+ // 212:5: -> ^( TUPLE ( value )* )\r
+ {\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:212:8: ^( TUPLE ( value )* )\r
+ {\r
+ pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+ root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, TUPLE, (pANTLR3_UINT8)"TUPLE"), root_1));\r
+\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:212:16: ( value )*\r
+ {\r
+ while ( (stream_value != NULL && stream_value->hasNext(stream_value)) )\r
+ {\r
+ ADAPTOR->addChild(ADAPTOR, root_1, stream_value == NULL ? NULL : stream_value->nextTree(stream_value));\r
+\r
+ }\r
+ if (stream_value != NULL) stream_value->reset(stream_value);\r
+\r
+ }\r
+\r
+ ADAPTOR->addChild(ADAPTOR, root_0, root_1);\r
+ }\r
+\r
+ }\r
+\r
+ retval.tree = root_0; // set result root\r
+ if (stream_retval != NULL) stream_retval->free(stream_retval);\r
+\r
+\r
+ }\r
+ }\r
+\r
+ }\r
+ \r
+\r
+ // This is where rules clean up and exit\r
+ //\r
+ goto ruletupleEx; /* Prevent compiler warnings */\r
+ ruletupleEx: ;\r
+ retval.stop = LT(-1);\r
+\r
+ retval.stop = LT(-1);\r
+ retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));\r
+ ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);\r
+ if (stream_42 != NULL) stream_42->free(stream_42);\r
+ if (stream_41 != NULL) stream_41->free(stream_41);\r
+ if (stream_40 != NULL) stream_40->free(stream_40);\r
+ if (stream_value != NULL) stream_value->free(stream_value);\r
+\r
+ if (HASEXCEPTION())\r
+ {\r
+ PREPORTERROR();\r
+ PRECOVER();\r
+ retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));\r
+ }\r
+\r
+\r
+ return retval;\r
+}\r
+/* $ANTLR end tuple */\r
+\r
+/** \r
+ * $ANTLR start taggedValue\r
+ * C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:215:1: taggedValue : ID basicValue -> ^( TAGGED_VALUE ID basicValue ) ;\r
+ */\r
+static SimanticsDataParser_taggedValue_return\r
+taggedValue(pSimanticsDataParser ctx)\r
+{ \r
+ SimanticsDataParser_taggedValue_return retval;\r
+\r
+ pANTLR3_BASE_TREE root_0;\r
+\r
+ pANTLR3_COMMON_TOKEN ID94;\r
+ SimanticsDataParser_basicValue_return basicValue95;\r
+ #undef RETURN_TYPE_basicValue95\r
+ #define RETURN_TYPE_basicValue95 SimanticsDataParser_basicValue_return\r
+\r
+ pANTLR3_BASE_TREE ID94_tree;\r
+ pANTLR3_REWRITE_RULE_TOKEN_STREAM stream_ID;\r
+ pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_basicValue;\r
+ /* Initialize rule variables\r
+ */\r
+\r
+\r
+ root_0 = NULL;\r
+\r
+ ID94 = NULL;\r
+ basicValue95.tree = NULL;\r
+\r
+ retval.start = LT(1); retval.stop = retval.start;\r
+\r
+ ID94_tree = NULL;\r
+\r
+ stream_ID = NULL;\r
+ #define CREATE_stream_ID if (stream_ID == NULL) {stream_ID = antlr3RewriteRuleTOKENStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token ID"); } \r
+ stream_basicValue = NULL;\r
+ #define CREATE_stream_basicValue if (stream_basicValue == NULL) {stream_basicValue = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule basicValue"); }\r
+\r
+ retval.tree = NULL;\r
+ {\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:216:5: ( ID basicValue -> ^( TAGGED_VALUE ID basicValue ) )\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:216:7: ID basicValue\r
+ {\r
+ ID94 = (pANTLR3_COMMON_TOKEN) MATCHT(ID, &FOLLOW_ID_in_taggedValue1740); \r
+ if (HASEXCEPTION())\r
+ {\r
+ goto ruletaggedValueEx;\r
+ }\r
+ \r
+ CREATE_stream_ID; stream_ID->add(stream_ID, ID94, NULL);\r
+\r
+ FOLLOWPUSH(FOLLOW_basicValue_in_taggedValue1742);\r
+ basicValue95=basicValue(ctx);\r
+\r
+ FOLLOWPOP();\r
+ if (HASEXCEPTION())\r
+ {\r
+ goto ruletaggedValueEx;\r
+ }\r
+\r
+ CREATE_stream_basicValue; stream_basicValue->add(stream_basicValue, basicValue95.tree, NULL);\r
+\r
+ \r
+ /* AST REWRITE\r
+ * elements : basicValue, ID\r
+ * token labels : \r
+ * rule labels : retval\r
+ * token list labels : \r
+ * rule list labels : \r
+ */\r
+ {\r
+ pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;\r
+\r
+ stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);\r
+\r
+ root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+ retval.tree = root_0;\r
+ // 217:5: -> ^( TAGGED_VALUE ID basicValue )\r
+ {\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:217:8: ^( TAGGED_VALUE ID basicValue )\r
+ {\r
+ pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+ root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, TAGGED_VALUE, (pANTLR3_UINT8)"TAGGED_VALUE"), root_1));\r
+\r
+ ADAPTOR->addChild(ADAPTOR, root_1, stream_ID == NULL ? NULL : stream_ID->nextNode(stream_ID));\r
+ ADAPTOR->addChild(ADAPTOR, root_1, stream_basicValue == NULL ? NULL : stream_basicValue->nextTree(stream_basicValue));\r
+\r
+ ADAPTOR->addChild(ADAPTOR, root_0, root_1);\r
+ }\r
+\r
+ }\r
+\r
+ retval.tree = root_0; // set result root\r
+ if (stream_retval != NULL) stream_retval->free(stream_retval);\r
+\r
+\r
+ }\r
+ }\r
+\r
+ }\r
+ \r
+\r
+ // This is where rules clean up and exit\r
+ //\r
+ goto ruletaggedValueEx; /* Prevent compiler warnings */\r
+ ruletaggedValueEx: ;\r
+ retval.stop = LT(-1);\r
+\r
+ retval.stop = LT(-1);\r
+ retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));\r
+ ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);\r
+ if (stream_ID != NULL) stream_ID->free(stream_ID);\r
+ if (stream_basicValue != NULL) stream_basicValue->free(stream_basicValue);\r
+\r
+ if (HASEXCEPTION())\r
+ {\r
+ PREPORTERROR();\r
+ PRECOVER();\r
+ retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));\r
+ }\r
+\r
+\r
+ return retval;\r
+}\r
+/* $ANTLR end taggedValue */\r
+\r
+/** \r
+ * $ANTLR start record\r
+ * C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:220:1: record : '{' ( recordAssignment ( ',' recordAssignment )* )? '}' -> ^( RECORD ( recordAssignment )* ) ;\r
+ */\r
+static SimanticsDataParser_record_return\r
+record(pSimanticsDataParser ctx)\r
+{ \r
+ SimanticsDataParser_record_return retval;\r
+\r
+ pANTLR3_BASE_TREE root_0;\r
+\r
+ pANTLR3_COMMON_TOKEN char_literal96;\r
+ pANTLR3_COMMON_TOKEN char_literal98;\r
+ pANTLR3_COMMON_TOKEN char_literal100;\r
+ SimanticsDataParser_recordAssignment_return recordAssignment97;\r
+ #undef RETURN_TYPE_recordAssignment97\r
+ #define RETURN_TYPE_recordAssignment97 SimanticsDataParser_recordAssignment_return\r
+\r
+ SimanticsDataParser_recordAssignment_return recordAssignment99;\r
+ #undef RETURN_TYPE_recordAssignment99\r
+ #define RETURN_TYPE_recordAssignment99 SimanticsDataParser_recordAssignment_return\r
+\r
+ pANTLR3_BASE_TREE char_literal96_tree;\r
+ pANTLR3_BASE_TREE char_literal98_tree;\r
+ pANTLR3_BASE_TREE char_literal100_tree;\r
+ pANTLR3_REWRITE_RULE_TOKEN_STREAM stream_43;\r
+ pANTLR3_REWRITE_RULE_TOKEN_STREAM stream_44;\r
+ pANTLR3_REWRITE_RULE_TOKEN_STREAM stream_41;\r
+ pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_recordAssignment;\r
+ /* Initialize rule variables\r
+ */\r
+\r
+\r
+ root_0 = NULL;\r
+\r
+ char_literal96 = NULL;\r
+ char_literal98 = NULL;\r
+ char_literal100 = NULL;\r
+ recordAssignment97.tree = NULL;\r
+\r
+ recordAssignment99.tree = NULL;\r
+\r
+ retval.start = LT(1); retval.stop = retval.start;\r
+\r
+ char_literal96_tree = NULL;\r
+ char_literal98_tree = NULL;\r
+ char_literal100_tree = NULL;\r
+\r
+ stream_43 = NULL;\r
+ #define CREATE_stream_43 if (stream_43 == NULL) {stream_43 = antlr3RewriteRuleTOKENStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token 43"); } \r
+ stream_44 = NULL;\r
+ #define CREATE_stream_44 if (stream_44 == NULL) {stream_44 = antlr3RewriteRuleTOKENStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token 44"); } \r
+ stream_41 = NULL;\r
+ #define CREATE_stream_41 if (stream_41 == NULL) {stream_41 = antlr3RewriteRuleTOKENStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token 41"); } \r
+ stream_recordAssignment = NULL;\r
+ #define CREATE_stream_recordAssignment if (stream_recordAssignment == NULL) {stream_recordAssignment = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule recordAssignment"); }\r
+\r
+ retval.tree = NULL;\r
+ {\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:221:5: ( '{' ( recordAssignment ( ',' recordAssignment )* )? '}' -> ^( RECORD ( recordAssignment )* ) )\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:221:7: '{' ( recordAssignment ( ',' recordAssignment )* )? '}'\r
+ {\r
+ char_literal96 = (pANTLR3_COMMON_TOKEN) MATCHT(43, &FOLLOW_43_in_record1775); \r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulerecordEx;\r
+ }\r
+ \r
+ CREATE_stream_43; stream_43->add(stream_43, char_literal96, NULL);\r
+\r
+\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:221:11: ( recordAssignment ( ',' recordAssignment )* )?\r
+ {\r
+ int alt26=2;\r
+ switch ( LA(1) ) \r
+ {\r
+ case ID:\r
+ {\r
+ alt26=1;\r
+ }\r
+ break;\r
+ }\r
+\r
+ switch (alt26) \r
+ {\r
+ case 1:\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:221:12: recordAssignment ( ',' recordAssignment )*\r
+ {\r
+ FOLLOWPUSH(FOLLOW_recordAssignment_in_record1778);\r
+ recordAssignment97=recordAssignment(ctx);\r
+\r
+ FOLLOWPOP();\r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulerecordEx;\r
+ }\r
+\r
+ CREATE_stream_recordAssignment; stream_recordAssignment->add(stream_recordAssignment, recordAssignment97.tree, NULL);\r
+\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:221:29: ( ',' recordAssignment )*\r
+\r
+ for (;;)\r
+ {\r
+ int alt25=2;\r
+ switch ( LA(1) ) \r
+ {\r
+ case 41:\r
+ {\r
+ alt25=1;\r
+ }\r
+ break;\r
+\r
+ }\r
+\r
+ switch (alt25) \r
+ {\r
+ case 1:\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:221:30: ',' recordAssignment\r
+ {\r
+ char_literal98 = (pANTLR3_COMMON_TOKEN) MATCHT(41, &FOLLOW_41_in_record1781); \r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulerecordEx;\r
+ }\r
+ \r
+ CREATE_stream_41; stream_41->add(stream_41, char_literal98, NULL);\r
+\r
+ FOLLOWPUSH(FOLLOW_recordAssignment_in_record1783);\r
+ recordAssignment99=recordAssignment(ctx);\r
+\r
+ FOLLOWPOP();\r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulerecordEx;\r
+ }\r
+\r
+ CREATE_stream_recordAssignment; stream_recordAssignment->add(stream_recordAssignment, recordAssignment99.tree, NULL);\r
+\r
+ }\r
+ break;\r
+\r
+ default:\r
+ goto loop25; /* break out of the loop */\r
+ break;\r
+ }\r
+ }\r
+ loop25: ; /* Jump out to here if this rule does not match */\r
+\r
+\r
+ }\r
+ break;\r
+\r
+ }\r
+ }\r
+ char_literal100 = (pANTLR3_COMMON_TOKEN) MATCHT(44, &FOLLOW_44_in_record1789); \r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulerecordEx;\r
+ }\r
+ \r
+ CREATE_stream_44; stream_44->add(stream_44, char_literal100, NULL);\r
+\r
+\r
+ \r
+ /* AST REWRITE\r
+ * elements : recordAssignment\r
+ * token labels : \r
+ * rule labels : retval\r
+ * token list labels : \r
+ * rule list labels : \r
+ */\r
+ {\r
+ pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;\r
+\r
+ stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);\r
+\r
+ root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+ retval.tree = root_0;\r
+ // 222:5: -> ^( RECORD ( recordAssignment )* )\r
+ {\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:222:8: ^( RECORD ( recordAssignment )* )\r
+ {\r
+ pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+ root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, RECORD, (pANTLR3_UINT8)"RECORD"), root_1));\r
+\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:222:17: ( recordAssignment )*\r
+ {\r
+ while ( (stream_recordAssignment != NULL && stream_recordAssignment->hasNext(stream_recordAssignment)) )\r
+ {\r
+ ADAPTOR->addChild(ADAPTOR, root_1, stream_recordAssignment == NULL ? NULL : stream_recordAssignment->nextTree(stream_recordAssignment));\r
+\r
+ }\r
+ if (stream_recordAssignment != NULL) stream_recordAssignment->reset(stream_recordAssignment);\r
+\r
+ }\r
+\r
+ ADAPTOR->addChild(ADAPTOR, root_0, root_1);\r
+ }\r
+\r
+ }\r
+\r
+ retval.tree = root_0; // set result root\r
+ if (stream_retval != NULL) stream_retval->free(stream_retval);\r
+\r
+\r
+ }\r
+ }\r
+\r
+ }\r
+ \r
+\r
+ // This is where rules clean up and exit\r
+ //\r
+ goto rulerecordEx; /* Prevent compiler warnings */\r
+ rulerecordEx: ;\r
+ retval.stop = LT(-1);\r
+\r
+ retval.stop = LT(-1);\r
+ retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));\r
+ ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);\r
+ if (stream_43 != NULL) stream_43->free(stream_43);\r
+ if (stream_44 != NULL) stream_44->free(stream_44);\r
+ if (stream_41 != NULL) stream_41->free(stream_41);\r
+ if (stream_recordAssignment != NULL) stream_recordAssignment->free(stream_recordAssignment);\r
+\r
+ if (HASEXCEPTION())\r
+ {\r
+ PREPORTERROR();\r
+ PRECOVER();\r
+ retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));\r
+ }\r
+\r
+\r
+ return retval;\r
+}\r
+/* $ANTLR end record */\r
+\r
+/** \r
+ * $ANTLR start recordAssignment\r
+ * C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:225:1: recordAssignment : ID '=' value -> ^( ASSIGNMENT ID value ) ;\r
+ */\r
+static SimanticsDataParser_recordAssignment_return\r
+recordAssignment(pSimanticsDataParser ctx)\r
+{ \r
+ SimanticsDataParser_recordAssignment_return retval;\r
+\r
+ pANTLR3_BASE_TREE root_0;\r
+\r
+ pANTLR3_COMMON_TOKEN ID101;\r
+ pANTLR3_COMMON_TOKEN char_literal102;\r
+ SimanticsDataParser_value_return value103;\r
+ #undef RETURN_TYPE_value103\r
+ #define RETURN_TYPE_value103 SimanticsDataParser_value_return\r
+\r
+ pANTLR3_BASE_TREE ID101_tree;\r
+ pANTLR3_BASE_TREE char_literal102_tree;\r
+ pANTLR3_REWRITE_RULE_TOKEN_STREAM stream_ID;\r
+ pANTLR3_REWRITE_RULE_TOKEN_STREAM stream_35;\r
+ pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_value;\r
+ /* Initialize rule variables\r
+ */\r
+\r
+\r
+ root_0 = NULL;\r
+\r
+ ID101 = NULL;\r
+ char_literal102 = NULL;\r
+ value103.tree = NULL;\r
+\r
+ retval.start = LT(1); retval.stop = retval.start;\r
+\r
+ ID101_tree = NULL;\r
+ char_literal102_tree = NULL;\r
+\r
+ stream_ID = NULL;\r
+ #define CREATE_stream_ID if (stream_ID == NULL) {stream_ID = antlr3RewriteRuleTOKENStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token ID"); } \r
+ stream_35 = NULL;\r
+ #define CREATE_stream_35 if (stream_35 == NULL) {stream_35 = antlr3RewriteRuleTOKENStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token 35"); } \r
+ stream_value = NULL;\r
+ #define CREATE_stream_value if (stream_value == NULL) {stream_value = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule value"); }\r
+\r
+ retval.tree = NULL;\r
+ {\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:226:5: ( ID '=' value -> ^( ASSIGNMENT ID value ) )\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:226:7: ID '=' value\r
+ {\r
+ ID101 = (pANTLR3_COMMON_TOKEN) MATCHT(ID, &FOLLOW_ID_in_recordAssignment1821); \r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulerecordAssignmentEx;\r
+ }\r
+ \r
+ CREATE_stream_ID; stream_ID->add(stream_ID, ID101, NULL);\r
+\r
+ char_literal102 = (pANTLR3_COMMON_TOKEN) MATCHT(35, &FOLLOW_35_in_recordAssignment1823); \r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulerecordAssignmentEx;\r
+ }\r
+ \r
+ CREATE_stream_35; stream_35->add(stream_35, char_literal102, NULL);\r
+\r
+ FOLLOWPUSH(FOLLOW_value_in_recordAssignment1825);\r
+ value103=value(ctx);\r
+\r
+ FOLLOWPOP();\r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulerecordAssignmentEx;\r
+ }\r
+\r
+ CREATE_stream_value; stream_value->add(stream_value, value103.tree, NULL);\r
+\r
+ \r
+ /* AST REWRITE\r
+ * elements : value, ID\r
+ * token labels : \r
+ * rule labels : retval\r
+ * token list labels : \r
+ * rule list labels : \r
+ */\r
+ {\r
+ pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;\r
+\r
+ stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);\r
+\r
+ root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+ retval.tree = root_0;\r
+ // 227:5: -> ^( ASSIGNMENT ID value )\r
+ {\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:227:8: ^( ASSIGNMENT ID value )\r
+ {\r
+ pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+ root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, ASSIGNMENT, (pANTLR3_UINT8)"ASSIGNMENT"), root_1));\r
+\r
+ ADAPTOR->addChild(ADAPTOR, root_1, stream_ID == NULL ? NULL : stream_ID->nextNode(stream_ID));\r
+ ADAPTOR->addChild(ADAPTOR, root_1, stream_value == NULL ? NULL : stream_value->nextTree(stream_value));\r
+\r
+ ADAPTOR->addChild(ADAPTOR, root_0, root_1);\r
+ }\r
+\r
+ }\r
+\r
+ retval.tree = root_0; // set result root\r
+ if (stream_retval != NULL) stream_retval->free(stream_retval);\r
+\r
+\r
+ }\r
+ }\r
+\r
+ }\r
+ \r
+\r
+ // This is where rules clean up and exit\r
+ //\r
+ goto rulerecordAssignmentEx; /* Prevent compiler warnings */\r
+ rulerecordAssignmentEx: ;\r
+ retval.stop = LT(-1);\r
+\r
+ retval.stop = LT(-1);\r
+ retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));\r
+ ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);\r
+ if (stream_ID != NULL) stream_ID->free(stream_ID);\r
+ if (stream_35 != NULL) stream_35->free(stream_35);\r
+ if (stream_value != NULL) stream_value->free(stream_value);\r
+\r
+ if (HASEXCEPTION())\r
+ {\r
+ PREPORTERROR();\r
+ PRECOVER();\r
+ retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));\r
+ }\r
+\r
+\r
+ return retval;\r
+}\r
+/* $ANTLR end recordAssignment */\r
+\r
+/** \r
+ * $ANTLR start map\r
+ * C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:230:1: map : 'map' '{' ( mapAssignment ( ',' mapAssignment )* )? '}' -> ^( MAP ( mapAssignment )* ) ;\r
+ */\r
+static SimanticsDataParser_map_return\r
+map(pSimanticsDataParser ctx)\r
+{ \r
+ SimanticsDataParser_map_return retval;\r
+\r
+ pANTLR3_BASE_TREE root_0;\r
+\r
+ pANTLR3_COMMON_TOKEN string_literal104;\r
+ pANTLR3_COMMON_TOKEN char_literal105;\r
+ pANTLR3_COMMON_TOKEN char_literal107;\r
+ pANTLR3_COMMON_TOKEN char_literal109;\r
+ SimanticsDataParser_mapAssignment_return mapAssignment106;\r
+ #undef RETURN_TYPE_mapAssignment106\r
+ #define RETURN_TYPE_mapAssignment106 SimanticsDataParser_mapAssignment_return\r
+\r
+ SimanticsDataParser_mapAssignment_return mapAssignment108;\r
+ #undef RETURN_TYPE_mapAssignment108\r
+ #define RETURN_TYPE_mapAssignment108 SimanticsDataParser_mapAssignment_return\r
+\r
+ pANTLR3_BASE_TREE string_literal104_tree;\r
+ pANTLR3_BASE_TREE char_literal105_tree;\r
+ pANTLR3_BASE_TREE char_literal107_tree;\r
+ pANTLR3_BASE_TREE char_literal109_tree;\r
+ pANTLR3_REWRITE_RULE_TOKEN_STREAM stream_49;\r
+ pANTLR3_REWRITE_RULE_TOKEN_STREAM stream_43;\r
+ pANTLR3_REWRITE_RULE_TOKEN_STREAM stream_44;\r
+ pANTLR3_REWRITE_RULE_TOKEN_STREAM stream_41;\r
+ pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_mapAssignment;\r
+ /* Initialize rule variables\r
+ */\r
+\r
+\r
+ root_0 = NULL;\r
+\r
+ string_literal104 = NULL;\r
+ char_literal105 = NULL;\r
+ char_literal107 = NULL;\r
+ char_literal109 = NULL;\r
+ mapAssignment106.tree = NULL;\r
+\r
+ mapAssignment108.tree = NULL;\r
+\r
+ retval.start = LT(1); retval.stop = retval.start;\r
+\r
+ string_literal104_tree = NULL;\r
+ char_literal105_tree = NULL;\r
+ char_literal107_tree = NULL;\r
+ char_literal109_tree = NULL;\r
+\r
+ stream_49 = NULL;\r
+ #define CREATE_stream_49 if (stream_49 == NULL) {stream_49 = antlr3RewriteRuleTOKENStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token 49"); } \r
+ stream_43 = NULL;\r
+ #define CREATE_stream_43 if (stream_43 == NULL) {stream_43 = antlr3RewriteRuleTOKENStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token 43"); } \r
+ stream_44 = NULL;\r
+ #define CREATE_stream_44 if (stream_44 == NULL) {stream_44 = antlr3RewriteRuleTOKENStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token 44"); } \r
+ stream_41 = NULL;\r
+ #define CREATE_stream_41 if (stream_41 == NULL) {stream_41 = antlr3RewriteRuleTOKENStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token 41"); } \r
+ stream_mapAssignment = NULL;\r
+ #define CREATE_stream_mapAssignment if (stream_mapAssignment == NULL) {stream_mapAssignment = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule mapAssignment"); }\r
+\r
+ retval.tree = NULL;\r
+ {\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:230:5: ( 'map' '{' ( mapAssignment ( ',' mapAssignment )* )? '}' -> ^( MAP ( mapAssignment )* ) )\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:230:7: 'map' '{' ( mapAssignment ( ',' mapAssignment )* )? '}'\r
+ {\r
+ string_literal104 = (pANTLR3_COMMON_TOKEN) MATCHT(49, &FOLLOW_49_in_map1852); \r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulemapEx;\r
+ }\r
+ \r
+ CREATE_stream_49; stream_49->add(stream_49, string_literal104, NULL);\r
+\r
+ char_literal105 = (pANTLR3_COMMON_TOKEN) MATCHT(43, &FOLLOW_43_in_map1854); \r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulemapEx;\r
+ }\r
+ \r
+ CREATE_stream_43; stream_43->add(stream_43, char_literal105, NULL);\r
+\r
+\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:230:17: ( mapAssignment ( ',' mapAssignment )* )?\r
+ {\r
+ int alt28=2;\r
+ switch ( LA(1) ) \r
+ {\r
+ case ID:\r
+ case INT:\r
+ case FLOAT:\r
+ case STRING:\r
+ case 37:\r
+ case 40:\r
+ case 43:\r
+ case 46:\r
+ case 47:\r
+ case 48:\r
+ case 49:\r
+ {\r
+ alt28=1;\r
+ }\r
+ break;\r
+ }\r
+\r
+ switch (alt28) \r
+ {\r
+ case 1:\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:230:18: mapAssignment ( ',' mapAssignment )*\r
+ {\r
+ FOLLOWPUSH(FOLLOW_mapAssignment_in_map1857);\r
+ mapAssignment106=mapAssignment(ctx);\r
+\r
+ FOLLOWPOP();\r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulemapEx;\r
+ }\r
+\r
+ CREATE_stream_mapAssignment; stream_mapAssignment->add(stream_mapAssignment, mapAssignment106.tree, NULL);\r
+\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:230:32: ( ',' mapAssignment )*\r
+\r
+ for (;;)\r
+ {\r
+ int alt27=2;\r
+ switch ( LA(1) ) \r
+ {\r
+ case 41:\r
+ {\r
+ alt27=1;\r
+ }\r
+ break;\r
+\r
+ }\r
+\r
+ switch (alt27) \r
+ {\r
+ case 1:\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:230:33: ',' mapAssignment\r
+ {\r
+ char_literal107 = (pANTLR3_COMMON_TOKEN) MATCHT(41, &FOLLOW_41_in_map1860); \r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulemapEx;\r
+ }\r
+ \r
+ CREATE_stream_41; stream_41->add(stream_41, char_literal107, NULL);\r
+\r
+ FOLLOWPUSH(FOLLOW_mapAssignment_in_map1862);\r
+ mapAssignment108=mapAssignment(ctx);\r
+\r
+ FOLLOWPOP();\r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulemapEx;\r
+ }\r
+\r
+ CREATE_stream_mapAssignment; stream_mapAssignment->add(stream_mapAssignment, mapAssignment108.tree, NULL);\r
+\r
+ }\r
+ break;\r
+\r
+ default:\r
+ goto loop27; /* break out of the loop */\r
+ break;\r
+ }\r
+ }\r
+ loop27: ; /* Jump out to here if this rule does not match */\r
+\r
+\r
+ }\r
+ break;\r
+\r
+ }\r
+ }\r
+ char_literal109 = (pANTLR3_COMMON_TOKEN) MATCHT(44, &FOLLOW_44_in_map1868); \r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulemapEx;\r
+ }\r
+ \r
+ CREATE_stream_44; stream_44->add(stream_44, char_literal109, NULL);\r
+\r
+\r
+ \r
+ /* AST REWRITE\r
+ * elements : mapAssignment\r
+ * token labels : \r
+ * rule labels : retval\r
+ * token list labels : \r
+ * rule list labels : \r
+ */\r
+ {\r
+ pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;\r
+\r
+ stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);\r
+\r
+ root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+ retval.tree = root_0;\r
+ // 231:5: -> ^( MAP ( mapAssignment )* )\r
+ {\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:231:8: ^( MAP ( mapAssignment )* )\r
+ {\r
+ pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+ root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, MAP, (pANTLR3_UINT8)"MAP"), root_1));\r
+\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:231:14: ( mapAssignment )*\r
+ {\r
+ while ( (stream_mapAssignment != NULL && stream_mapAssignment->hasNext(stream_mapAssignment)) )\r
+ {\r
+ ADAPTOR->addChild(ADAPTOR, root_1, stream_mapAssignment == NULL ? NULL : stream_mapAssignment->nextTree(stream_mapAssignment));\r
+\r
+ }\r
+ if (stream_mapAssignment != NULL) stream_mapAssignment->reset(stream_mapAssignment);\r
+\r
+ }\r
+\r
+ ADAPTOR->addChild(ADAPTOR, root_0, root_1);\r
+ }\r
+\r
+ }\r
+\r
+ retval.tree = root_0; // set result root\r
+ if (stream_retval != NULL) stream_retval->free(stream_retval);\r
+\r
+\r
+ }\r
+ }\r
+\r
+ }\r
+ \r
+\r
+ // This is where rules clean up and exit\r
+ //\r
+ goto rulemapEx; /* Prevent compiler warnings */\r
+ rulemapEx: ;\r
+ retval.stop = LT(-1);\r
+\r
+ retval.stop = LT(-1);\r
+ retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));\r
+ ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);\r
+ if (stream_49 != NULL) stream_49->free(stream_49);\r
+ if (stream_43 != NULL) stream_43->free(stream_43);\r
+ if (stream_44 != NULL) stream_44->free(stream_44);\r
+ if (stream_41 != NULL) stream_41->free(stream_41);\r
+ if (stream_mapAssignment != NULL) stream_mapAssignment->free(stream_mapAssignment);\r
+\r
+ if (HASEXCEPTION())\r
+ {\r
+ PREPORTERROR();\r
+ PRECOVER();\r
+ retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));\r
+ }\r
+\r
+\r
+ return retval;\r
+}\r
+/* $ANTLR end map */\r
+\r
+/** \r
+ * $ANTLR start mapAssignment\r
+ * C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:234:1: mapAssignment : value '=' value -> ^( ASSIGNMENT ( value )* ) ;\r
+ */\r
+static SimanticsDataParser_mapAssignment_return\r
+mapAssignment(pSimanticsDataParser ctx)\r
+{ \r
+ SimanticsDataParser_mapAssignment_return retval;\r
+\r
+ pANTLR3_BASE_TREE root_0;\r
+\r
+ pANTLR3_COMMON_TOKEN char_literal111;\r
+ SimanticsDataParser_value_return value110;\r
+ #undef RETURN_TYPE_value110\r
+ #define RETURN_TYPE_value110 SimanticsDataParser_value_return\r
+\r
+ SimanticsDataParser_value_return value112;\r
+ #undef RETURN_TYPE_value112\r
+ #define RETURN_TYPE_value112 SimanticsDataParser_value_return\r
+\r
+ pANTLR3_BASE_TREE char_literal111_tree;\r
+ pANTLR3_REWRITE_RULE_TOKEN_STREAM stream_35;\r
+ pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_value;\r
+ /* Initialize rule variables\r
+ */\r
+\r
+\r
+ root_0 = NULL;\r
+\r
+ char_literal111 = NULL;\r
+ value110.tree = NULL;\r
+\r
+ value112.tree = NULL;\r
+\r
+ retval.start = LT(1); retval.stop = retval.start;\r
+\r
+ char_literal111_tree = NULL;\r
+\r
+ stream_35 = NULL;\r
+ #define CREATE_stream_35 if (stream_35 == NULL) {stream_35 = antlr3RewriteRuleTOKENStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token 35"); } \r
+ stream_value = NULL;\r
+ #define CREATE_stream_value if (stream_value == NULL) {stream_value = antlr3RewriteRuleSubtreeStreamNewAE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"rule value"); }\r
+\r
+ retval.tree = NULL;\r
+ {\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:235:5: ( value '=' value -> ^( ASSIGNMENT ( value )* ) )\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:235:7: value '=' value\r
+ {\r
+ FOLLOWPUSH(FOLLOW_value_in_mapAssignment1900);\r
+ value110=value(ctx);\r
+\r
+ FOLLOWPOP();\r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulemapAssignmentEx;\r
+ }\r
+\r
+ CREATE_stream_value; stream_value->add(stream_value, value110.tree, NULL);\r
+ char_literal111 = (pANTLR3_COMMON_TOKEN) MATCHT(35, &FOLLOW_35_in_mapAssignment1902); \r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulemapAssignmentEx;\r
+ }\r
+ \r
+ CREATE_stream_35; stream_35->add(stream_35, char_literal111, NULL);\r
+\r
+ FOLLOWPUSH(FOLLOW_value_in_mapAssignment1904);\r
+ value112=value(ctx);\r
+\r
+ FOLLOWPOP();\r
+ if (HASEXCEPTION())\r
+ {\r
+ goto rulemapAssignmentEx;\r
+ }\r
+\r
+ CREATE_stream_value; stream_value->add(stream_value, value112.tree, NULL);\r
+\r
+ \r
+ /* AST REWRITE\r
+ * elements : value\r
+ * token labels : \r
+ * rule labels : retval\r
+ * token list labels : \r
+ * rule list labels : \r
+ */\r
+ {\r
+ pANTLR3_REWRITE_RULE_SUBTREE_STREAM stream_retval;\r
+\r
+ stream_retval=antlr3RewriteRuleSubtreeStreamNewAEE(ADAPTOR, RECOGNIZER, (pANTLR3_UINT8)"token retval", retval.tree != NULL ? retval.tree : NULL);\r
+\r
+ root_0 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+ retval.tree = root_0;\r
+ // 236:5: -> ^( ASSIGNMENT ( value )* )\r
+ {\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:236:8: ^( ASSIGNMENT ( value )* )\r
+ {\r
+ pANTLR3_BASE_TREE root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->nilNode(ADAPTOR));\r
+ root_1 = (pANTLR3_BASE_TREE)(ADAPTOR->becomeRoot(ADAPTOR, (pANTLR3_BASE_TREE)ADAPTOR->createTypeText(ADAPTOR, ASSIGNMENT, (pANTLR3_UINT8)"ASSIGNMENT"), root_1));\r
+\r
+ // C:\\Simantics\\workspace\\org.simantics.databoard\\cpp\\DataBoardTest\\DataBoard\\SimanticsData.g:236:21: ( value )*\r
+ {\r
+ while ( (stream_value != NULL && stream_value->hasNext(stream_value)) )\r
+ {\r
+ ADAPTOR->addChild(ADAPTOR, root_1, stream_value == NULL ? NULL : stream_value->nextTree(stream_value));\r
+\r
+ }\r
+ if (stream_value != NULL) stream_value->reset(stream_value);\r
+\r
+ }\r
+\r
+ ADAPTOR->addChild(ADAPTOR, root_0, root_1);\r
+ }\r
+\r
+ }\r
+\r
+ retval.tree = root_0; // set result root\r
+ if (stream_retval != NULL) stream_retval->free(stream_retval);\r
+\r
+\r
+ }\r
+ }\r
+\r
+ }\r
+ \r
+\r
+ // This is where rules clean up and exit\r
+ //\r
+ goto rulemapAssignmentEx; /* Prevent compiler warnings */\r
+ rulemapAssignmentEx: ;\r
+ retval.stop = LT(-1);\r
+\r
+ retval.stop = LT(-1);\r
+ retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->rulePostProcessing(ADAPTOR, root_0));\r
+ ADAPTOR->setTokenBoundaries(ADAPTOR, retval.tree, retval.start, retval.stop);\r
+ if (stream_35 != NULL) stream_35->free(stream_35);\r
+ if (stream_value != NULL) stream_value->free(stream_value);\r
+\r
+ if (HASEXCEPTION())\r
+ {\r
+ PREPORTERROR();\r
+ PRECOVER();\r
+ retval.tree = (pANTLR3_BASE_TREE)(ADAPTOR->errorNode(ADAPTOR, INPUT, retval.start, LT(-1), EXCEPTION));\r
+ }\r
+\r
+\r
+ return retval;\r
+}\r
+/* $ANTLR end mapAssignment */\r
+/* End of parsing rules\r
+ * ==============================================\r
+ */\r
+\r
+/* ==============================================\r
+ * Syntactic predicates\r
+ */\r
+/* End of syntactic predicates\r
+ * ==============================================\r
+ */\r
+\r
+ \r
+ \r
+\r
+\r
+\r
+/* End of code\r
+ * =============================================================================\r
+ */\r