Changeset 271 for trunk/idl-compiler/c
- Timestamp:
- Mar 25, 2007, 8:32:59 PM (18 years ago)
- Location:
- trunk/idl-compiler/c
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/idl-compiler/c/nom-idl-compiler.c
r269 r271 109 109 110 110 GScanner *gScanner; 111 GTokenType curToken=G_TOKEN_EOF;112 PINTERFACE pCurInterface=NULL;113 111 114 112 /* Holding info about current token. Referenced by gScanner. */ 115 SYMBOLINFO curSymbol;113 //SYMBOLINFO curSymbol; 116 114 117 115 /* Holding the current state of parsing and pointers to necessary lists. */ 118 116 PARSEINFO parseInfo={0}; 117 PPARSEINFO pParseInfo=&parseInfo; 119 118 120 119 /** … … 151 150 value=gScanner->value; 152 151 153 switch( curToken)152 switch(gScanner->token) 154 153 { 155 154 case G_TOKEN_IDENTIFIER: … … 395 394 GTokenType token; 396 395 397 curToken=g_scanner_get_next_token(gScanner);398 token= curToken;396 g_scanner_get_next_token(gScanner); 397 token=gScanner->token; 399 398 GTokenValue value=gScanner->value; 400 399 401 switch( curToken)400 switch(token) 402 401 { 403 402 case '#': … … 465 464 #endif 466 465 default: 467 printToken( curToken);466 printToken(token); 468 467 break; 469 468 } … … 535 534 /* Vars for filename building */ 536 535 char* chrOutputFileName=""; 536 char* chrTemp; 537 537 538 538 GError *gError = NULL; … … 557 557 a++; 558 558 559 #if 0560 559 if(!a){ 561 560 g_printf("An emitter must be specified.\n\n"); … … 566 565 outputCompilerHelp(gContext, argv[0]); 567 566 } 568 #endif569 567 570 568 if(strlen(chrOutputName)==0) … … 602 600 chrOutputFileName=chrOutputName; 603 601 604 //g_message("Output file: %s", chrOutputFileName); 602 /* Add emitter extension */ 603 if(fOptionEmitH) 604 chrTemp=g_strconcat(chrOutputFileName, ".h", NULL); 605 else if(fOptionEmitIH) 606 chrTemp=g_strconcat(chrOutputFileName, ".ih", NULL); 607 else if(fOptionEmitC) 608 chrTemp=g_strconcat(chrOutputFileName, ".c", NULL); 609 g_free(chrOutputFileName); 610 chrOutputFileName=chrTemp; 611 612 g_message("Output file: %s", chrOutputFileName); 605 613 606 614 /* Open input */ … … 622 630 623 631 gScanner=g_scanner_new(NULL); 624 gScanner->user_data=(gpointer)&curSymbol; 625 curSymbol.pSymbols=idlSymbols; 632 //gScanner->user_data=(gpointer)&curSymbol; 626 633 627 634 gScanner->msg_handler=funcMsgHandler; … … 650 657 parseIt(); 651 658 659 /* Write the output file */ 660 if(fOptionEmitH) 661 emitHFile(pInterfaceArray); 662 663 #if 0 664 else if(fOptionEmitIH) 665 666 else if(fOptionEmitC) 667 a++; 668 652 669 if(pInterfaceArray->len) 653 670 printInterface(); 671 #endif 654 672 655 673 g_scanner_destroy(gScanner); -
trunk/idl-compiler/c/printdata.c
r270 r271 144 144 g_printf("\tMinor:\t\t%ld\n", pif->ulMinor); 145 145 g_printf("\tForward decl.:\t%s\n", (pif->fIsForwardDeclaration ? "Yes" : "No")); 146 g_printf("\tMetaclass::\t%s\n", (pif->chrMetaClass ? pif->chrMetaClass : "None")); 146 g_printf("\tMetaclass:\t%s\n", (pif->chrMetaClass ? pif->chrMetaClass : "None")); 147 g_printf("\tSource file:\t%s\n", pif->chrSourceFileName); 147 148 /* Print instance vars */ 148 149 g_printf("\tInstance vars:\t%d\n", pif->pInstanceVarArray->len); -
trunk/idl-compiler/c/token.c
r265 r271 40 40 41 41 extern GScanner *gScanner; 42 extern GTokenType curToken;42 extern PPARSEINFO pParseInfo; 43 43 44 44 /* … … 48 48 void setCurSymbolInfo(void) 49 49 { 50 PSYMBOLINFO psi; 51 52 psi=(PSYMBOLINFO)gScanner->user_data; 53 54 switch(curToken) 50 switch(gScanner->token) 55 51 { 56 52 case G_TOKEN_IDENTIFIER: … … 58 54 break; 59 55 default: 60 p si->uiCurSymbolKind=KIND_UNKNOWN;61 break; 62 } 63 if( curToken==G_TOKEN_SYMBOL)56 pParseInfo->uiCurSymbolKind=KIND_UNKNOWN; 57 break; 58 } 59 if(gScanner->token==G_TOKEN_SYMBOL) 64 60 { 65 61 GTokenValue value; … … 69 65 pCurSymbol=value.v_symbol; 70 66 71 p si->uiCurSymbolKind=pCurSymbol->uiKind;67 pParseInfo->uiCurSymbolKind=pCurSymbol->uiKind; 72 68 } 73 69 } … … 75 71 guint queryCurTokensKind(void) 76 72 { 77 PSYMBOLINFO psi; 78 79 psi=(PSYMBOLINFO)gScanner->user_data; 80 return psi->uiCurSymbolKind; 73 return pParseInfo->uiCurSymbolKind; 81 74 } 82 75 … … 121 114 void getNextToken(void) 122 115 { 123 curToken =g_scanner_get_next_token(gScanner);116 g_scanner_get_next_token(gScanner); 124 117 setCurSymbolInfo(); 125 118 } … … 138 131 gboolean matchCur(GTokenType token) 139 132 { 140 if(token== curToken)133 if(token==gScanner->token) 141 134 { 142 135 return TRUE; … … 190 183 default: 191 184 { 192 PSYMBOLINFO psi;193 psi=(PSYMBOLINFO)gScanner->user_data;194 195 185 g_message("Token: %d (%s)\t\t\t (LINE %d)", pCurSymbol->uiSymbolToken, 196 186 pCurSymbol->chrSymbolName, g_scanner_cur_line(gScanner));
Note:
See TracChangeset
for help on using the changeset viewer.