[Pntool-developers] SF.net SVN: pntool:[64] translator
Brought to you by:
compaqdrew,
miordache
From: <the...@us...> - 2009-06-17 21:14:23
|
Revision: 64 http://pntool.svn.sourceforge.net/pntool/?rev=64&view=rev Author: thecodeweasel Date: 2009-06-17 21:14:16 +0000 (Wed, 17 Jun 2009) Log Message: ----------- Implemented a primitive associative array structure Temporarily dropped functionality added in r62 Transitioned code to use associative arrays instead of hash tables Modified Paths: -------------- translator/Makefile translator/main.c translator/pngenerator.c translator/pngenerator.g translator/pngenerator.h translator/pnscript.g translator/pnscriptLexer.c translator/pnscriptLexer.h translator/pnscriptParser.c translator/pnscriptParser.h Added Paths: ----------- translator/dataStructures.c translator/dataStructures.h Modified: translator/Makefile =================================================================== --- translator/Makefile 2009-06-17 20:56:13 UTC (rev 63) +++ translator/Makefile 2009-06-17 21:14:16 UTC (rev 64) @@ -1,17 +1,20 @@ COMPILER=gcc -g INCLUDES=-iquote../pnheaders -Iclibs -Iclibs/include -pnscript : main.o pnscriptParser.o pnscriptLexer.o pncompactor.o pngenerator.o - $(COMPILER) -o pnscript main.o pnscriptParser.o pnscriptLexer.o pncompactor.o pngenerator.o ../pnheaders/*.o clibs/*.o +pnscript : dataStructures.o main.o pnscriptParser.o pnscriptLexer.o pncompactor.o pngenerator.o + $(COMPILER) -o pnscript dataStructures.o main.o pnscriptParser.o pnscriptLexer.o pncompactor.o pngenerator.o ../pnheaders/*.o clibs/*.o #Make external libraries here (if necessary) #patch the source BEFORE building it! -main.o : main.c treeparser.h +dataStructures.o : dataStructures.h #If the patch has already been applied it will fail. #This fixes the problem as quietly as possible patch -Ns -p0 < clibs.patch || true if ! test -e clibs/Makefile; then cd clibs; ./configure --silent; make --silent; fi if ! test -e ../pnheaders/pns.o; then cd ../pnheaders; make --silent; fi + $(COMPILER) -c dataStructures.c $(INCLUDES) + +main.o : main.c treeparser.h $(COMPILER) -c main.c $(INCLUDES) pnscriptParser.o : pnscriptParser.h Added: translator/dataStructures.c =================================================================== --- translator/dataStructures.c (rev 0) +++ translator/dataStructures.c 2009-06-17 21:14:16 UTC (rev 64) @@ -0,0 +1,122 @@ +#include <stdbool.h> +#include "dataStructures.h" +#include "general.h" + +//ints are 4 bytes wide, chars are 1 byte wide +static void arrayDelete (ASSOC_ARRAY* array, void* key); +static void* arrayRemove (ASSOC_ARRAY* array, void* key); +static void* arrayGet (ASSOC_ARRAY* array, void* key); +static ANTLR3_INT32 arrayAdd (ASSOC_ARRAY* array, void* key, void* element, void (ANTLR3_CDECL* freeptr)(void*)); +static ANTLR3_UINT32 arraySet (ASSOC_ARRAY* array, ANTLR3_UINT32 key, void* element, void (ANTLR3_CDECL* freeptr)(void*)); +static void arrayFree (ASSOC_ARRAY* array); +static ANTLR3_UINT32 arraySize (ASSOC_ARRAY* array); + +ASSOC_ARRAY* newAssocArray(ANTLR3_UINT32 sizeHint) { + ASSOC_ARRAY* ret; + pANTLR3_VECTOR_FACTORY factory; + ret = tmalloc(sizeof(ASSOC_ARRAY)); + + ret->table = antlr3HashTableNew(sizeHint); + factory = antlr3VectorFactoryNew(sizeHint); + ret->list = factory->newVector(factory); + + ret->del = arrayDelete; + ret->remove = arrayRemove; + ret->get = arrayGet; + ret->add = arrayAdd; + ret->set = arraySet; + ret->free = arrayFree; + ret->size = arraySize; + + return ret; +} + +bool isInt(void* key) { + if(sizeof(*key) == 4) + return true; + return false; +} + +void arrayDelete(ASSOC_ARRAY* array, void* key) { + if(isInt(key)) { + char* strKey; + strKey = (char*) array->list->get(array->list, *((int*)key)); + array->list->del(array->list, *((int*)key)); + array->table->del(array->table, strKey); + } else { + int intKey; + intKey = *((int*) array->table->get(array->table, (char*) key)); + array->list->del(array->list, intKey); + array->table->del(array->table, (char*) key); + } +} + +void* arrayRemove(ASSOC_ARRAY* array, void* key) { + void* ret; + if(isInt(key)) { + char* strKey; + strKey = (char*) array->list->get(array->list, *((int*)key)); + array->list->del(array->list, *((int*)key)); + ret = array->table->remove(array->table, strKey); + } else { + int intKey; + intKey = *((int*) array->table->get(array->table, (char*) key)); + array->list->del(array->list, intKey); + ret = array->table->remove(array->table, (char*) key); + } + return ret; +} + +void* arrayGet(ASSOC_ARRAY* array, void* key) { + void* ret; + if(isInt(key)) { + char* strKey; + strKey = (char*) array->list->get(array->list, *((int*)key)); + ret = array->table->get(array->table, strKey); + } else { + ret = array->table->get(array->table, (char*) key); + } + return ret; +} + +ANTLR3_INT32 arrayAdd(ASSOC_ARRAY* array, void* key, void* element, void (ANTLR3_CDECL* freeptr)(void*)) { + ANTLR3_INT32 ret; + char* strKey; + strKey = (char*) key; + //ALWAYS free from the hash table + array->table->put(array->table, strKey, element, freeptr); + array->list->add(array->list, strKey, NULL); + return ret; +} + +ANTLR3_UINT32 arraySet(ASSOC_ARRAY* array, ANTLR3_UINT32 key, void* element, void (ANTLR3_CDECL* freeptr)(void*)) { + ANTLR3_UINT32 ret; + char* strKey; + static int intKey; + + if(isInt((void*) key)) { + intKey = *((int*) key); + strKey = (char*) array->list->get(array->list, intKey); + } else { + int i; + strKey = (char*) key; + for(i = 0; i < array->list->size(array->list); i++) { + if(strcmp((char*) array->list->get(array->list, i), strKey)) { + intKey = i; + break; + } + } + } + array->list->set(array->list, intKey, strKey, NULL, false); + ret = array->table->put(array->table, strKey, element, freeptr); + return ret; +} + +void arrayFree(ASSOC_ARRAY* array) { + array->table->free(array->table); array->table = NULL; + array->list->free(array->list); array->list = NULL; +} + +ANTLR3_UINT32 arraySize(ASSOC_ARRAY* array) { + return array->list->size(array->list); +} \ No newline at end of file Property changes on: translator/dataStructures.c ___________________________________________________________________ Added: svn:eol-style + native Added: translator/dataStructures.h =================================================================== --- translator/dataStructures.h (rev 0) +++ translator/dataStructures.h 2009-06-17 21:14:16 UTC (rev 64) @@ -0,0 +1,29 @@ +#ifndef DATASTRUCTURES_H +#define DATASTRUCTURES_H + +#include <antlr3.h> + +/** Hash table with a vector + * The speed of hash table lookups with the ability to iterate over the data + */ +typedef struct ASSOC_ARRAY_struct +{ + pANTLR3_HASH_TABLE table; + //the list just enumerates the table keys + pANTLR3_VECTOR list; + + /** Pointer to function to completely delete everything + */ + void (*free) (struct ASSOC_ARRAY_struct* array); + + //ints are 4 bytes wide, chars are 1 byte wide + void (*del) (struct ASSOC_ARRAY_struct* array, void* key); + void* (*remove) (struct ASSOC_ARRAY_struct* array, void* key); + void* (*get) (struct ASSOC_ARRAY_struct* array, void* key); + ANTLR3_INT32 (*add) (struct ASSOC_ARRAY_struct* array, void* key, void* element, void (ANTLR3_CDECL* freeptr)(void*)); + ANTLR3_UINT32 (*set) (struct ASSOC_ARRAY_struct* array, ANTLR3_UINT32 key, void* element, void (ANTLR3_CDECL* freeptr)(void*)); + //based off the vector size to ensure iterating never goes awry + ANTLR3_UINT32 (*size) (struct ASSOC_ARRAY_struct* array); +} ASSOC_ARRAY; + +#endif \ No newline at end of file Property changes on: translator/dataStructures.h ___________________________________________________________________ Added: svn:eol-style + native Modified: translator/main.c =================================================================== --- translator/main.c 2009-06-17 20:56:13 UTC (rev 63) +++ translator/main.c 2009-06-17 21:14:16 UTC (rev 64) @@ -34,6 +34,7 @@ // #include "treeparser.h" #include <time.h> +#include "dataStructures.h" // Main entry point for this example // @@ -117,8 +118,8 @@ time_t start; time_t end; - pANTLR3_HASH_TABLE processes; - pANTLR3_HASH_TABLE threads; + ASSOC_ARRAY* processes; + ASSOC_ARRAY* threads; // Create the input stream based upon the argument supplied to us on the command line // for this example, the input will always default to ./input if there is no explicit @@ -212,8 +213,8 @@ // time(&start); - processes = antlr3HashTableNew(32); - threads = antlr3HashTableNew(256); + processes = (ASSOC_ARRAY*) newAssocArray(32); + threads = (ASSOC_ARRAY*) newAssocArray(256); printf("Parsing input spec...\n"); pnscriptAST = psr->pn(psr, tstream, processes, threads); Modified: translator/pngenerator.c =================================================================== --- translator/pngenerator.c 2009-06-17 20:56:13 UTC (rev 63) +++ translator/pngenerator.c 2009-06-17 21:14:16 UTC (rev 64) @@ -2,7 +2,7 @@ * This C source file was generated by $ANTLR version 3.1.2 * * - From the grammar source file : /Users/bion/projects/iordache/translator/pngenerator.g - * - On : 2009-06-16 21:49:36 + * - On : 2009-06-17 16:11:12 * - for the tree parser : pngeneratorTreeParser * * Editing it, at least manually, is not wise. * @@ -46,11 +46,16 @@ //this will bring in everything else we need from the PNS library #include "pns.h" + #include "dataStructures.h" #undef GET_TOKEN #undef GET_TEXT #undef WARN_AT #undef FAIL_AT + #undef kNAME + #undef kPROC + #undef kPLACES + #undef kTRANS #define GET_TOKEN(list, num) (pANTLR3_COMMON_TOKEN) list->get(list, num) //retrieves the text of the numth token in the list @@ -63,8 +68,6 @@ #define kPROC 2 #define kPLACES 3 #define kTRANS 4 - #define kNUM_PLACES 5 - #define kNUM_TRANS 6 /* End of Header action. * ============================================================================= @@ -377,7 +380,7 @@ // Forward declare the locally static matching functions we have generated. // -static void pn (ppngenerator ctx, pANTLR3_HASH_TABLE procData, pANTLR3_HASH_TABLE threadData); +static void pn (ppngenerator ctx, ASSOC_ARRAY* procData, ASSOC_ARRAY* threadData); static void proc_definitions (ppngenerator ctx); static void def_start (ppngenerator ctx); static void trans_defs (ppngenerator ctx); @@ -571,14 +574,12 @@ static void showContext(pANTLR3_BASE_TREE tree); - static void addPlace(pANTLR3_HASH_TABLE placeList, void* place); - static void addTrans(pANTLR3_HASH_TABLE transList, void* trans); static void deallocProcess(process* proc); //see kDEFINES in pnscript.g - pANTLR3_HASH_TABLE processes; + ASSOC_ARRAY* processes; //see kDEFINES in pnscript.g - pANTLR3_HASH_TABLE threads; + ASSOC_ARRAY* threads; specs* specification; static void showContext(pANTLR3_BASE_TREE t) { @@ -586,20 +587,6 @@ fprintf(stderr, "Line %i, character %i\n", tok->getLine(tok), tok->getCharPositionInLine(tok)); } - static void addPlace(pANTLR3_HASH_TABLE placeList, void* place) { - static unsigned int* i; - i = tmalloc(sizeof(int)); - *i = placeList->size(placeList); - placeList->put(placeList, (char*) place, i, free); - } - - static void addTrans(pANTLR3_HASH_TABLE transList, void* trans) { - static unsigned int* i; - i = tmalloc(sizeof(int)); - *i = transList->size(transList); - transList->put(transList, (char*) trans, i, free); - } - static void deallocProcess(process* proc) { if(proc->pn != NULL) { deallocpn(proc->pn); @@ -902,7 +889,7 @@ * DFA tables for the parser */ /** Static dfa state tables for Cyclic dfa: - * ()+ loopback of 85:22: ( proc_instantiations )+ + * ()+ loopback of 72:22: ( proc_instantiations )+ */ static const ANTLR3_INT32 dfa2_eot[8] = { @@ -1018,7 +1005,7 @@ } CONSTRUCTEX(); EXCEPTION->type = ANTLR3_NO_VIABLE_ALT_EXCEPTION; - EXCEPTION->message = (void *)"()+ loopback of 85:22: ( proc_instantiations )+"; + EXCEPTION->message = (void *)"()+ loopback of 72:22: ( proc_instantiations )+"; EXCEPTION->decisionNum = 2; EXCEPTION->state = _s; return -1; @@ -1031,7 +1018,7 @@ = { 2, /* Decision number of this dfa */ /* Which decision this represents: */ - (const pANTLR3_UCHAR)"()+ loopback of 85:22: ( proc_instantiations )+", + (const pANTLR3_UCHAR)"()+ loopback of 72:22: ( proc_instantiations )+", (CDFA_SPECIAL_FUNC) dfa2_sst, antlr3dfaspecialTransition, /* DFA specialTransition is currently just a default function in the runtime */ antlr3dfapredict, /* DFA simulator function is in the runtime */ @@ -1056,10 +1043,10 @@ */ /** * $ANTLR start pn - * /Users/bion/projects/iordache/translator/pngenerator.g:75:1: pn[pANTLR3_HASH_TABLE procData, pANTLR3_HASH_TABLE threadData] : ( proc_definitions )+ ( proc_instantiations )+ ( constraints )* ( other_commands )* ; + * /Users/bion/projects/iordache/translator/pngenerator.g:62:1: pn[ASSOC_ARRAY* procData, ASSOC_ARRAY* threadData] : ( proc_definitions )+ ( proc_instantiations )+ ( constraints )* ( other_commands )* ; */ static void -pn(ppngenerator ctx, pANTLR3_HASH_TABLE procData, pANTLR3_HASH_TABLE threadData) +pn(ppngenerator ctx, ASSOC_ARRAY* procData, ASSOC_ARRAY* threadData) { /* Initialize rule variables */ @@ -1072,10 +1059,10 @@ specification = tmalloc(sizeof(specs)); { - // /Users/bion/projects/iordache/translator/pngenerator.g:85:2: ( ( proc_definitions )+ ( proc_instantiations )+ ( constraints )* ( other_commands )* ) - // /Users/bion/projects/iordache/translator/pngenerator.g:85:4: ( proc_definitions )+ ( proc_instantiations )+ ( constraints )* ( other_commands )* + // /Users/bion/projects/iordache/translator/pngenerator.g:72:2: ( ( proc_definitions )+ ( proc_instantiations )+ ( constraints )* ( other_commands )* ) + // /Users/bion/projects/iordache/translator/pngenerator.g:72:4: ( proc_definitions )+ ( proc_instantiations )+ ( constraints )* ( other_commands )* { - // /Users/bion/projects/iordache/translator/pngenerator.g:85:4: ( proc_definitions )+ + // /Users/bion/projects/iordache/translator/pngenerator.g:72:4: ( proc_definitions )+ { int cnt1=0; @@ -1168,7 +1155,7 @@ } loop1: ; /* Jump to here if this rule does not match */ } - // /Users/bion/projects/iordache/translator/pngenerator.g:85:22: ( proc_instantiations )+ + // /Users/bion/projects/iordache/translator/pngenerator.g:72:22: ( proc_instantiations )+ { int cnt2=0; @@ -1230,7 +1217,7 @@ loop2: ; /* Jump to here if this rule does not match */ } - // /Users/bion/projects/iordache/translator/pngenerator.g:85:43: ( constraints )* + // /Users/bion/projects/iordache/translator/pngenerator.g:72:43: ( constraints )* for (;;) { @@ -1274,7 +1261,7 @@ loop3: ; /* Jump out to here if this rule does not match */ - // /Users/bion/projects/iordache/translator/pngenerator.g:85:56: ( other_commands )* + // /Users/bion/projects/iordache/translator/pngenerator.g:72:56: ( other_commands )* for (;;) { @@ -1349,7 +1336,7 @@ /** * $ANTLR start proc_definitions - * /Users/bion/projects/iordache/translator/pngenerator.g:87:1: proc_definitions : ^( def_start ( trans_defs )* ( select_functions )* ( nondeterm )? ) ; + * /Users/bion/projects/iordache/translator/pngenerator.g:74:1: proc_definitions : ^( def_start ( trans_defs )* ( select_functions )* ( nondeterm )? ) ; */ static void proc_definitions(ppngenerator ctx) @@ -1359,8 +1346,8 @@ ctx->ppngenerator_proc_definitionsTop = ppngenerator_proc_definitionsPush(ctx); { - // /Users/bion/projects/iordache/translator/pngenerator.g:91:2: ( ^( def_start ( trans_defs )* ( select_functions )* ( nondeterm )? ) ) - // /Users/bion/projects/iordache/translator/pngenerator.g:91:4: ^( def_start ( trans_defs )* ( select_functions )* ( nondeterm )? ) + // /Users/bion/projects/iordache/translator/pngenerator.g:78:2: ( ^( def_start ( trans_defs )* ( select_functions )* ( nondeterm )? ) ) + // /Users/bion/projects/iordache/translator/pngenerator.g:78:4: ^( def_start ( trans_defs )* ( select_functions )* ( nondeterm )? ) { FOLLOWPUSH(FOLLOW_def_start_in_proc_definitions102); def_start(ctx); @@ -1390,7 +1377,7 @@ return ; } - // /Users/bion/projects/iordache/translator/pngenerator.g:91:16: ( trans_defs )* + // /Users/bion/projects/iordache/translator/pngenerator.g:78:16: ( trans_defs )* for (;;) { @@ -1436,7 +1423,7 @@ loop5: ; /* Jump out to here if this rule does not match */ - // /Users/bion/projects/iordache/translator/pngenerator.g:91:28: ( select_functions )* + // /Users/bion/projects/iordache/translator/pngenerator.g:78:28: ( select_functions )* for (;;) { @@ -1482,7 +1469,7 @@ loop6: ; /* Jump out to here if this rule does not match */ - // /Users/bion/projects/iordache/translator/pngenerator.g:91:46: ( nondeterm )? + // /Users/bion/projects/iordache/translator/pngenerator.g:78:46: ( nondeterm )? { int alt7=2; { @@ -1555,7 +1542,7 @@ /** * $ANTLR start def_start - * /Users/bion/projects/iordache/translator/pngenerator.g:92:1: def_start : ID ; + * /Users/bion/projects/iordache/translator/pngenerator.g:79:1: def_start : ID ; */ static void def_start(ppngenerator ctx) @@ -1572,8 +1559,8 @@ ID1 = NULL; { - // /Users/bion/projects/iordache/translator/pngenerator.g:96:2: ( ID ) - // /Users/bion/projects/iordache/translator/pngenerator.g:96:4: ID + // /Users/bion/projects/iordache/translator/pngenerator.g:83:2: ( ID ) + // /Users/bion/projects/iordache/translator/pngenerator.g:83:4: ID { ID1 = (pANTLR3_BASE_TREE) MATCHT(ID, &FOLLOW_ID_in_def_start126); if (HASEXCEPTION()) @@ -1589,7 +1576,7 @@ pANTLR3_LIST list = processes->get(processes, (ID1->getText(ID1))->chars); (SCOPE_TOP(proc_definitions))->proc= (process*) list->get(list, kPROC); - pn = createpn("pnum tnum", *((int*) list->get(list, kNUM_PLACES)), *((int*) list->get(list, kNUM_TRANS))); + // pn = createpn("pnum tnum", *((int*) list->get(list, kNUM_PLACES)), *((int*) list->get(list, kNUM_TRANS))); (SCOPE_TOP(proc_definitions))->proc->pn = &pn; } @@ -1616,7 +1603,7 @@ /** * $ANTLR start trans_defs - * /Users/bion/projects/iordache/translator/pngenerator.g:102:1: trans_defs : ( extern_trans_def | trans_def ); + * /Users/bion/projects/iordache/translator/pngenerator.g:89:1: trans_defs : ( extern_trans_def | trans_def ); */ static void trans_defs(ppngenerator ctx) @@ -1627,7 +1614,7 @@ { { - // /Users/bion/projects/iordache/translator/pngenerator.g:103:2: ( extern_trans_def | trans_def ) + // /Users/bion/projects/iordache/translator/pngenerator.g:90:2: ( extern_trans_def | trans_def ) ANTLR3_UINT32 alt8; @@ -1665,7 +1652,7 @@ switch (alt8) { case 1: - // /Users/bion/projects/iordache/translator/pngenerator.g:103:4: extern_trans_def + // /Users/bion/projects/iordache/translator/pngenerator.g:90:4: extern_trans_def { FOLLOWPUSH(FOLLOW_extern_trans_def_in_trans_defs136); extern_trans_def(ctx); @@ -1683,7 +1670,7 @@ } break; case 2: - // /Users/bion/projects/iordache/translator/pngenerator.g:104:4: trans_def + // /Users/bion/projects/iordache/translator/pngenerator.g:91:4: trans_def { FOLLOWPUSH(FOLLOW_trans_def_in_trans_defs141); trans_def(ctx); @@ -1723,7 +1710,7 @@ /** * $ANTLR start extern_trans_def - * /Users/bion/projects/iordache/translator/pngenerator.g:105:1: extern_trans_def : ( ^( TO ( ID )+ ) | ^( FROM ( ID )+ ) ); + * /Users/bion/projects/iordache/translator/pngenerator.g:92:1: extern_trans_def : ( ^( TO ( ID )+ ) | ^( FROM ( ID )+ ) ); */ static void extern_trans_def(ppngenerator ctx) @@ -1734,7 +1721,7 @@ { { - // /Users/bion/projects/iordache/translator/pngenerator.g:106:2: ( ^( TO ( ID )+ ) | ^( FROM ( ID )+ ) ) + // /Users/bion/projects/iordache/translator/pngenerator.g:93:2: ( ^( TO ( ID )+ ) | ^( FROM ( ID )+ ) ) ANTLR3_UINT32 alt11; @@ -1772,7 +1759,7 @@ switch (alt11) { case 1: - // /Users/bion/projects/iordache/translator/pngenerator.g:106:4: ^( TO ( ID )+ ) + // /Users/bion/projects/iordache/translator/pngenerator.g:93:4: ^( TO ( ID )+ ) { MATCHT(TO, &FOLLOW_TO_in_extern_trans_def151); if (HASEXCEPTION()) @@ -1793,7 +1780,7 @@ { return ; } - // /Users/bion/projects/iordache/translator/pngenerator.g:106:9: ( ID )+ + // /Users/bion/projects/iordache/translator/pngenerator.g:93:9: ( ID )+ { int cnt9=0; @@ -1866,7 +1853,7 @@ } break; case 2: - // /Users/bion/projects/iordache/translator/pngenerator.g:107:4: ^( FROM ( ID )+ ) + // /Users/bion/projects/iordache/translator/pngenerator.g:94:4: ^( FROM ( ID )+ ) { MATCHT(FROM, &FOLLOW_FROM_in_extern_trans_def161); if (HASEXCEPTION()) @@ -1887,7 +1874,7 @@ { return ; } - // /Users/bion/projects/iordache/translator/pngenerator.g:107:11: ( ID )+ + // /Users/bion/projects/iordache/translator/pngenerator.g:94:11: ( ID )+ { int cnt10=0; @@ -1982,7 +1969,7 @@ /** * $ANTLR start trans_def - * /Users/bion/projects/iordache/translator/pngenerator.g:108:1: trans_def : ( ^( ID CODE_BLOCK ) | ^( ID ( ID )+ ( CODE_BLOCK )? ) ); + * /Users/bion/projects/iordache/translator/pngenerator.g:95:1: trans_def : ( ^( ID CODE_BLOCK ) | ^( ID ( ID )+ ( CODE_BLOCK )? ) ); */ static void trans_def(ppngenerator ctx) @@ -1993,7 +1980,7 @@ { { - // /Users/bion/projects/iordache/translator/pngenerator.g:109:2: ( ^( ID CODE_BLOCK ) | ^( ID ( ID )+ ( CODE_BLOCK )? ) ) + // /Users/bion/projects/iordache/translator/pngenerator.g:96:2: ( ^( ID CODE_BLOCK ) | ^( ID ( ID )+ ( CODE_BLOCK )? ) ) ANTLR3_UINT32 alt14; @@ -2079,7 +2066,7 @@ switch (alt14) { case 1: - // /Users/bion/projects/iordache/translator/pngenerator.g:109:4: ^( ID CODE_BLOCK ) + // /Users/bion/projects/iordache/translator/pngenerator.g:96:4: ^( ID CODE_BLOCK ) { MATCHT(ID, &FOLLOW_ID_in_trans_def175); if (HASEXCEPTION()) @@ -2123,7 +2110,7 @@ } break; case 2: - // /Users/bion/projects/iordache/translator/pngenerator.g:110:4: ^( ID ( ID )+ ( CODE_BLOCK )? ) + // /Users/bion/projects/iordache/translator/pngenerator.g:97:4: ^( ID ( ID )+ ( CODE_BLOCK )? ) { MATCHT(ID, &FOLLOW_ID_in_trans_def184); if (HASEXCEPTION()) @@ -2144,7 +2131,7 @@ { return ; } - // /Users/bion/projects/iordache/translator/pngenerator.g:110:9: ( ID )+ + // /Users/bion/projects/iordache/translator/pngenerator.g:97:9: ( ID )+ { int cnt12=0; @@ -2204,7 +2191,7 @@ loop12: ; /* Jump to here if this rule does not match */ } - // /Users/bion/projects/iordache/translator/pngenerator.g:110:13: ( CODE_BLOCK )? + // /Users/bion/projects/iordache/translator/pngenerator.g:97:13: ( CODE_BLOCK )? { int alt13=2; { @@ -2270,7 +2257,7 @@ /** * $ANTLR start select_functions - * /Users/bion/projects/iordache/translator/pngenerator.g:111:1: select_functions : ^( SELECT_DEF ID CODE_BLOCK ) ; + * /Users/bion/projects/iordache/translator/pngenerator.g:98:1: select_functions : ^( SELECT_DEF ID CODE_BLOCK ) ; */ static void select_functions(ppngenerator ctx) @@ -2280,8 +2267,8 @@ { - // /Users/bion/projects/iordache/translator/pngenerator.g:112:2: ( ^( SELECT_DEF ID CODE_BLOCK ) ) - // /Users/bion/projects/iordache/translator/pngenerator.g:112:4: ^( SELECT_DEF ID CODE_BLOCK ) + // /Users/bion/projects/iordache/translator/pngenerator.g:99:2: ( ^( SELECT_DEF ID CODE_BLOCK ) ) + // /Users/bion/projects/iordache/translator/pngenerator.g:99:4: ^( SELECT_DEF ID CODE_BLOCK ) { MATCHT(SELECT_DEF, &FOLLOW_SELECT_DEF_in_select_functions200); if (HASEXCEPTION()) @@ -2353,7 +2340,7 @@ /** * $ANTLR start nondeterm - * /Users/bion/projects/iordache/translator/pngenerator.g:113:1: nondeterm : ^( 'nondeterministic places: ' ( ID )+ ) ; + * /Users/bion/projects/iordache/translator/pngenerator.g:100:1: nondeterm : ^( 'nondeterministic places: ' ( ID )+ ) ; */ static void nondeterm(ppngenerator ctx) @@ -2363,8 +2350,8 @@ { - // /Users/bion/projects/iordache/translator/pngenerator.g:114:2: ( ^( 'nondeterministic places: ' ( ID )+ ) ) - // /Users/bion/projects/iordache/translator/pngenerator.g:114:4: ^( 'nondeterministic places: ' ( ID )+ ) + // /Users/bion/projects/iordache/translator/pngenerator.g:101:2: ( ^( 'nondeterministic places: ' ( ID )+ ) ) + // /Users/bion/projects/iordache/translator/pngenerator.g:101:4: ^( 'nondeterministic places: ' ( ID )+ ) { MATCHT(44, &FOLLOW_44_in_nondeterm215); if (HASEXCEPTION()) @@ -2385,7 +2372,7 @@ { return ; } - // /Users/bion/projects/iordache/translator/pngenerator.g:114:34: ( ID )+ + // /Users/bion/projects/iordache/translator/pngenerator.g:101:34: ( ID )+ { int cnt15=0; @@ -2477,7 +2464,7 @@ /** * $ANTLR start proc_instantiations - * /Users/bion/projects/iordache/translator/pngenerator.g:116:1: proc_instantiations : ( proc_init | sync_def | proc_start ); + * /Users/bion/projects/iordache/translator/pngenerator.g:103:1: proc_instantiations : ( proc_init | sync_def | proc_start ); */ static void proc_instantiations(ppngenerator ctx) @@ -2488,7 +2475,7 @@ { { - // /Users/bion/projects/iordache/translator/pngenerator.g:117:2: ( proc_init | sync_def | proc_start ) + // /Users/bion/projects/iordache/translator/pngenerator.g:104:2: ( proc_init | sync_def | proc_start ) ANTLR3_UINT32 alt16; @@ -2531,7 +2518,7 @@ switch (alt16) { case 1: - // /Users/bion/projects/iordache/translator/pngenerator.g:117:4: proc_init + // /Users/bion/projects/iordache/translator/pngenerator.g:104:4: proc_init { FOLLOWPUSH(FOLLOW_proc_init_in_proc_instantiations229); proc_init(ctx); @@ -2549,7 +2536,7 @@ } break; case 2: - // /Users/bion/projects/iordache/translator/pngenerator.g:117:16: sync_def + // /Users/bion/projects/iordache/translator/pngenerator.g:104:16: sync_def { FOLLOWPUSH(FOLLOW_sync_def_in_proc_instantiations233); sync_def(ctx); @@ -2567,7 +2554,7 @@ } break; case 3: - // /Users/bion/projects/iordache/translator/pngenerator.g:117:27: proc_start + // /Users/bion/projects/iordache/translator/pngenerator.g:104:27: proc_start { FOLLOWPUSH(FOLLOW_proc_start_in_proc_instantiations237); proc_start(ctx); @@ -2607,7 +2594,7 @@ /** * $ANTLR start proc_init - * /Users/bion/projects/iordache/translator/pngenerator.g:118:1: proc_init : ^( ID ID ( numbered_ID )+ ) ; + * /Users/bion/projects/iordache/translator/pngenerator.g:105:1: proc_init : ^( ID ID ( numbered_ID )+ ) ; */ static void proc_init(ppngenerator ctx) @@ -2617,8 +2604,8 @@ { - // /Users/bion/projects/iordache/translator/pngenerator.g:119:2: ( ^( ID ID ( numbered_ID )+ ) ) - // /Users/bion/projects/iordache/translator/pngenerator.g:119:4: ^( ID ID ( numbered_ID )+ ) + // /Users/bion/projects/iordache/translator/pngenerator.g:106:2: ( ^( ID ID ( numbered_ID )+ ) ) + // /Users/bion/projects/iordache/translator/pngenerator.g:106:4: ^( ID ID ( numbered_ID )+ ) { MATCHT(ID, &FOLLOW_ID_in_proc_init247); if (HASEXCEPTION()) @@ -2648,7 +2635,7 @@ { return ; } - // /Users/bion/projects/iordache/translator/pngenerator.g:119:12: ( numbered_ID )+ + // /Users/bion/projects/iordache/translator/pngenerator.g:106:12: ( numbered_ID )+ { int cnt17=0; @@ -2743,7 +2730,7 @@ /** * $ANTLR start sync_def - * /Users/bion/projects/iordache/translator/pngenerator.g:120:1: sync_def : ^( SYNC_TOK ( group_elements )+ ) ; + * /Users/bion/projects/iordache/translator/pngenerator.g:107:1: sync_def : ^( SYNC_TOK ( group_elements )+ ) ; */ static void sync_def(ppngenerator ctx) @@ -2753,8 +2740,8 @@ { - // /Users/bion/projects/iordache/translator/pngenerator.g:121:2: ( ^( SYNC_TOK ( group_elements )+ ) ) - // /Users/bion/projects/iordache/translator/pngenerator.g:121:4: ^( SYNC_TOK ( group_elements )+ ) + // /Users/bion/projects/iordache/translator/pngenerator.g:108:2: ( ^( SYNC_TOK ( group_elements )+ ) ) + // /Users/bion/projects/iordache/translator/pngenerator.g:108:4: ^( SYNC_TOK ( group_elements )+ ) { MATCHT(SYNC_TOK, &FOLLOW_SYNC_TOK_in_sync_def263); if (HASEXCEPTION()) @@ -2775,7 +2762,7 @@ { return ; } - // /Users/bion/projects/iordache/translator/pngenerator.g:121:15: ( group_elements )+ + // /Users/bion/projects/iordache/translator/pngenerator.g:108:15: ( group_elements )+ { int cnt18=0; @@ -2870,7 +2857,7 @@ /** * $ANTLR start constraints - * /Users/bion/projects/iordache/translator/pngenerator.g:123:1: constraints : ^( constraint_block ( eq )* ( live_def )? ( uncontrol )? ( unobserve )? ) ; + * /Users/bion/projects/iordache/translator/pngenerator.g:110:1: constraints : ^( constraint_block ( eq )* ( live_def )? ( uncontrol )? ( unobserve )? ) ; */ static void constraints(ppngenerator ctx) @@ -2880,8 +2867,8 @@ { - // /Users/bion/projects/iordache/translator/pngenerator.g:124:2: ( ^( constraint_block ( eq )* ( live_def )? ( uncontrol )? ( unobserve )? ) ) - // /Users/bion/projects/iordache/translator/pngenerator.g:124:4: ^( constraint_block ( eq )* ( live_def )? ( uncontrol )? ( unobserve )? ) + // /Users/bion/projects/iordache/translator/pngenerator.g:111:2: ( ^( constraint_block ( eq )* ( live_def )? ( uncontrol )? ( unobserve )? ) ) + // /Users/bion/projects/iordache/translator/pngenerator.g:111:4: ^( constraint_block ( eq )* ( live_def )? ( uncontrol )? ( unobserve )? ) { FOLLOWPUSH(FOLLOW_constraint_block_in_constraints278); constraint_block(ctx); @@ -2907,7 +2894,7 @@ return ; } - // /Users/bion/projects/iordache/translator/pngenerator.g:124:23: ( eq )* + // /Users/bion/projects/iordache/translator/pngenerator.g:111:23: ( eq )* for (;;) { @@ -2951,7 +2938,7 @@ loop19: ; /* Jump out to here if this rule does not match */ - // /Users/bion/projects/iordache/translator/pngenerator.g:124:27: ( live_def )? + // /Users/bion/projects/iordache/translator/pngenerator.g:111:27: ( live_def )? { int alt20=2; { @@ -2985,7 +2972,7 @@ } } - // /Users/bion/projects/iordache/translator/pngenerator.g:124:37: ( uncontrol )? + // /Users/bion/projects/iordache/translator/pngenerator.g:111:37: ( uncontrol )? { int alt21=2; { @@ -3019,7 +3006,7 @@ } } - // /Users/bion/projects/iordache/translator/pngenerator.g:124:48: ( unobserve )? + // /Users/bion/projects/iordache/translator/pngenerator.g:111:48: ( unobserve )? { int alt22=2; { @@ -3086,7 +3073,7 @@ /** * $ANTLR start proc_start - * /Users/bion/projects/iordache/translator/pngenerator.g:126:1: proc_start : ^( START ( ID )+ ) ; + * /Users/bion/projects/iordache/translator/pngenerator.g:113:1: proc_start : ^( START ( ID )+ ) ; */ static void proc_start(ppngenerator ctx) @@ -3096,8 +3083,8 @@ { - // /Users/bion/projects/iordache/translator/pngenerator.g:127:2: ( ^( START ( ID )+ ) ) - // /Users/bion/projects/iordache/translator/pngenerator.g:127:4: ^( START ( ID )+ ) + // /Users/bion/projects/iordache/translator/pngenerator.g:114:2: ( ^( START ( ID )+ ) ) + // /Users/bion/projects/iordache/translator/pngenerator.g:114:4: ^( START ( ID )+ ) { MATCHT(START, &FOLLOW_START_in_proc_start302); if (HASEXCEPTION()) @@ -3118,7 +3105,7 @@ { return ; } - // /Users/bion/projects/iordache/translator/pngenerator.g:127:12: ( ID )+ + // /Users/bion/projects/iordache/translator/pngenerator.g:114:12: ( ID )+ { int cnt23=0; @@ -3210,7 +3197,7 @@ /** * $ANTLR start constraint_block - * /Users/bion/projects/iordache/translator/pngenerator.g:128:2: constraint_block : ID ; + * /Users/bion/projects/iordache/translator/pngenerator.g:115:2: constraint_block : ID ; */ static void constraint_block(ppngenerator ctx) @@ -3220,8 +3207,8 @@ { - // /Users/bion/projects/iordache/translator/pngenerator.g:129:2: ( ID ) - // /Users/bion/projects/iordache/translator/pngenerator.g:129:4: ID + // /Users/bion/projects/iordache/translator/pngenerator.g:116:2: ( ID ) + // /Users/bion/projects/iordache/translator/pngenerator.g:116:4: ID { MATCHT(ID, &FOLLOW_ID_in_constraint_block315); if (HASEXCEPTION()) @@ -3255,7 +3242,7 @@ /** * $ANTLR start eq - * /Users/bion/projects/iordache/translator/pngenerator.g:131:1: eq : ( relationalExpression | ^( EQS_OP eq eq ) ); + * /Users/bion/projects/iordache/translator/pngenerator.g:118:1: eq : ( relationalExpression | ^( EQS_OP eq eq ) ); */ static void eq(ppngenerator ctx) @@ -3266,7 +3253,7 @@ { { - // /Users/bion/projects/iordache/translator/pngenerator.g:132:2: ( relationalExpression | ^( EQS_OP eq eq ) ) + // /Users/bion/projects/iordache/translator/pngenerator.g:119:2: ( relationalExpression | ^( EQS_OP eq eq ) ) ANTLR3_UINT32 alt24; @@ -3304,7 +3291,7 @@ switch (alt24) { case 1: - // /Users/bion/projects/iordache/translator/pngenerator.g:132:4: relationalExpression + // /Users/bion/projects/iordache/translator/pngenerator.g:119:4: relationalExpression { FOLLOWPUSH(FOLLOW_relationalExpression_in_eq325); relationalExpression(ctx); @@ -3322,7 +3309,7 @@ } break; case 2: - // /Users/bion/projects/iordache/translator/pngenerator.g:133:4: ^( EQS_OP eq eq ) + // /Users/bion/projects/iordache/translator/pngenerator.g:120:4: ^( EQS_OP eq eq ) { MATCHT(EQS_OP, &FOLLOW_EQS_OP_in_eq331); if (HASEXCEPTION()) @@ -3403,7 +3390,7 @@ /** * $ANTLR start relationalExpression - * /Users/bion/projects/iordache/translator/pngenerator.g:135:1: relationalExpression : ( additiveExpression | ^( EQ_OP relationalExpression relationalExpression ) ); + * /Users/bion/projects/iordache/translator/pngenerator.g:122:1: relationalExpression : ( additiveExpression | ^( EQ_OP relationalExpression relationalExpression ) ); */ static void relationalExpression(ppngenerator ctx) @@ -3414,7 +3401,7 @@ { { - // /Users/bion/projects/iordache/translator/pngenerator.g:136:5: ( additiveExpression | ^( EQ_OP relationalExpression relationalExpression ) ) + // /Users/bion/projects/iordache/translator/pngenerator.g:123:5: ( additiveExpression | ^( EQ_OP relationalExpression relationalExpression ) ) ANTLR3_UINT32 alt25; @@ -3452,7 +3439,7 @@ switch (alt25) { case 1: - // /Users/bion/projects/iordache/translator/pngenerator.g:136:9: additiveExpression + // /Users/bion/projects/iordache/translator/pngenerator.g:123:9: additiveExpression { FOLLOWPUSH(FOLLOW_additiveExpression_in_relationalExpression351); additiveExpression(ctx); @@ -3470,7 +3457,7 @@ } break; case 2: - // /Users/bion/projects/iordache/translator/pngenerator.g:137:7: ^( EQ_OP relationalExpression relationalExpression ) + // /Users/bion/projects/iordache/translator/pngenerator.g:124:7: ^( EQ_OP relationalExpression relationalExpression ) { MATCHT(EQ_OP, &FOLLOW_EQ_OP_in_relationalExpression360); if (HASEXCEPTION()) @@ -3551,7 +3538,7 @@ /** * $ANTLR start additiveExpression - * /Users/bion/projects/iordache/translator/pngenerator.g:139:1: additiveExpression : ( primary | ^( ADD additiveExpression additiveExpression ) | ^( SUB additiveExpression additiveExpression ) ); + * /Users/bion/projects/iordache/translator/pngenerator.g:126:1: additiveExpression : ( primary | ^( ADD additiveExpression additiveExpression ) | ^( SUB additiveExpression additiveExpression ) ); */ static void additiveExpression(ppngenerator ctx) @@ -3562,7 +3549,7 @@ { { - // /Users/bion/projects/iordache/translator/pngenerator.g:140:5: ( primary | ^( ADD additiveExpression additiveExpression ) | ^( SUB additiveExpression additiveExpression ) ) + // /Users/bion/projects/iordache/translator/pngenerator.g:127:5: ( primary | ^( ADD additiveExpression additiveExpression ) | ^( SUB additiveExpression additiveExpression ) ) ANTLR3_UINT32 alt26; @@ -3664,7 +3651,7 @@ switch (alt26) { case 1: - // /Users/bion/projects/iordache/translator/pngenerator.g:140:9: primary + // /Users/bion/projects/iordache/translator/pngenerator.g:127:9: primary { FOLLOWPUSH(FOLLOW_primary_in_additiveExpression380); primary(ctx); @@ -3682,7 +3669,7 @@ } break; case 2: - // /Users/bion/projects/iordache/translator/pngenerator.g:141:7: ^( ADD additiveExpression additiveExpression ) + // /Users/bion/projects/iordache/translator/pngenerator.g:128:7: ^( ADD additiveExpression additiveExpression ) { MATCHT(ADD, &FOLLOW_ADD_in_additiveExpression389); if (HASEXCEPTION()) @@ -3741,7 +3728,7 @@ } break; case 3: - // /Users/bion/projects/iordache/translator/pngenerator.g:142:7: ^( SUB additiveExpression additiveExpression ) + // /Users/bion/projects/iordache/translator/pngenerator.g:129:7: ^( SUB additiveExpression additiveExpression ) { MATCHT(SUB, &FOLLOW_SUB_in_additiveExpression403); if (HASEXCEPTION()) @@ -3822,7 +3809,7 @@ /** * $ANTLR start primary - * /Users/bion/projects/iordache/translator/pngenerator.g:144:1: primary : ( ID | group_elements | NUM | ^( MULT NUM primary ) | ^( ADD additiveExpression additiveExpression ) | ^( SUB additiveExpression additiveExpression ) ); + * /Users/bion/projects/iordache/translator/pngenerator.g:131:1: primary : ( ID | group_elements | NUM | ^( MULT NUM primary ) | ^( ADD additiveExpression additiveExpression ) | ^( SUB additiveExpression additiveExpression ) ); */ static void primary(ppngenerator ctx) @@ -3833,7 +3820,7 @@ { { - // /Users/bion/projects/iordache/translator/pngenerator.g:145:5: ( ID | group_elements | NUM | ^( MULT NUM primary ) | ^( ADD additiveExpression additiveExpression ) | ^( SUB additiveExpression additiveExpression ) ) + // /Users/bion/projects/iordache/translator/pngenerator.g:132:5: ( ID | group_elements | NUM | ^( MULT NUM primary ) | ^( ADD additiveExpression additiveExpression ) | ^( SUB additiveExpression additiveExpression ) ) ANTLR3_UINT32 alt27; @@ -3919,7 +3906,7 @@ switch (alt27) { case 1: - // /Users/bion/projects/iordache/translator/pngenerator.g:145:9: ID + // /Users/bion/projects/iordache/translator/pngenerator.g:132:9: ID { MATCHT(ID, &FOLLOW_ID_in_primary422); if (HASEXCEPTION()) @@ -3934,7 +3921,7 @@ } break; case 2: - // /Users/bion/projects/iordache/translator/pngenerator.g:146:7: group_elements + // /Users/bion/projects/iordache/translator/pngenerator.g:133:7: group_elements { FOLLOWPUSH(FOLLOW_group_elements_in_primary430); group_elements(ctx); @@ -3952,7 +3939,7 @@ } break; case 3: - // /Users/bion/projects/iordache/translator/pngenerator.g:147:7: NUM + // /Users/bion/projects/iordache/translator/pngenerator.g:134:7: NUM { MATCHT(NUM, &FOLLOW_NUM_in_primary438); if (HASEXCEPTION()) @@ -3967,7 +3954,7 @@ } break; case 4: - // /Users/bion/projects/iordache/translator/pngenerator.g:148:7: ^( MULT NUM primary ) + // /Users/bion/projects/iordache/translator/pngenerator.g:135:7: ^( MULT NUM primary ) { MATCHT(MULT, &FOLLOW_MULT_in_primary447); if (HASEXCEPTION()) @@ -4023,7 +4010,7 @@ } break; case 5: - // /Users/bion/projects/iordache/translator/pngenerator.g:149:7: ^( ADD additiveExpression additiveExpression ) + // /Users/bion/projects/iordache/translator/pngenerator.g:136:7: ^( ADD additiveExpression additiveExpression ) { MATCHT(ADD, &FOLLOW_ADD_in_primary461); if (HASEXCEPTION()) @@ -4082,7 +4069,7 @@ } break; case 6: - // /Users/bion/projects/iordache/translator/pngenerator.g:150:7: ^( SUB additiveExpression additiveExpression ) + // /Users/bion/projects/iordache/translator/pngenerator.g:137:7: ^( SUB additiveExpression additiveExpression ) { MATCHT(SUB, &FOLLOW_SUB_in_primary475); if (HASEXCEPTION()) @@ -4163,7 +4150,7 @@ /** * $ANTLR start live_def - * /Users/bion/projects/iordache/translator/pngenerator.g:151:1: live_def : ( ^( LIVE ALL ( ID )* ) | ^( LIVE ( ID )+ ) ); + * /Users/bion/projects/iordache/translator/pngenerator.g:138:1: live_def : ( ^( LIVE ALL ( ID )* ) | ^( LIVE ( ID )+ ) ); */ static void live_def(ppngenerator ctx) @@ -4174,7 +4161,7 @@ { { - // /Users/bion/projects/iordache/translator/pngenerator.g:152:2: ( ^( LIVE ALL ( ID )* ) | ^( LIVE ( ID )+ ) ) + // /Users/bion/projects/iordache/translator/pngenerator.g:139:2: ( ^( LIVE ALL ( ID )* ) | ^( LIVE ( ID )+ ) ) ANTLR3_UINT32 alt30; @@ -4260,7 +4247,7 @@ switch (alt30) { case 1: - // /Users/bion/projects/iordache/translator/pngenerator.g:152:4: ^( LIVE ALL ( ID )* ) + // /Users/bion/projects/iordache/translator/pngenerator.g:139:4: ^( LIVE ALL ( ID )* ) { MATCHT(LIVE, &FOLLOW_LIVE_in_live_def490); if (HASEXCEPTION()) @@ -4291,7 +4278,7 @@ return ; } - // /Users/bion/projects/iordache/translator/pngenerator.g:152:15: ( ID )* + // /Users/bion/projects/iordache/translator/pngenerator.g:139:15: ( ID )* for (;;) { @@ -4345,7 +4332,7 @@ } break; case 2: - // /Users/bion/projects/iordache/translator/pngenerator.g:153:4: ^( LIVE ( ID )+ ) + // /Users/bion/projects/iordache/translator/pngenerator.g:140:4: ^( LIVE ( ID )+ ) { MATCHT(LIVE, &FOLLOW_LIVE_in_live_def502); if (HASEXCEPTION()) @@ -4366,7 +4353,7 @@ { return ; } - // /Users/bion/projects/iordache/translator/pngenerator.g:153:11: ( ID )+ + // /Users/bion/projects/iordache/translator/pngenerator.g:140:11: ( ID )+ { int cnt29=0; @@ -4461,7 +4448,7 @@ /** * $ANTLR start uncontrol - * /Users/bion/projects/iordache/translator/pngenerator.g:154:1: uncontrol : ^( UNCONTROL ( ID )+ ) ; + * /Users/bion/projects/iordache/translator/pngenerator.g:141:1: uncontrol : ^( UNCONTROL ( ID )+ ) ; */ static void uncontrol(ppngenerator ctx) @@ -4471,8 +4458,8 @@ { - // /Users/bion/projects/iordache/translator/pngenerator.g:155:2: ( ^( UNCONTROL ( ID )+ ) ) - // /Users/bion/projects/iordache/translator/pngenerator.g:155:4: ^( UNCONTROL ( ID )+ ) + // /Users/bion/projects/iordache/translator/pngenerator.g:142:2: ( ^( UNCONTROL ( ID )+ ) ) + // /Users/bion/projects/iordache/translator/pngenerator.g:142:4: ^( UNCONTROL ( ID )+ ) { MATCHT(UNCONTROL, &FOLLOW_UNCONTROL_in_uncontrol516); if (HASEXCEPTION()) @@ -4493,7 +4480,7 @@ { return ; } - // /Users/bion/projects/iordache/translator/pngenerator.g:155:16: ( ID )+ + // /Users/bion/projects/iordache/translator/pngenerator.g:142:16: ( ID )+ { int cnt31=0; @@ -4585,7 +4572,7 @@ /** * $ANTLR start unobserve - * /Users/bion/projects/iordache/translator/pngenerator.g:156:1: unobserve : ^( UNOBSERVE ( ID )+ ) ; + * /Users/bion/projects/iordache/translator/pngenerator.g:143:1: unobserve : ^( UNOBSERVE ( ID )+ ) ; */ static void unobserve(ppngenerator ctx) @@ -4595,8 +4582,8 @@ { - // /Users/bion/projects/iordache/translator/pngenerator.g:157:2: ( ^( UNOBSERVE ( ID )+ ) ) - // /Users/bion/projects/iordache/translator/pngenerator.g:157:4: ^( UNOBSERVE ( ID )+ ) + // /Users/bion/projects/iordache/translator/pngenerator.g:144:2: ( ^( UNOBSERVE ( ID )+ ) ) + // /Users/bion/projects/iordache/translator/pngenerator.g:144:4: ^( UNOBSERVE ( ID )+ ) { MATCHT(UNOBSERVE, &FOLLOW_UNOBSERVE_in_unobserve530); if (HASEXCEPTION()) @@ -4617,7 +4604,7 @@ { return ; } - // /Users/bion/projects/iordache/translator/pngenerator.g:157:16: ( ID )+ + // /Users/bion/projects/iordache/translator/pngenerator.g:144:16: ( ID )+ { int cnt32=0; @@ -4709,7 +4696,7 @@ /** * $ANTLR start other_commands - * /Users/bion/projects/iordache/translator/pngenerator.g:159:1: other_commands : print ; + * /Users/bion/projects/iordache/translator/pngenerator.g:146:1: other_commands : print ; */ static void other_commands(ppngenerator ctx) @@ -4719,8 +4706,8 @@ { - // /Users/bion/projects/iordache/translator/pngenerator.g:160:2: ( print ) - // /Users/bion/projects/iordache/translator/pngenerator.g:160:4: print + // /Users/bion/projects/iordache/translator/pngenerator.g:147:2: ( print ) + // /Users/bion/projects/iordache/translator/pngenerator.g:147:4: print { FOLLOWPUSH(FOLLOW_print_in_other_commands544); print(ctx); @@ -4757,7 +4744,7 @@ /** * $ANTLR start print - * /Users/bion/projects/iordache/translator/pngenerator.g:161:1: print : ^( PRINT ID group_elements ) ; + * /Users/bion/projects/iordache/translator/pngenerator.g:148:1: print : ^( PRINT ID group_elements ) ; */ static void print(ppngenerator ctx) @@ -4767,8 +4754,8 @@ { - // /Users/bion/projects/iordache/translator/pngenerator.g:162:2: ( ^( PRINT ID group_elements ) ) - // /Users/bion/projects/iordache/translator/pngenerator.g:162:4: ^( PRINT ID group_elements ) + // /Users/bion/projects/iordache/translator/pngenerator.g:149:2: ( ^( PRINT ID group_elements ) ) + // /Users/bion/projects/iordache/translator/pngenerator.g:149:4: ^( PRINT ID group_elements ) { MATCHT(PRINT, &FOLLOW_PRINT_in_print554); if (HASEXCEPTION()) @@ -4843,7 +4830,7 @@ /** * $ANTLR start group_elements - * /Users/bion/projects/iordache/translator/pngenerator.g:164:1: group_elements : ( ID | ^( DOT group_elements ID ) ); + * /Users/bion/projects/iordache/translator/pngenerator.g:151:1: group_elements : ( ID | ^( DOT group_elements ID ) ); */ static void group_elements(ppngenerator ctx) @@ -4854,7 +4841,7 @@ { { - // /Users/bion/projects/iordache/translator/pngenerator.g:165:2: ( ID | ^( DOT group_elements ID ) ) + // /Users/bion/projects/iordache/translator/pngenerator.g:152:2: ( ID | ^( DOT group_elements ID ) ) ANTLR3_UINT32 alt33; @@ -4892,7 +4879,7 @@ switch (alt33) { case 1: - // /Users/bion/projects/iordache/translator/pngenerator.g:165:4: ID + // /Users/bion/projects/iordache/translator/pngenerator.g:152:4: ID { MATCHT(ID, &FOLLOW_ID_in_group_elements569); if (HASEXCEPTION()) @@ -4907,7 +4894,7 @@ } break; case 2: - // /Users/bion/projects/iordache/translator/pngenerator.g:166:4: ^( DOT group_elements ID ) + // /Users/bion/projects/iordache/translator/pngenerator.g:153:4: ^( DOT group_elements ID ) { MATCHT(DOT, &FOLLOW_DOT_in_group_elements575); if (HASEXCEPTION()) @@ -4985,7 +4972,7 @@ /** * $ANTLR start numbered_ID - * /Users/bion/projects/iordache/translator/pngenerator.g:167:1: numbered_ID : ( ID | ^( ID INT ) ); + * /Users/bion/projects/iordache/translator/pngenerator.g:154:1: numbered_ID : ( ID | ^( ID INT ) ); */ static void numbered_ID(ppngenerator ctx) @@ -4996,7 +4983,7 @@ { { - // /Users/bion/projects/iordache/translator/pngenerator.g:168:2: ( ID | ^( ID INT ) ) + // /Users/bion/projects/iordache/translator/pngenerator.g:155:2: ( ID | ^( ID INT ) ) ANTLR3_UINT32 alt34; @@ -5058,7 +5045,7 @@ switch (alt34) { case 1: - // /Users/bion/projects/iordache/translator/pngenerator.g:168:4: ID + // /Users/bion/projects/iordache/translator/pngenerator.g:155:4: ID { MATCHT(ID, &FOLLOW_ID_in_numbered_ID589); if (HASEXCEPTION()) @@ -5073,7 +5060,7 @@ } break; case 2: - // /Users/bion/projects/iordache/translator/pngenerator.g:169:4: ^( ID INT ) + // /Users/bion/projects/iordache/translator/pngenerator.g:156:4: ^( ID INT ) { MATCHT(ID, &FOLLOW_ID_in_numbered_ID595); if (HASEXCEPTION()) @@ -5140,8 +5127,8 @@ // $ANTLR start synpred2_pngenerator static void synpred2_pngenerator_fragment(ppngenerator ctx ) { - // /Users/bion/projects/iordache/translator/pngenerator.g:85:22: ( proc_instantiations ) - // /Users/bion/projects/iordache/translator/pngenerator.g:85:22: proc_instantiations + // /Users/bion/projects/iordache/translator/pngenerator.g:72:22: ( proc_instantiations ) + // /Users/bion/projects/iordache/translator/pngenerator.g:72:22: proc_instantiations { FOLLOWPUSH(FOLLOW_proc_instantiations_in_synpred2_pngenerator80); proc_instantiations(ctx); @@ -5169,8 +5156,8 @@ // $ANTLR start synpred27_pngenerator static void synpred27_pngenerator_fragment(ppngenerator ctx ) { - // /Users/bion/projects/iordache/translator/pngenerator.g:140:9: ( primary ) - // /Users/bion/projects/iordache/translator/pngenerator.g:140:9: primary + // /Users/bion/projects/iordache/translator/pngenerator.g:127:9: ( primary ) + // /Users/bion/projects/iordache/translator/pngenerator.g:127:9: primary { FOLLOWPUSH(FOLLOW_primary_in_synpred27_pngenerator380); primary(ctx); @@ -5198,8 +5185,8 @@ // $ANTLR start synpred28_pngenerator static void synpred28_pngenerator_fragment(ppngenerator ctx ) { - // /Users/bion/projects/iordache/translator/pngenerator.g:141:7: ( ^( ADD additiveExpression additiveExpression ) ) - // /Users/bion/projects/iordache/translator/pngenerator.g:141:7: ^( ADD additiveExpression additiveExpression ) + // /Users/bion/projects/iordache/translator/pngenerator.g:128:7: ( ^( ADD additiveExpression additiveExpression ) ) + // /Users/bion/projects/iordache/translator/pngenerator.g:128:7: ^( ADD additiveExpression additiveExpression ) { MATCHT(ADD, &FOLLOW_ADD_in_synpred28_pngenerator389); if (HASEXCEPTION()) @@ -5268,8 +5255,8 @@ // $ANTLR start synpred29_pngenerator static void synpred29_pngenerator_fragment(ppngenerator ctx ) { - // /Users/bion/projects/iordache/translator/pngenerator.g:145:9: ( ID ) - // /Users/bion/projects/iordache/translator/pngenerator.g:145:9: ID + // /Users/bion/projects/iordache/translator/pngenerator.g:132:9: ( ID ) + // /Users/bion/projects/iordache/translator/pngenerator.g:132:9: ID { MATCHT(ID, &FOLLOW_ID_in_synpred29_pngenerator422); if (HASEXCEPTION()) @@ -5294,8 +5281,8 @@ // $ANTLR start synpred30_pngenerator static void synpred30_pngenerator_fragment(ppngenerator ctx ) { - // /Users/bion/projects/iordache/translator/pngenerator.g:146:7: ( group_elements ) - // /Users/bion/projects/iordache/translator/pngenerator.g:146:7: group_elements + // /Users/bion/projects/iordache/translator/pngenerator.g:133:7: ( group_elements ) + // /Users/bion/projects/iordache/translator/pngenerator.g:133:7: group_elements { FOLLOWPUSH(FOLLOW_group_elements_in_synpred30_pngenerator430); group_elements(ctx); Modified: translator/pngenerator.g =================================================================== --- translator/pngenerator.g 2009-06-17 20:56:13 UTC (rev 63) +++ translator/pngenerator.g 2009-06-17 21:14:16 UTC (rev 64) @@ -12,11 +12,16 @@ @header { //this will bring in everything else we need from the PNS library #include "pns.h" + #include "dataStructures.h" #undef GET_TOKEN #undef GET_TEXT #undef WARN_AT #undef FAIL_AT + #undef kNAME + #undef kPROC + #undef kPLACES + #undef kTRANS #define GET_TOKEN(list, num) (pANTLR3_COMMON_TOKEN) list->get(list, num) //retrieves the text of the numth token in the list @@ -29,20 +34,16 @@ #define kPROC 2 #define kPLACES 3 #define kTRANS 4 - #define kNUM_PLACES 5 - #define kNUM_TRANS 6 } @members { static void showContext(pANTLR3_BASE_TREE tree); - static void addPlace(pANTLR3_HASH_TABLE placeList, void* place); - static void addTrans(pANTLR3_HASH_TABLE transList, void* trans); static void deallocProcess(process* proc); //see kDEFINES in pnscript.g - pANTLR3_HASH_TABLE processes; + ASSOC_ARRAY* processes; //see kDEFINES in pnscript.g - pANTLR3_HASH_TABLE threads; + ASSOC_ARRAY* threads; specs* specification; static void showContext(pANTLR3_BASE_TREE t) { @@ -50,20 +51,6 @@ fprintf(stderr, "Line \%i, character \%i\n", tok->getLine(tok), tok->getCharPositionInLine(tok)); } - static void addPlace(pANTLR3_HASH_TABLE placeList, void* place) { - static unsigned int* i; - i = tmalloc(sizeof(int)); - *i = placeList->size(placeList); - placeList->put(placeList, (char*) place, i, free); - } - - static void addTrans(pANTLR3_HASH_TABLE transList, void* trans) { - static unsigned int* i; - i = tmalloc(sizeof(int)); - *i = transList->size(transList); - transList->put(transList, (char*) trans, i, free); - } - static void deallocProcess(process* proc) { if(proc->pn != NULL) { deallocpn(proc->pn); @@ -72,7 +59,7 @@ } //this encompasses the grammer and serves as our entry point -pn[pANTLR3_HASH_TABLE procData, pANTLR3_HASH_TABLE threadData] +pn[ASSOC_ARRAY* procData, ASSOC_ARRAY* threadData] @init { processes = procData; //we'll assume there are about 3 instances of every process @@ -96,7 +83,7 @@ : ID { pANTLR3_LIST list = processes->get(processes, $ID.text->chars); $proc_definitions::proc = (process*) list->get(list, kPROC); - pn = createpn("pnum tnum", *((int*) list->get(list, kNUM_PLACES)), *((int*) list->get(list, kNUM_TRANS))); +// pn = createpn("pnum tnum", *((int*) list->get(list, kNUM_PLACES)), *((int*) list->get(list, kNUM_TRANS))); $proc_definitions::proc->pn = &pn; }; trans_defs Modified: translator/pngenerator.h =================================================================== --- translator/pngenerator.h 2009-06-17 20:56:13 UTC (rev 63) +++ translator/pngenerator.h 2009-06-17 21:14:16 UTC (rev 64) @@ -2,7 +2,7 @@ * This C header file was generated by $ANTLR version 3.1.2 * * - From the grammar source file : /Users/bion/projects/iordache/translator/pngenerator.g - * - On : 2009-06-16 21:49:36 + * - On : 2009-06-17 16:11:12 * - for the tree parser : pngeneratorTreeParser * * Editing it, at least manually, is not wise. * @@ -113,11 +113,16 @@ //this will bring in everything else we need fro... [truncated message content] |