Package com.google.re2j
Class Parser
- java.lang.Object
-
- com.google.re2j.Parser
-
class Parser extends java.lang.ObjectA parser of regular expression patterns. The only public entry point isparse(String pattern, int flags).
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static classParser.Pair<F,S>private static classParser.Stackprivate static classParser.StringIterator
-
Field Summary
Fields Modifier and Type Field Description private static int[][]ANY_TABLEprivate static java.lang.StringERR_DUPLICATE_NAMED_CAPTUREprivate static java.lang.StringERR_INTERNAL_ERRORprivate static java.lang.StringERR_INVALID_CHAR_CLASSprivate static java.lang.StringERR_INVALID_CHAR_RANGEprivate static java.lang.StringERR_INVALID_ESCAPEprivate static java.lang.StringERR_INVALID_NAMED_CAPTUREprivate static java.lang.StringERR_INVALID_PERL_OPprivate static java.lang.StringERR_INVALID_REPEAT_OPprivate static java.lang.StringERR_INVALID_REPEAT_SIZEprivate static java.lang.StringERR_MISSING_BRACKETprivate static java.lang.StringERR_MISSING_PARENprivate static java.lang.StringERR_MISSING_REPEAT_ARGUMENTprivate static java.lang.StringERR_TRAILING_BACKSLASHprivate intflagsprivate Regexpfreeprivate java.util.Map<java.lang.String,java.lang.Integer>namedGroupsprivate intnumCapprivate Parser.Stackstackprivate java.lang.StringwholeRegexp
-
Constructor Summary
Constructors Constructor Description Parser(java.lang.String wholeRegexp, int flags)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private Regexpalternate()private voidcleanAlt(Regexp re)private Regexpcollapse(Regexp[] subs, Regexp.Op op)private Regexpconcat()private static int[]concatRunes(int[] x, int[] y)private Regexp[]factor(Regexp[] array, int flags)private static booleanisCharClass(Regexp re)private static booleanisValidCaptureName(java.lang.String name)private static RegexpleadingRegexp(Regexp re)private voidliteral(int r)private static RegexpliteralRegexp(java.lang.String s, int flags)private static booleanmatchRune(Regexp re, int r)private booleanmaybeConcat(int r, int flags)private static voidmergeCharClass(Regexp dst, Regexp src)private static intminFoldRune(int r)private RegexpnewLiteral(int r, int flags)private RegexpnewRegexp(Regexp.Op op)private Regexpop(Regexp.Op op)(package private) static Regexpparse(java.lang.String pattern, int flags)Parse regular expression patternpatternwith mode flagsflags.private voidparseClass(Parser.StringIterator t)private static intparseClassChar(Parser.StringIterator t, int wholeClassPos)private static intparseEscape(Parser.StringIterator t)private static intparseInt(Parser.StringIterator t)private RegexpparseInternal()private booleanparseNamedClass(Parser.StringIterator t, CharClass cc)private booleanparsePerlClassEscape(Parser.StringIterator t, CharClass cc)private voidparsePerlFlags(Parser.StringIterator t)private static intparseRepeat(Parser.StringIterator t)private voidparseRightParen()private booleanparseUnicodeClass(Parser.StringIterator t, CharClass cc)private voidparseVerticalBar()private Regexppop()private Regexp[]popToPseudo()private Regexppush(Regexp re)private RegexpremoveLeadingRegexp(Regexp re, boolean reuse)private RegexpremoveLeadingString(Regexp re, int n)private voidrepeat(Regexp.Op op, int min, int max, int beforePos, Parser.StringIterator t, int lastRepeatPos)private voidreuse(Regexp re)(package private) static Regexp[]subarray(Regexp[] array, int start, int end)private booleanswapVerticalBar()private static Parser.Pair<int[][],int[][]>unicodeTable(java.lang.String name)
-
-
-
Field Detail
-
ERR_INTERNAL_ERROR
private static final java.lang.String ERR_INTERNAL_ERROR
- See Also:
- Constant Field Values
-
ERR_INVALID_CHAR_CLASS
private static final java.lang.String ERR_INVALID_CHAR_CLASS
- See Also:
- Constant Field Values
-
ERR_INVALID_CHAR_RANGE
private static final java.lang.String ERR_INVALID_CHAR_RANGE
- See Also:
- Constant Field Values
-
ERR_INVALID_ESCAPE
private static final java.lang.String ERR_INVALID_ESCAPE
- See Also:
- Constant Field Values
-
ERR_INVALID_NAMED_CAPTURE
private static final java.lang.String ERR_INVALID_NAMED_CAPTURE
- See Also:
- Constant Field Values
-
ERR_INVALID_PERL_OP
private static final java.lang.String ERR_INVALID_PERL_OP
- See Also:
- Constant Field Values
-
ERR_INVALID_REPEAT_OP
private static final java.lang.String ERR_INVALID_REPEAT_OP
- See Also:
- Constant Field Values
-
ERR_INVALID_REPEAT_SIZE
private static final java.lang.String ERR_INVALID_REPEAT_SIZE
- See Also:
- Constant Field Values
-
ERR_MISSING_BRACKET
private static final java.lang.String ERR_MISSING_BRACKET
- See Also:
- Constant Field Values
-
ERR_MISSING_PAREN
private static final java.lang.String ERR_MISSING_PAREN
- See Also:
- Constant Field Values
-
ERR_MISSING_REPEAT_ARGUMENT
private static final java.lang.String ERR_MISSING_REPEAT_ARGUMENT
- See Also:
- Constant Field Values
-
ERR_TRAILING_BACKSLASH
private static final java.lang.String ERR_TRAILING_BACKSLASH
- See Also:
- Constant Field Values
-
ERR_DUPLICATE_NAMED_CAPTURE
private static final java.lang.String ERR_DUPLICATE_NAMED_CAPTURE
- See Also:
- Constant Field Values
-
wholeRegexp
private final java.lang.String wholeRegexp
-
flags
private int flags
-
stack
private final Parser.Stack stack
-
free
private Regexp free
-
numCap
private int numCap
-
namedGroups
private final java.util.Map<java.lang.String,java.lang.Integer> namedGroups
-
ANY_TABLE
private static final int[][] ANY_TABLE
-
-
Method Detail
-
reuse
private void reuse(Regexp re)
-
pop
private Regexp pop()
-
popToPseudo
private Regexp[] popToPseudo()
-
maybeConcat
private boolean maybeConcat(int r, int flags)
-
newLiteral
private Regexp newLiteral(int r, int flags)
-
minFoldRune
private static int minFoldRune(int r)
-
literal
private void literal(int r)
-
repeat
private void repeat(Regexp.Op op, int min, int max, int beforePos, Parser.StringIterator t, int lastRepeatPos) throws PatternSyntaxException
- Throws:
PatternSyntaxException
-
concat
private Regexp concat()
-
alternate
private Regexp alternate()
-
cleanAlt
private void cleanAlt(Regexp re)
-
literalRegexp
private static Regexp literalRegexp(java.lang.String s, int flags)
-
parse
static Regexp parse(java.lang.String pattern, int flags) throws PatternSyntaxException
Parse regular expression patternpatternwith mode flagsflags.- Throws:
PatternSyntaxException
-
parseInternal
private Regexp parseInternal() throws PatternSyntaxException
- Throws:
PatternSyntaxException
-
parseRepeat
private static int parseRepeat(Parser.StringIterator t) throws PatternSyntaxException
- Throws:
PatternSyntaxException
-
parsePerlFlags
private void parsePerlFlags(Parser.StringIterator t) throws PatternSyntaxException
- Throws:
PatternSyntaxException
-
isValidCaptureName
private static boolean isValidCaptureName(java.lang.String name)
-
parseInt
private static int parseInt(Parser.StringIterator t)
-
isCharClass
private static boolean isCharClass(Regexp re)
-
matchRune
private static boolean matchRune(Regexp re, int r)
-
parseVerticalBar
private void parseVerticalBar()
-
swapVerticalBar
private boolean swapVerticalBar()
-
parseRightParen
private void parseRightParen() throws PatternSyntaxException- Throws:
PatternSyntaxException
-
parseEscape
private static int parseEscape(Parser.StringIterator t) throws PatternSyntaxException
- Throws:
PatternSyntaxException
-
parseClassChar
private static int parseClassChar(Parser.StringIterator t, int wholeClassPos) throws PatternSyntaxException
- Throws:
PatternSyntaxException
-
parsePerlClassEscape
private boolean parsePerlClassEscape(Parser.StringIterator t, CharClass cc)
-
parseNamedClass
private boolean parseNamedClass(Parser.StringIterator t, CharClass cc) throws PatternSyntaxException
- Throws:
PatternSyntaxException
-
unicodeTable
private static Parser.Pair<int[][],int[][]> unicodeTable(java.lang.String name)
-
parseUnicodeClass
private boolean parseUnicodeClass(Parser.StringIterator t, CharClass cc) throws PatternSyntaxException
- Throws:
PatternSyntaxException
-
parseClass
private void parseClass(Parser.StringIterator t) throws PatternSyntaxException
- Throws:
PatternSyntaxException
-
concatRunes
private static int[] concatRunes(int[] x, int[] y)
-
-