Class Expansion_

java.lang.Object
EDU.purdue.jtb.parser.Expansion_
Direct Known Subclasses:
Action, Choice, Lookahead, NonTerminal, OneOrMore, RegularExpression_, Sequence, TryBlock, ZeroOrMore, ZeroOrOne

public class Expansion_ extends 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.
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static enum 
    Subclasses enum type
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected static final String
    The OS line separator
    boolean
    This flag is used for bookkeeping by the minimumSize method in class UnusedParseEngine.
    long
    To avoid right-recursive loops when calculating follow sets, we use a generation number which indicates if this expansion was visited by
    invalid reference
    UnusedLookaheadWalk#genFollowSet(List, Expansion_, long)
    in the same generation.
    static long
    To avoid right-recursive loops when calculating follow sets, we use a generation number which indicates if this expansion was visited by
    invalid reference
    UnusedLookaheadWalk#genFollowSet(List, Expansion_, long)
    in the same generation.
    The parent of this expansion node.
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    dump(int indent, Set<Object> alreadyDumped)
     
    protected static StringBuilder
    dumpPrefix(int indent)
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Field Details

    • parent

      public 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
      invalid reference
      UnusedLookaheadWalk#genFollowSet(List, Expansion_, long)
      in the same generation. New generations are obtained by incrementing the static counter nextGenerationIndex, and the current generation is stored in the non-static variable myGeneration.
    • myGeneration

      public long myGeneration
      To avoid right-recursive loops when calculating follow sets, we use a generation number which indicates if this expansion was visited by
      invalid reference
      UnusedLookaheadWalk#genFollowSet(List, Expansion_, long)
      in the same generation. New generations are obtained by incrementing the static counter nextGenerationIndex, and the current generation is stored in the non-static variable myGeneration.
    • inMinimumSize

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

      protected static final String EOL
      The OS line separator
  • Constructor Details

    • Expansion_

      public Expansion_()
  • Method Details

    • toString

      public String toString()
      Overrides:
      toString in class Object
    • dumpPrefix

      protected static StringBuilder dumpPrefix(int indent)
      Parameters:
      indent - - the number of indentation level
      Returns:
      a StringBuilder with twice the number of spaces given by the parameter
    • dump

      public StringBuilder dump(int indent, Set<Object> alreadyDumped)
      Parameters:
      indent - - the number of spaces for indenting
      alreadyDumped - - a Set of objects already dumped (unused)
      Returns:
      the formatted string dumping the class