[antlr-interest] A bug in C Target Composite grammar
Gokulakannan Somasundaram
gokul007 at gmail.com
Mon Feb 1 06:32:44 PST 2010
Hi,
I found and fixed a runtime bug for C Target w.r.t composite grammar.
Please do the necessary.
I am copy-pasting the C.stg file lines, that i changed.
<if(grammar.directDelegates)>
// Initialize the parsers that we are going to delegate some
// functions to.
//
<grammar.directDelegates:
{g|ctx-><g:delegateName()> = <g.recognizerName>NewSSD(instream,
PSRSTATE<grammar.delegators:{g|, <g:delegateName()>}>, ctx);};
separator="\n">
<endif>
<if(grammar.delegators)>
// Install the pointers back to parsers that will delegate us to perform
certain functions
// for them.
//
<grammar.delegators:
{g|ctx-><g:delegateName()> = <g:delegateName()>;};
separator="\n">
<if(grammar.directDelegates)>
<grammar.directDelegates:
{g1|
<grammar.delegators:{g2|ctx-><g2:delegateName()>-><g1:delegateName()> =
ctx-><g1:delegateName()>;}; separator="\n"> };
separator="\n">
<endif>
<endif>
The first highlighted portion fixed a compile time bug and the second
portion fixed the runtime bug. I could see similar lines for lexer also. But
i didn't change them. Please take care of this.
Thanks,
Gokul.
More information about the antlr-interest
mailing list