Package org.javacc.parser
Class Expansion
- java.lang.Object
-
- org.javacc.parser.Expansion
-
- Direct Known Subclasses:
Action,CharacterRange,Choice,Lookahead,NonTerminal,NormalProduction,OneOrMore,RegularExpression,Sequence,SingleCharacter,TryBlock,ZeroOrMore,ZeroOrOne
public class Expansion extends java.lang.ObjectDescribes 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
Fields Modifier and Type Field Description private intcolumnprotected static java.lang.StringeolbooleaninMinimumSizeThis flag is used for bookkeeping by the minimumSize method in class ParseEngine.private intlineThe line and column number of the construct that corresponds most closely to this node.(package private) longmyGenerationTo 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.(package private) intordinalThe ordinal of this node with respect to its parent.java.lang.ObjectparentThe parent of this expansion node.
-
Constructor Summary
Constructors Constructor Description Expansion()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.StringBufferdump(int indent, java.util.Set<Expansion> alreadyDumped)protected java.lang.StringBufferdumpPrefix(int indent)intgetColumn()intgetLine()java.lang.StringgetProductionName()private java.lang.StringgetSimpleName()inthashCode()A reimplementing of Object.hashCode() to be deterministic.(package private) voidsetColumn(int column)(package private) voidsetLine(int line)java.lang.StringtoString()
-
-
-
Field Detail
-
eol
protected static final java.lang.String eol
-
line
private int line
The line and column number of the construct that corresponds most closely to this node.
-
column
private int column
-
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.
-
ordinal
int ordinal
The ordinal of this node with respect to its parent.
-
myGeneration
long myGeneration
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.
-
inMinimumSize
public boolean inMinimumSize
This flag is used for bookkeeping by the minimumSize method in class ParseEngine.
-
-
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:
hashCodein classjava.lang.Object
-
getLine
public final int getLine()
- Returns:
- the line
-
getColumn
public final int getColumn()
- Returns:
- the column
-
setLine
final void setLine(int line)
- Parameters:
line- the line to set
-
setColumn
final void setColumn(int column)
- Parameters:
column- the column to set
-
dumpPrefix
protected java.lang.StringBuffer dumpPrefix(int indent)
-
dump
public java.lang.StringBuffer dump(int indent, java.util.Set<Expansion> alreadyDumped)
-
getProductionName
public java.lang.String getProductionName()
-
getSimpleName
private java.lang.String getSimpleName()
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-