org.javacc.parser
Class Expansion

java.lang.Object
  extended by org.javacc.parser.Expansion
Direct Known Subclasses:
Action, Choice, Lookahead, NonTerminal, OneOrMore, RegularExpression, Sequence, TryBlock, ZeroOrMore, ZeroOrOne

public class Expansion
extends java.lang.Object

Describes expansions - entities that may occur on the right hand sides of productions. This is the base class of a bunch of other more specific classes.


Field Summary
 boolean inMinimumSize
          This flag is used for bookkeeping by the minimumSize method in class ParseEngine.
 long myGeneration
           
static long nextGenerationIndex
          To avoid right-recursive loops when calculating follow sets, we use a generation number which indicates if this expansion was visited by LookaheadWalk.genFollowSet in the same generation.
 java.lang.Object parent
          The parent of this expansion node.
 
Constructor Summary
Expansion()
           
 
Method Summary
 int hashCode()
          A reimplementing of Object.hashCode() to be deterministic.
static void reInit()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

parent

public java.lang.Object parent
The parent of this expansion node. In case this is the top level expansion of the production it is a reference to the production node otherwise it is a reference to another Expansion node. In case this is the top level of a lookahead expansion,then the parent is null.


nextGenerationIndex

public static long nextGenerationIndex
To avoid right-recursive loops when calculating follow sets, we use a generation number which indicates if this expansion was visited by LookaheadWalk.genFollowSet in the same generation. New generations are obtained by incrementing the static counter below, and the current generation is stored in the non-static variable below.


myGeneration

public long myGeneration

inMinimumSize

public boolean inMinimumSize
This flag is used for bookkeeping by the minimumSize method in class ParseEngine.

Constructor Detail

Expansion

public Expansion()
Method Detail

hashCode

public int hashCode()
A reimplementing of Object.hashCode() to be deterministic. This uses the line and column fields to generate an arbitrary number - we assume that this method is called only after line and column are set to their actual values.

Overrides:
hashCode in class java.lang.Object

reInit

public static void reInit()