Package org.joni
Class Parser
- java.lang.Object
-
- org.jcodings.IntHolder
-
- org.joni.ScannerSupport
-
- org.joni.Lexer
-
- org.joni.Parser
-
- All Implemented Interfaces:
org.jcodings.exception.ErrorMessages
,ErrorMessages
- Direct Known Subclasses:
Analyser
class Parser extends Lexer
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
Parser.GraphemeNames
-
Field Summary
Fields Modifier and Type Field Description private static byte[]
BRACKET_END
private static int
POSIX_BRACKET_CHECK_LIMIT_LENGTH
private static int
POSIX_BRACKET_NAME_MIN_LEN
protected int
returnCode
-
Fields inherited from interface org.jcodings.exception.ErrorMessages
ERR_COULD_NOT_REPLICATE, ERR_ENCODING_ALIAS_ALREADY_REGISTERED, ERR_ENCODING_ALREADY_REGISTERED, ERR_ENCODING_CLASS_DEF_NOT_FOUND, ERR_ENCODING_LOAD_ERROR, ERR_ENCODING_REPLICA_ALREADY_REGISTERED, ERR_ILLEGAL_CHARACTER, ERR_INVALID_CHAR_PROPERTY_NAME, ERR_INVALID_CODE_POINT_VALUE, ERR_NO_SUCH_ENCODNG, ERR_TOO_BIG_WIDE_CHAR_VALUE, ERR_TOO_LONG_WIDE_CHAR_VALUE, ERR_TRANSCODER_ALREADY_REGISTERED, ERR_TRANSCODER_CLASS_DEF_NOT_FOUND, ERR_TRANSCODER_LOAD_ERROR, ERR_TYPE_BUG
-
Fields inherited from interface org.joni.exception.ErrorMessages
CHAR_CLASS_VALUE_AT_END_OF_RANGE, CHAR_CLASS_VALUE_AT_START_OF_RANGE, CONTROL_CODE_SYNTAX, DEFAULT_ENCODING_IS_NOT_SETTED, EMPTY_CHAR_CLASS, EMPTY_GROUP_NAME, EMPTY_RANGE_IN_CHAR_CLASS, END_PATTERN_AT_CONTROL, END_PATTERN_AT_ESCAPE, END_PATTERN_AT_LEFT_BRACE, END_PATTERN_AT_LEFT_BRACKET, END_PATTERN_AT_META, END_PATTERN_IN_GROUP, END_PATTERN_WITH_UNMATCHED_PARENTHESIS, GROUP_NUMBER_OVER_FOR_CAPTURE_HISTORY, INVALID_ARGUMENT, INVALID_BACKREF, INVALID_CHAR_IN_GROUP_NAME, INVALID_COMBINATION_OF_OPTIONS, INVALID_CONDITION_PATTERN, INVALID_GROUP_NAME, INVALID_LOOK_BEHIND_PATTERN, INVALID_POSIX_BRACKET_TYPE, INVALID_REPEAT_RANGE_PATTERN, INVALID_WIDE_CHAR_VALUE, MATCH_STACK_LIMIT_OVER, MEMORY, META_CODE_SYNTAX, MISMATCH, MISMATCH_CODE_LENGTH_IN_CLASS_RANGE, MULTIPLEX_DEFINED_NAME, MULTIPLEX_DEFINITION_NAME_CALL, NESTED_REPEAT_NOT_ALLOWED, NESTED_REPEAT_OPERATOR, NEVER_ENDING_RECURSION, NO_SUPPORT_CONFIG, NOT_SUPPORTED_ENCODING_COMBINATION, NUMBERED_BACKREF_OR_CALL_NOT_ALLOWED, OVER_THREAD_PASS_LIMIT_COUNT, PARSER_BUG, PREMATURE_END_OF_CHAR_CLASS, SPECIFIED_ENCODING_CANT_CONVERT_TO_WIDE_CHAR, STACK_BUG, TARGET_OF_REPEAT_OPERATOR_INVALID, TARGET_OF_REPEAT_OPERATOR_NOT_SPECIFIED, TOO_BIG_BACKREF_NUMBER, TOO_BIG_NUMBER, TOO_BIG_NUMBER_FOR_REPEAT_RANGE, TOO_BIG_SB_CHAR_VALUE, TOO_MANY_CAPTURE_GROUPS, TOO_MANY_MULTI_BYTE_RANGES, TOO_SHORT_DIGITS, TOO_SHORT_MULTI_BYTE_STRING, TYPE_BUG, UNDEFINED_BYTECODE, UNDEFINED_GROUP_OPTION, UNDEFINED_GROUP_REFERENCE, UNDEFINED_NAME_REFERENCE, UNEXPECTED_BYTECODE, UNMATCHED_CLOSE_PARENTHESIS, UNMATCHED_RANGE_SPECIFIER_IN_CHAR_CLASS, UPPER_SMALLER_THAN_LOWER_IN_REPEAT_RANGE
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
Parser(Regex regex, Syntax syntax, byte[] bytes, int p, int end, WarnCallback warnings)
-
Method Summary
-
Methods inherited from class org.joni.Lexer
backrefRelToAbs, fetchCharPropertyToCType, fetchName, fetchNamedBackrefToken, fetchToken, fetchTokenInCC, syntaxWarn, syntaxWarn
-
Methods inherited from class org.joni.ScannerSupport
fetch, fetchTo, getBegin, getEnd, inc, left, mark, newInternalException, newSyntaxException, newValueException, newValueException, newValueException, peek, peekIs, reset, restore, scanUnsignedHexadecimalNumber, scanUnsignedNumber, scanUnsignedOctalNumber, unfetch
-
-
-
-
Field Detail
-
returnCode
protected int returnCode
-
POSIX_BRACKET_NAME_MIN_LEN
private static final int POSIX_BRACKET_NAME_MIN_LEN
- See Also:
- Constant Field Values
-
POSIX_BRACKET_CHECK_LIMIT_LENGTH
private static final int POSIX_BRACKET_CHECK_LIMIT_LENGTH
- See Also:
- Constant Field Values
-
BRACKET_END
private static final byte[] BRACKET_END
-
-
Constructor Detail
-
Parser
protected Parser(Regex regex, Syntax syntax, byte[] bytes, int p, int end, WarnCallback warnings)
-
-
Method Detail
-
parsePosixBracket
private boolean parsePosixBracket(CClassNode cc, CClassNode ascCc)
-
codeExistCheck
private boolean codeExistCheck(int code, boolean ignoreEscaped)
-
parseCharClass
private CClassNode parseCharClass(org.jcodings.ObjPtr<CClassNode> ascNode)
-
parseCharClassSbChar
private void parseCharClassSbChar(CClassNode cc, CClassNode ascCc, CClassNode.CCStateArg arg)
-
parseCharClassRangeEndVal
private void parseCharClassRangeEndVal(CClassNode cc, CClassNode ascCc, CClassNode.CCStateArg arg)
-
parseCharClassValEntry
private void parseCharClassValEntry(CClassNode cc, CClassNode ascCc, CClassNode.CCStateArg arg)
-
parseCharClassValEntry2
private void parseCharClassValEntry2(CClassNode cc, CClassNode ascCc, CClassNode.CCStateArg arg)
-
parseEncloseNamedGroup2
private Node parseEncloseNamedGroup2(boolean listCapture)
-
findStrPosition
private int findStrPosition(int[] s, int n, int from, int to, org.jcodings.Ptr nextChar)
-
parseLineBreak
private Node parseLineBreak()
-
parseExtendedGraphemeCluster
private Node parseExtendedGraphemeCluster()
-
parseExpTkByte
private Node parseExpTkByte(boolean group)
-
parseStringLoop
private Node parseStringLoop(StringNode node, boolean group)
-
parseExpTkRawByte
private Node parseExpTkRawByte(boolean group)
-
isInvalidQuantifier
private boolean isInvalidQuantifier(Node node)
-
parseQuoteOpen
private Node parseQuoteOpen()
-
cClassCaseFold
private Node cClassCaseFold(Node node, CClassNode cc, CClassNode ascCc)
-
parseCharProperty
private Node parseCharProperty()
-
parseAnycharAnytime
private Node parseAnycharAnytime()
-
parseBackref
private Node parseBackref()
-
newBackRef
private BackRefNode newBackRef(int[] backRefs)
-
parseCall
private Node parseCall()
-
parseSubExpError
private void parseSubExpError(TokenType term)
-
parseRegexp
protected final Node parseRegexp()
-
-