Package jflex.core

Class RegExps

java.lang.Object
jflex.core.RegExps

public class RegExps extends Object
Stores all rules of the specification for later access in the RegExp to NFA conversion.
Version:
JFlex 1.8.2
  • Field Details

    • lines

      private final List<Integer> lines
      the spec line in which a regexp is used
    • states

      private final List<List<Integer>> states
      the lexical states in which the regexp is used
    • regExps

      private List<RegExp> regExps
      the regexp
    • actions

      private final List<Action> actions
      the action of a regexp
    • BOL

      private final List<Boolean> BOL
      flag if it is a BOL regexp
    • look

      private List<RegExp> look
      the lookahead expression
    • look_entry

      private final List<Integer> look_entry
      the forward DFA entry point of the lookahead expression
    • gen_look_count

      int gen_look_count
      Count of how many general lookahead expressions there are. Need 2*gen_look_count additional DFA entry points.
  • Constructor Details

    • RegExps

      public RegExps()
      Constructor for RegExps.
  • Method Details

    • insert

      public int insert(int line, List<Integer> stateList, RegExp regExp, Action action, Boolean isBOL, RegExp lookAhead)
      insert.
      Parameters:
      line - a int.
      stateList - a List object.
      regExp - a RegExp object.
      action - a Action object.
      isBOL - a Boolean object.
      lookAhead - a RegExp object.
      Returns:
      a int.
    • insert

      public int insert(List<Integer> stateList, Action action)
      insert.
      Parameters:
      stateList - a List object.
      action - a Action object.
      Returns:
      a int.
    • addStates

      public void addStates(int regNum, List<Integer> newStates)
      addStates.
      Parameters:
      regNum - a int.
      newStates - a List object.
    • getNum

      public int getNum()
      getNum.
      Returns:
      a int.
    • isBOL

      public boolean isBOL(int num)
      isBOL.
      Parameters:
      num - a int.
      Returns:
      a boolean.
    • getLookAhead

      public RegExp getLookAhead(int num)
      getLookAhead.
      Parameters:
      num - a int.
      Returns:
      a RegExp object.
    • isEOF

      public boolean isEOF(int num)
      isEOF.
      Parameters:
      num - a int.
      Returns:
      a boolean.
    • getStates

      public List<Integer> getStates(int num)
      Getter for the field states.
      Parameters:
      num - a int.
      Returns:
      a List object.
    • getRegExp

      public RegExp getRegExp(int num)
      getRegExp.
      Parameters:
      num - a int.
      Returns:
      a RegExp object.
    • getLine

      public int getLine(int num)
      getLine.
      Parameters:
      num - a int.
      Returns:
      a int.
    • getLookEntry

      public int getLookEntry(int num)
      getLookEntry.
      Parameters:
      num - a int.
      Returns:
      a int.
    • checkActions

      public void checkActions()
      checkActions.
    • getAction

      public Action getAction(int num)
      getAction.
      Parameters:
      num - a int.
      Returns:
      a Action object.
    • NFASize

      public int NFASize(Macros macros)
      NFASize.
      Parameters:
      macros - a Macros object.
      Returns:
      a int.
    • checkLookAheads

      public void checkLookAheads()
      checkLookAheads.
    • lookAheadCase

      private void lookAheadCase(int regExpNum)
      Determine which case of lookahead expression regExpNum points to (if any). Set case data in corresponding action. Increment count of general lookahead expressions for entry points of the two additional DFAs. Register DFA entry point in RegExps

      Needs to be run before adding any regexps/rules to be able to reserve the correct amount of space of lookahead DFA entry points.

      Parameters:
      regExpNum - the number of the regexp in RegExps.
    • normalise

      public void normalise(Macros m)
      Normalise all character class expressions in regexp and lookahead rules.
    • dump

      public void dump()
      Print the list of regExps to Out.dump
    • makeCCLs

      public void makeCCLs(CharClasses classes, boolean caseless)
      Make character class partitions for all classes mentioned in the spec.

      Assumes that single characters and strings have already been handled.

      Assumes normalised expressions.