FileDocCategorySizeDatePackage
TreeBlockContext.javaAPI DocGlassfish v2 API1189Wed Aug 30 15:34:12 BST 2006persistence.antlr

TreeBlockContext

public class TreeBlockContext extends BlockContext
The context needed to add root,child elements to a Tree. There is only one alternative (i.e., a list of children). We subclass to specialize. MakeGrammar.addElementToCurrentAlt will work correctly now for either a block of alts or a Tree child list. The first time addAlternativeElement is called, it sets the root element rather than adding it to one of the alternative lists. Rather than have the grammar duplicate the rules for grammar atoms etc... we use the same grammar and same refToken behavior etc... We have to special case somewhere and here is where we do it.

Fields Summary
protected boolean
nextElementIsRoot
Constructors Summary
Methods Summary
public voidaddAlternativeElement(AlternativeElement e)



        
        TreeElement tree = (TreeElement)block;
        if (nextElementIsRoot) {
            tree.root = (GrammarAtom)e;
            nextElementIsRoot = false;
        }
        else {
            super.addAlternativeElement(e);
        }