Changeset 269 for trunk/idl-compiler/parser_c
- Timestamp:
- Mar 25, 2007, 2:35:35 PM (18 years ago)
- Location:
- trunk/idl-compiler/parser_c
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/idl-compiler/parser_c/interface_parser.c
r266 r269 63 63 g_scanner_scope_add_symbol(gScanner, ID_SCOPE, pNewSymbol->chrSymbolName, 64 64 pNewSymbol); 65 /* For legacy support and convenience we automatically register a pointer type 66 to the interface. */ 67 pNewSymbol=g_malloc0(sizeof(SYMBOL)); 68 pNewSymbol->uiKind=KIND_TYPESPEC; 69 pNewSymbol->uiSymbolToken=IDL_SYMBOL_REGINTERFACE; 70 pNewSymbol->chrSymbolName=g_strconcat("P", pCurInterface->chrName, NULL); 71 g_message("%s: %s", __FUNCTION__, pNewSymbol->chrSymbolName); 72 g_tree_insert(parseInfo.pSymbolTree, pNewSymbol, pNewSymbol->chrSymbolName); 73 g_scanner_scope_add_symbol(gScanner, ID_SCOPE, pNewSymbol->chrSymbolName, 74 pNewSymbol); 65 75 } 66 76 … … 98 108 parseMethod(); 99 109 } 110 else if(matchNext('#')) 111 parseHash(); 100 112 else if(matchNext(G_TOKEN_SYMBOL)) 101 113 { -
trunk/idl-compiler/parser_c/method_parser.c
r265 r269 119 119 120 120 //pParam->chrType=getTypeSpecStringFromCurToken(); 121 //g_printf("%s %d", __FUNCTION__, __LINE__); 122 //printToken(curToken); 121 123 122 124 if(!matchNext(G_TOKEN_IDENTIFIER)) 123 125 { 124 126 getNextToken(); /* Make sure error references the correct token */ 127 //g_printf("%s %d", __FUNCTION__, __LINE__); 128 //printToken(curToken); 125 129 g_scanner_unexp_token(gScanner, 126 130 G_TOKEN_IDENTIFIER, -
trunk/idl-compiler/parser_c/typespec_parser.c
r267 r269 47 47 48 48 TS:= TYPE_SPEC 49 | TYPE_SPEC TYPE_SPEC // This is for something like 'unsigned long' 49 50 | TYPE_SPEC '*' 51 | TYPE_SPEC TYPE_SPEC '*' // This is for something like 'unsigned long*' 50 52 */ 51 53 void parseTypeSpec(PMETHODPARAM pMethodParam) 52 54 { 53 /* Return type */ 54 pMethodParam->chrType=getTypeSpecStringFromCurToken(); 55 char *chrTemp; 56 57 /* Return type part 1 */ 58 chrTemp=getTypeSpecStringFromCurToken(); 59 60 /* A second typespec part (e.g. 'unsigned long')? */ 61 if(matchNextKind(KIND_TYPESPEC)) 62 { 63 char *chrTemp2=getTypeSpecStringFromCurToken(); 64 pMethodParam->chrType=g_strconcat(chrTemp, " ", chrTemp2 ,NULL); 65 g_free(chrTemp2); 66 g_free(chrTemp); 67 } 68 else{ 69 /* Return type */ 70 pMethodParam->chrType=chrTemp; 71 } 55 72 56 73 /* Do we return a pointer (check for '*') */ … … 61 78 62 79 80 81
Note:
See TracChangeset
for help on using the changeset viewer.