[antlr-interest] Can TokenRewriteStream be applied to rules?
YINGAnnie
yimm8369 at hotmail.com
Tue Mar 24 20:37:29 PDT 2009
It is not null.
I use the following:
variableStatement
: VAR? m=variableDeclaration ( COMMA variableDeclaration )* semic {System.out.print("Start"+$m.start+"stop"+$m.stop);tokens.replace($m.start, $m.stop, "something else");}
;
And the input is:
var int:a=2;
Then I got the output:
Start[@68,219:221='int',<250>,8:12] stop[@72,225:225='2',<248>,8:18]
That means variableDeclaration match int:a=2. However, the java.lang.NullPointerException is still there.
Here is the error line in the parser file:
if ( state.backtracking==0 ) {
System.out.print("Start"+(m!=null?((Token)m.start):null)+"stop"+(m!=null?((Token)m.stop):null));tokens.replace((m!=null?((Token)m.start):null), (m!=null?((Token)m.stop):null), "something else");
}
I really dont know why?
Thanks,
Annie
Date: Wed, 25 Mar 2009 08:53:17 +0530
From: indhu.b at s7software.com
To: yimm8369 at hotmail.com
CC: antlr-interest at antlr.org
Subject: Re: [antlr-interest] Can TokenRewriteStream be applied to rules?
Maybe 'm=variableDeclaration' didn't match anything in the input...
YINGAnnie wrote:
Sorry ,I forgot to mention, I corrected $m.end.
Now, I am using {tokens.replace($m.start, $m.stop, "something else");}
but I got java.lang.NullPointerException error.
It seems $m is null.
Annie
Date: Wed, 25 Mar 2009 08:40:46 +0530
From: indhu.b at s7software.com
To: yimm8369 at hotmail.com
CC: antlr-interest at antlr.org
Subject: Re: [antlr-interest] Can TokenRewriteStream be applied to rules?
There was a typo in my mail. It is $m.stop and not $m.end. Sorry :-)
And here is the documentation: http://www.antlr.org/api/Java/classorg_1_1antlr_1_1runtime_1_1_parser_rule_return_scope.html
:-)
YINGAnnie wrote:
Well, I tried it ,but this time the error is : java.lang.NullPointerException.
Did I do something wrong?
Thanks,
Annie
> Date: Wed, 25 Mar 2009 08:22:04 +0530
> From: indhu.b at s7software.com
> To: yimm8369 at hotmail.com
> CC: antlr-interest at antlr.org
> Subject: Re: [antlr-interest] Can TokenRewriteStream be applied to rules?
>
> This will work:
>
> variableStatement
> : VAR? variableDeclaration ( COMMA m=variableDeclaration )* semic
> {tokens.replace($m.start, $m.end, "something else");} &n bsp;
> ;
>
> $m will be of type variableDeclaration_ret urn which will be subclass of
> 'ParserRuleReturnScope'. $m is not Token.
>
>
> - Indhu
>
>
> YINGAnnie wrote:
> > Hi again,
> >
> > TokenRewriteStream can only replace the declared token, not the rule.
> > right?
> >
> > for example,If I want to replace VAR, it works fine, But if I want to
> > replace variableDeclaration , the error said $a can no t be resolved.
> >
> > variableStatement
> > : m= VAR? variableDeclaration ( COMMA variableDeclaration )* semic
> > {tokens.replace($m, "something else");}
> > ;
> >
> >
> > variableStatement
> > : VAR? variableDeclaration ( COMMA m=variableDeclaration )* semic
> > {tokens.replace($m, "something else");} &n bsp;
> > ;
> >
> > So how can I replace variableDeclaration ?
> >
> > Thanks in a dvance.
> >
> > Annie
> > ------------------------------------------------------------------------
> > 更多热辣资讯尽在新版MSN首页! 立刻访问! <http://cn.msn.com/>
> > ------------------------------------------------------------------------
> >
> >
> > List: http://www.antlr.org/mailman/listinfo/antlr-interest
> > Unsubscribe: http://www.antlr.org/mailman/options/antlr- interest/your-email-address
> >
>
微软地图实时路况,为您节省的不仅仅是时间! 立即查看!
更多热辣资讯尽在新版MSN首页! 立刻访问!
_________________________________________________________________
Live Search视频搜索,快速检索视频的利器!
http://www.live.com/?scope=video
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.antlr.org/pipermail/antlr-interest/attachments/20090325/249b6fce/attachment.html
More information about the antlr-interest
mailing list