Hi Yifan,

How about something like this:

    foo: ^(VIRTUAL_NODE (bar {if($bar.value) return;})* );

?

Regards,

Bart.


2011/9/22 轶凡 <yifan....@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
>

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.

Reply via email to