Class RegExpTree
java.lang.Object
com.google.javascript.jscomp.regex.RegExpTree
- Direct Known Subclasses:
RegExpTree.Alternation
,RegExpTree.CapturingGroup
,RegExpTree.Concatenation
,RegExpTree.LookaheadAssertion
,RegExpTree.LookbehindAssertion
,RegExpTree.NamedCaptureGroup
,RegExpTree.RegExpTreeAtom
,RegExpTree.Repetition
An AST for JavaScript regular expressions.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final class
Represents the possibilities ["foo", "bar" ] for a RegExp /foo|bar/static final class
Represents an anchor, namely ^ or $.static final class
Represents a reference to a previous group such as \1 or \2static final class
Represents a capturing group such as (asdf)static final class
Represents a set of possible characters structured as [a-zA-Z] or [^a-zA-Z]static final class
Represents a series of nodes chained one after another such as (?:...)[a-z]*(...)static final class
Represents an empty portion of a RegExp such as the middle of "||"static final class
Represents a lookahead assertion such as (?=...) or (?!...)static final class
Represents a lookbehind assertion such as(?<=...)
or(?<!...)
static final class
Represents a reference to a previous named groupstatic final class
Represents a named capture groupstatic class
Represents a node that never has children such as an anchor or charset.static final class
Represents a repeating item such as ...+, ...*, or ...{0,1}static final class
Represents a run of non-special characters such as "foobar"static final class
Represents a Unicode Property Escape such as in /\p{Script=Greek}/ustatic final class
Represents \b or \B -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected abstract void
protected abstract void
Appends this regular expression source to the given buffer.abstract List
<? extends RegExpTree> children()
The children of this node.abstract boolean
True if the regular expression contains an anchor :^
or$
.abstract boolean
final boolean
True if the regular expression contains capturing groups.abstract int
hashCode()
abstract boolean
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
The number of capturing groups.static RegExpTree
parseRegExp
(String pattern, String flags) Parses a regular expression to an AST.abstract RegExpTree
Returns a simpler regular expression that is semantically the same assuming the given flags.final String
toString()
-
Constructor Details
-
RegExpTree
public RegExpTree()
-
-
Method Details
-
simplify
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
The children of this node. -
appendSourceCode
Appends this regular expression source to the given buffer. -
appendDebugInfo
-
toString
-
equals
-
hashCode
public abstract int hashCode() -
parseRegExp
Parses a regular expression to an AST.- Parameters:
pattern
- Thefoo
From/foo/i
.flags
- Thei
From/foo/i
.
-
matchesWholeInput
True if, but not necessarily always when the, given regular expression must match the whole input or none of it.
-