[antlr-interest] How to do iteration in Tree Grammar
轶凡
yifan.cby at taobao.com
Thu Sep 22 07:25:53 PDT 2011
Yes! it solved my problem. Bart, thank your help!
________________________________________
From: Bart Kiers [bkiers at gmail.com]
Sent: 22 September 2011 15:22
To: 轶凡
Cc: antlr-interest at antlr.org
Subject: Re: [antlr-interest] How to do iteration in Tree Grammar
Hi Yifan,
How about something like this:
foo: ^(VIRTUAL_NODE (bar {if($bar.value) return;})* );
?
Regards,
Bart.
2011/9/22 轶凡 <yifan.cby at taobao.com<mailto:yifan.cby at taobao.com>>
Hi, I defined a tree grammar as below:
foo: ^(VIRTUAL_NODE bar*) {
echo($bar.value);
};
bar returns [boolean value] : //… Omitted
The generated source of rule foo is like below:
public final void foo() throws XX
{
boolean bar40 = false;
do{
//omitted
bar40=bar();
//omitted
}while (true)
echo(bar40)
}
Actually in the rule ‘foo’, I want to do some actions against every ‘bar’, not the final bar’s value, code in imagination:
public final void foo() throws XX
{
boolean bar40 = false;
do{
//omitted
bar40=bar();
if (bar40){
echo(bar40);
return;
}
//omitted
}while (true)
echo(bar40)
}
How to change the rule ‘foo’ to archive my goal?
Thanks for your help!
________________________________
This email (including any attachments) is confidential and may be legally privileged. If you received this email in error, please delete it immediately and do not copy it or use it for any purpose or disclose its contents to any other person. Thank you.
本电邮(包括任何附件)可能含有机密资料并受法律保护。如您不是正确的收件人,请您立即删除本邮件。请不要将本电邮进行复制并用作任何其他用途、或透露本邮件之内容。谢谢。
List: http://www.antlr.org/mailman/listinfo/antlr-interest
Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your-email-address
More information about the antlr-interest
mailing list