## com.google.javascript.jscomp.regex
Class RegExpTree

    java.lang.Object
      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.