Package 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

Constructors
Constructor
Description
`RegExpTree()`

## Method Summary

Modifier and Type
Method
Description
`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)`
`final 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.
`final String`
`toDebugString()`
`final String`
`toString()`

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

## 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.