Hello Jim, thanks for your fast anser.
> It sounds more to me like there is something in the pre-processor that has > redefined whatever should really be there. You should trace through the > actual #defines to find out what. And what "should really be there"? Can you give me an example of an correct call (expanded) to ->push( ... )? Many thanks and greetings Udo >> -----Original Message----- >> From: [email protected] [mailto:antlr-interest- >> [email protected]] On Behalf Of Udo Weik >> Sent: Tuesday, October 04, 2011 10:05 AM >> To: Antlr-Interest Antlr.Org >> Subject: Re: [antlr-interest] Jim Idle: C-Runtime and C++Builder, E2342 >> Type mismatch in parameter >> >> Hello Jim, >> >> I was able by using the prepocessor macro expansion to find at least >> the location of the problem >> FOLLOWPUSH(FOLLOW_subtype_indication_in_access_type_definition730) >> which expands to >> ctx->pParser->rec->state->following->push( ctx->pParser->rec->state- >>> following, >> ((void >> *)(&(FOLLOW_subtype_indication_in_access_type_definition730))), >> 99 ) ; The problem is the >> value 99, which should be of type >> void (ANTLR3_CDECL *freeptr)(void *)) according to >> antlr3collections.h, line 211: >> /* >> ANTLR3_STACK_struct Struct Reference >> >> 00199 typedef struct ANTLR3_STACK_struct >> 00200 { >> 00203 pANTLR3_VECTOR vector; >> 00204 >> 00207 void * top; >> 00208 void (*free) (struct >> ANTLR3_STACK_struct * stack); >> 00209 void * (*pop) (struct >> ANTLR3_STACK_struct * stack); >> 00210 void * (*get) (struct >> ANTLR3_STACK_struct * stack, ANTLR3_INTKEY key); >> 00211 ANTLR3_BOOLEAN (*push) (struct ANTLR3_STACK_struct * >> stack, void * element, void (ANTLR3_CDECL *freeptr)(void *)); >> 00212 ANTLR3_UINT32 (*size) (struct ANTLR3_STACK_struct * >> stack); >> 00213 void * (*peek) (struct >> ANTLR3_STACK_struct * stack); >> 00214 >> 00215 } >> 00216 ANTLR3_STACK; >> */ >> >> Can you be so kind and explain me the purpose of 99 (and why is it just >> an >> int) and whether there is a more or less corresponding functionallity >> for the ANTLR3_STACK_struct in ANTLR (Java sources). >> >> Many thanks and greetings >> Udo >> >> >>> I don't really know what you are trying to do or what compiler you >> are >>> using etc, but remember this is C code not C++ code so if you turn on >>> all the warnings in the C++ compiler then you may get the odd >> warning. >>> But without seeing all the code, I can't guess where that warning is. >>> It isn't the FOLLOWPUSH macro though. It looks more likely that you >>> are not including the correct headers and so the prototype is >> defaulting to int. >>> >>> As for tabs vs space... well it is generated code. You could always >>> untab it using any one of a thousand tools, or modify the code >>> generation template and remake ANTLR. >>> >>> I don't know anything about C__ builder, but it seems to be more of a >>> hindrance than a help? >>> >>> Jim >>> >>>> -----Original Message----- >>>> From: [email protected] [mailto:antlr-interest- >>>> [email protected]] On Behalf Of Udo Weik >>>> Sent: Saturday, October 01, 2011 12:22 AM >>>> To: Antlr-Interest Antlr.Org >>>> Subject: [antlr-interest] Jim Idle: C-Runtime and C++Builder, E2342 >>>> Type mismatch in parameter >>>> >>>> Hello Jim, >>>> >>>> I'm getting some >>>> E2342 Type mismatch in parameter 'freeptr' (wanted 'void >> (*)(void >>>> *)', got 'int') errors in code lines like >>>> >>>> FOLLOWPUSH(FOLLOW_subtype_indication_in_access_type_definition730) >>>> ); Any hint? >>>> >>>> >>>> And in the following functions an analog problem >>>> E2342 Type mismatch in parameter 'state' (wanted >>>> 'ANTLR3_RECOGNIZER_SHARED_STATE_struct *', got 'int')I I just >>>> declared state and initialized it with NULL: >>>> >>>> ANTLR3_API pXYZLexer XYZLexerNew( pANTLR3_INPUT_STREAM instream ) { >>>> pANTLR3_RECOGNIZER_SHARED_STATE state ; // UW >>>> state = NULL ; // UW >>>> >>>> // See if we can create a new lexer with the standard >> constructor >>>> // >>>> // UW return XYZLexerNewSSD(instream, NULL); >>>> return XYZLexerNewSSD(instream, state); // UW } >>>> >>>> Same problem with >>>> ANTLR3_API pXYZParser XYZParserNew( pANTLR3_COMMON_TOKEN_STREAM >>>> instream ) { >>>> pANTLR3_RECOGNIZER_SHARED_STATE state ; // UW >>>> state = NULL ; // UW >>>> >>>> // See if we can create a new parser with the standard >> constructor >>>> // >>>> // UW return XYZParserNewSSD(instream, NULL); >>>> return XYZParserNewSSD(instream, state); // UW } >>>> >>>> >>>> Is it in any way possible to avoid tabs in the generated code? >>>> I would prefer two spaces for one tab. >>>> >>>> >>>> Many thanks and greetings >>>> Udo >>>> >>>> List: http://www.antlr.org/mailman/listinfo/antlr-interest >>>> Unsubscribe: >>>> http://www.antlr.org/mailman/options/antlr-interest/your- >>>> email-address >>> >>> List: http://www.antlr.org/mailman/listinfo/antlr-interest >>> Unsubscribe: >>> http://www.antlr.org/mailman/options/antlr-interest/your-email- >> address >> >> >> List: http://www.antlr.org/mailman/listinfo/antlr-interest >> Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your- >> email-address > > List: http://www.antlr.org/mailman/listinfo/antlr-interest > Unsubscribe: > http://www.antlr.org/mailman/options/antlr-interest/your-email-address List: http://www.antlr.org/mailman/listinfo/antlr-interest Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your-email-address -- You received this message because you are subscribed to the Google Groups "il-antlr-interest" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/il-antlr-interest?hl=en.
