Unless I am missing something, the convenience methods: inContext(String) hasAncestor(int) hasParent(int)
belong in TreeFilter, or at least in the TreeFilter heirarchy. BaseTree#hasAncestor(int) is just plain awkward to code in a tree matcher grammar predicate. Also, the inContext method really is needed. Just no other convenient way to discretely distinguish a branch in a complex AST. Attached is the TreeFilter subclass that I am currently using. The inContext method is a rework of your earlier method of the same name -- I have not exercised this version greatly. In a next version, would like to get away form the String parameter and use an int list instead, maybe with a pre-defined imaginary token representing '.*'. At 03:21 PM 9/12/2009, Terence Parr wrote: >yeah, I realized that I had opened up a huge issue without thinking it >through. I'd like to have something like inContext but the more I >added to it, the more I realized that the simplest thing to do would >be to give the programmer basic tools like hasAncestor and let them >add whatever logic they need. > >Ter >On Sep 12, 2009, at 3:18 PM, Gerald Rosenberg wrote: > >>At 02:07 PM 9/12/2009, Terence Parr wrote: >> >>>On Sep 12, 2009, at 12:06 AM, Gerald Rosenberg wrote: >>>>Given an existing AST with the two paths: >>> >>>i'd recommend doing ^(m .*) match and a pred in front that says >>>hasAncestor(a) or something >>>Ter >> >>OK, I completely missed BaseTree#hasAncestor >> >>Regards the "or something," TreeParser#inContext would seem to be >>it. However, that method seems to have gone missing from 3.1.3 (it >>was in 3.1.2, but is still absent in 3.1.4). Is there a reason that >>method got pulled? >> >>Thanks. >> >> >> >> >> >>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 [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/il-antlr-interest?hl=en -~----------~----~----~----~------~----~------~--~---
