You cannot add different return types to 'children' like that. put the alts in a subrule in the same order and accumulate the subrule. What is your output= option?
Jim > -----Original Message----- > From: antlr-interest-boun...@antlr.org [mailto:antlr-interest- > boun...@antlr.org] On Behalf Of Yves Weißig > Sent: Tuesday, October 25, 2011 9:28 AM > To: antlr-interest@antlr.org > Subject: Re: [antlr-interest] Compiling C runtime & linking > > Hi, > does anybody have an answer to this? > The structs do not match. I think this results from my rule: > group : (OPEN > children+=space* > ( > children+=group children+=space* | > children+=plaintext children+=space* | > (children+=command | children+=escape) > (children+=delimiter children+=space+ | > children+=delimiter | ) > )+ > CLOSE) -> ^(GROUP $children*) ; > Do you have a workaround? > Best regards, Yves > > Am 24.10.2011 18:32, schrieb Yves Weißig: > > I attached the generated code... > > static RtfParser_group_return > > group(pRtfParser ctx) > > begins at line 2015. > > first error is thrown at line 2113. > > maybe my rule is wrong? but output to java works fine. > > best regards, yves > > > > Am 24.10.2011 17:16, schrieb Jim Idle: > >> To link statically you need to reference the .a version of the > >> library I think. I don't know what your other errors are as I can’t > >> see your source code. > >> > >> > >> Jim > >> > >>> -----Original Message----- > >>> From: antlr-interest-boun...@antlr.org [mailto:antlr-interest- > >>> boun...@antlr.org] On Behalf Of Yves Weißig > >>> Sent: Monday, October 24, 2011 8:12 AM > >>> Cc: antlr-interest@antlr.org > >>> Subject: Re: [antlr-interest] Compiling C runtime & linking > >>> > >>> Hi again, > >>> this seems to be a problem with Windows (still the same error), but > >>> I tried the same under Linux and everything went fine. Compiled > with > >>> ./configure, then make & make install. After that: > >>> > >>> g++ -I/usr/local/include -shared -oRtfToolkit.lib -static > >>> -L/usr/local/lib -lantlr3c RtfLexer.c RtfParser.c > >>> > >>> Without Parser it works fine, with Parser it throws several: > >>> > >>> RtfParser.c: In function ‘RtfParser_group_return > >>> group(RtfParser_Ctx_struct*)’: > >>> RtfParser.c:2113: error: no match for ‘operator=’ in ‘children = > >>> space(ctx)’ > >>> RtfParser.h:198: note: candidates are: > >>> RtfParser_delimiter_return_struct& > >>> RtfParser_delimiter_return_struct::operator=(const > >>> RtfParser_delimiter_return_struct&) > >>> > >>> I don't know what that means... > >>> > >>> The grammar rule looks like: > >>> > >>> group : (OPEN > >>> children+=space* > >>> ( > >>> children+=group children+=space* | > >>> children+=plaintext children+=space* | > >>> (children+=command | children+=escape) > >>> (children+=delimiter children+=space+ | > >>> children+=delimiter | ) > >>> )+ > >>> CLOSE) -> ^(GROUP $children*) ; > >>> > >>> And one final question, how can I link the ANTLR runtime > statically... > >>> the above statement (without compiling the Parser) generates a > small > >>> lib of 16kb, so the ANTLR runtime is not linked static, or am I > >>> missing a point here? > >>> > >>> Best regards, Yves > >>> > >>> Am 24.10.2011 12:34, schrieb Yves Weißig: > >>>> Hi list, > >>>> I successfully compiled the C runtime for ANTLR with VS 2010. > >>>> Now I want to compile the generated code (Lexer and Parser) with > >>>> this > >>>> command: > >>>> g++ -Iantlrinclude -static -L. -lantlr3c RtfLexer.c RtfParser.c > >>>> as you may notice, antlr.h and all includefiles are in > antlrinclude > >>>> and the antlr3c.lib (copied from the Release dir of VS solution) > >>>> lies in the current working dir. I would like to include the > >>>> runtime statically ("-static"). > >>>> But it throws: > >>>> > C:\Users\Yves\AppData\Local\Temp/ccctgQP2.o:RtfLexer.c:(.text+0xb9): > >>>> undefined reference to `antlr3LexerNewStream' > >>>> which makes me believe the library is not correctly linked... what > >>>> is wrong here? > >>>> Best regards, Yves > >>>> > >>>> 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- > addres > >> s > >> > >> > >> > >> List: http://www.antlr.org/mailman/listinfo/antlr-interest > >> Unsubscribe: > >> http://www.antlr.org/mailman/options/antlr-interest/your-email- > addres > >> s > > 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 il-antlr-inter...@googlegroups.com. To unsubscribe from this group, send email to il-antlr-interest+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/il-antlr-interest?hl=en.