antlr

Class TreeBlockContext


(package private) 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.

Field Summary

protected boolean
nextElementIsRoot

Fields inherited from class antlr.BlockContext

altNum, block, blockEnd

Method Summary

void
addAlternativeElement(AlternativeElement e)

Methods inherited from class antlr.BlockContext

addAlternativeElement, currentAlt, currentElement

Field Details

nextElementIsRoot

protected boolean nextElementIsRoot

Method Details

addAlternativeElement

public void addAlternativeElement(AlternativeElement e)
Overrides:
addAlternativeElement in interface BlockContext