Class RegExpTree

java.lang.Object
com.google.javascript.jscomp.regex.RegExpTree

public abstract class RegExpTree extends Object
An AST for JavaScript regular expressions.
  • Constructor Details

    • RegExpTree

      public RegExpTree()
  • Method Details

    • simplify

      public abstract RegExpTree simplify(String flags)
      Returns a simpler regular expression that is semantically the same assuming the given flags.
      Parameters:
      flags - Regular expression flags, e.g. "igm".
    • isCaseSensitive

      public abstract boolean isCaseSensitive()
      True if the presence or absence of an "i" flag would change the meaning of this regular expression.
    • containsAnchor

      public abstract boolean containsAnchor()
      True if the regular expression contains an anchor : ^ or $.
    • hasCapturingGroup

      public final boolean hasCapturingGroup()
      True if the regular expression contains capturing groups.
    • numCapturingGroups

      public abstract int numCapturingGroups()
      The number of capturing groups.
    • children

      public abstract List<? extends RegExpTree> children()
      The children of this node.
    • appendSourceCode

      protected abstract void appendSourceCode(StringBuilder sb)
      Appends this regular expression source to the given buffer.
    • appendDebugInfo

      protected abstract void appendDebugInfo(StringBuilder sb)
    • toString

      public final String toString()
      Overrides:
      toString in class Object
    • toDebugString

      public final String toDebugString()
    • equals

      public abstract boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public abstract int hashCode()
      Overrides:
      hashCode in class Object
    • parseRegExp

      public static RegExpTree parseRegExp(String pattern, String flags)
      Parses a regular expression to an AST.
      Parameters:
      pattern - The foo From /foo/i.
      flags - The i From /foo/i.
    • matchesWholeInput

      public static boolean matchesWholeInput(RegExpTree t, String flags)
      True if, but not necessarily always when the, given regular expression must match the whole input or none of it.