public abstract class RegExpTree
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
(package private) static class |
RegExpTree.Alternation |
(package private) static class |
RegExpTree.Anchor |
(package private) static class |
RegExpTree.BackReference |
(package private) static class |
RegExpTree.CapturingGroup |
(package private) static class |
RegExpTree.Charset |
(package private) static class |
RegExpTree.Concatenation |
(package private) static class |
RegExpTree.DecomposedCharset |
(package private) static class |
RegExpTree.Empty |
(package private) static class |
RegExpTree.LookaheadAssertion |
(package private) static class |
RegExpTree.RegExpTreeAtom |
(package private) static class |
RegExpTree.Repetition |
(package private) static class |
RegExpTree.Text |
(package private) static class |
RegExpTree.WordBoundary |
Modifier and Type | Field and Description |
---|---|
private static CharRanges |
DIGITS |
private static RegExpTree.Charset |
DOT_CHARSET |
private static CharRanges |
IE_SPACE_CHARS
IE is broken around \s.
|
private static CharRanges |
IE_SPEC_ERRORS
IE is broken around \s.
|
private static CharRanges |
INVERSE_WORD_CHARS |
private static CharRanges |
LCASE_LETTERS |
private static CharRanges |
LETTERS |
private static com.google.common.collect.ImmutableMap<java.lang.Character,CharRanges> |
NAMED_CHAR_GROUPS |
private static RegExpTree |
NEVER_MATCHES |
private static CharRanges |
SPACE_CHARS |
private static CharRanges |
UCASE_LETTERS |
private static CharRanges |
WORD_CHARS |
Constructor and Description |
---|
RegExpTree() |
Modifier and Type | Method and Description |
---|---|
protected abstract void |
appendDebugInfo(java.lang.StringBuilder sb) |
private void |
appendDebugString(java.lang.StringBuilder sb) |
protected abstract void |
appendSourceCode(java.lang.StringBuilder sb)
Appends this regular expression source to the given buffer.
|
abstract java.util.List<? extends RegExpTree> |
children()
The children of this node.
|
abstract boolean |
containsAnchor()
True if the regular expression contains an anchor :
^ or $ . |
abstract boolean |
equals(java.lang.Object o) |
(package private) static void |
escapeCharOnto(char ch,
java.lang.StringBuilder sb) |
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,
java.lang.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(java.lang.String pattern,
java.lang.String flags)
Parses a regular expression to an AST.
|
abstract RegExpTree |
simplify(java.lang.String flags)
Returns a simpler regular expression that is semantically the same assuming
the given flags.
|
java.lang.String |
toString() |
private static final RegExpTree NEVER_MATCHES
private static final CharRanges DIGITS
private static final CharRanges UCASE_LETTERS
private static final CharRanges LCASE_LETTERS
private static final CharRanges LETTERS
private static final CharRanges WORD_CHARS
private static final CharRanges INVERSE_WORD_CHARS
private static final CharRanges SPACE_CHARS
private static final CharRanges IE_SPACE_CHARS
private static final CharRanges IE_SPEC_ERRORS
private static final com.google.common.collect.ImmutableMap<java.lang.Character,CharRanges> NAMED_CHAR_GROUPS
private static final RegExpTree.Charset DOT_CHARSET
public abstract RegExpTree simplify(java.lang.String flags)
flags
- Regular expression flags, e.g. "igm"
.public abstract boolean isCaseSensitive()
"i"
flag would change the
meaning of this regular expression.public abstract boolean containsAnchor()
^
or $
.public final boolean hasCapturingGroup()
public abstract int numCapturingGroups()
public abstract java.util.List<? extends RegExpTree> children()
protected abstract void appendSourceCode(java.lang.StringBuilder sb)
protected abstract void appendDebugInfo(java.lang.StringBuilder sb)
public final java.lang.String toString()
toString
in class java.lang.Object
private void appendDebugString(java.lang.StringBuilder sb)
public abstract boolean equals(java.lang.Object o)
equals
in class java.lang.Object
public abstract int hashCode()
hashCode
in class java.lang.Object
public static RegExpTree parseRegExp(java.lang.String pattern, java.lang.String flags)
pattern
- The foo
From /foo/i
.flags
- The i
From /foo/i
.public static boolean matchesWholeInput(RegExpTree t, java.lang.String flags)
static void escapeCharOnto(char ch, java.lang.StringBuilder sb)