com.google.javascript.jscomp.regex
Class RegExpTree

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

public abstract class RegExpTree
extends Object

An AST for JavaScript regular expressions.


Constructor Summary
RegExpTree()
           
 
Method Summary
protected abstract  void appendDebugInfo(StringBuilder sb)
           
protected abstract  void appendSourceCode(StringBuilder sb)
          Appends this regular expression source to the given buffer.
abstract  List<? extends RegExpTree> children()
          The children of this node.
abstract  boolean containsAnchor()
          True if the regular expression contains an anchor : ^ or $.
abstract  boolean equals(Object o)
           
 boolean hasCapturingGroup()
          True if the regular expression contains capturing groups.
abstract  int hashCode()
           
abstract  boolean isCaseSensitive()
          True if the presence or absence of an "i" flag would change the meaning of this regular expression.
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.
abstract  int numCapturingGroups()
          The number of capturing groups.
static RegExpTree parseRegExp(String pattern, String flags)
          Parses a regular expression to an AST.
abstract  RegExpTree simplify(String flags)
          Returns a simpler regular expression that is semantically the same assuming the given flags.
 String toDebugString()
           
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

RegExpTree

public RegExpTree()
Method Detail

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.