/******************************************************************************* * Copyright (c) 2008 Scott Stanchfield. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Based on the ANTLR parser generator by Terence Parr, http://antlr.org * Ric Klaren <klaren@cs.utwente.nl> * Scott Stanchfield - Modifications for XML Parsing *******************************************************************************/ package com.javadude.antxr; /**BlockContext stores the information needed when creating an * alternative (list of elements). Entering a subrule requires * that we save this state as each block of alternatives * requires state such as "tail of current alternative." */ class BlockContext { AlternativeBlock block; // current block of alternatives int altNum; // which alt are we accepting 0..n-1 BlockEndElement blockEnd; // used if nested public void addAlternativeElement(AlternativeElement e) { currentAlt().addElement(e); } public Alternative currentAlt() { return block.alternatives.get(altNum); } public AlternativeElement currentElement() { return currentAlt().tail; } }