- 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
-
-
Field Summary
Fields Modifier and Type Field Description private static byte[]
BRACKET_END
private static int
NODE_COMMON_SIZE
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, 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, META_CODE_SYNTAX, MISMATCH_CODE_LENGTH_IN_CLASS_RANGE, MULTIPLEX_DEFINED_NAME, MULTIPLEX_DEFINITION_NAME_CALL, NESTED_REPEAT_NOT_ALLOWED, NESTED_REPEAT_OPERATOR, NEVER_ENDING_RECURSION, NOT_SUPPORTED_ENCODING_COMBINATION, NUMBERED_BACKREF_OR_CALL_NOT_ALLOWED, OVER_THREAD_PASS_LIMIT_COUNT, PARSER_BUG, PREMATURE_END_OF_CHAR_CLASS, PROPERTY_NAME_NEVER_TERMINATED, 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, 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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
addPropertyToCC(CClassNode cc, org.jcodings.unicode.UnicodeCodeRange range, boolean not)
private Node
cClassCaseFold(Node node, CClassNode cc, CClassNode ascCc)
private boolean
codeExistCheck(int code, boolean ignoreEscaped)
private void
createNodeFromArray(boolean list, Node[] nodes, int np, int nodeArray)
private ListNode
createNodeFromArray(Node[] nodes, int nodeArray)
private void
createPropertyNode(Node[] nodes, int np, org.jcodings.unicode.UnicodeCodeRange range)
private int
findStrPosition(int[] s, int n, int from, int to, org.jcodings.Ptr nextChar)
private boolean
isInvalidQuantifier(Node node)
private BackRefNode
newBackRef(int[] backRefs)
private Node
parseAnycharAnytime()
private Node
parseBackref()
private Node
parseBranch(TokenType term)
private Node
parseCall()
private CClassNode
parseCharClass(org.jcodings.ObjPtr<CClassNode> ascNode)
private void
parseCharClassRangeEndVal(CClassNode cc, CClassNode ascCc, CClassNode.CCStateArg arg)
private void
parseCharClassSbChar(CClassNode cc, CClassNode ascCc, CClassNode.CCStateArg arg)
private void
parseCharClassValEntry(CClassNode cc, CClassNode ascCc, CClassNode.CCStateArg arg)
private void
parseCharClassValEntry2(CClassNode cc, CClassNode ascCc, CClassNode.CCStateArg arg)
private Node
parseCharProperty()
private Node
parseCharType(Node node)
private Node
parseEnclose(TokenType term)
private Node
parseEncloseNamedGroup2(boolean listCapture)
private Node
parseExp(TokenType term)
private Node
parseExpRepeat(Node target, boolean group)
private Node
parseExpRepeatForCar(Node top, ListNode target, boolean group)
private Node
parseExpTkByte(boolean group)
private Node
parseExpTkRawByte(boolean group)
private Node
parseExtendedGraphemeCluster()
private Node
parseLineBreak()
private boolean
parsePosixBracket(CClassNode cc, CClassNode ascCc)
private Node
parseQuoteOpen()
protected Node
parseRegexp()
private Node
parseStringLoop(StringNode node, boolean group)
private Node
parseSubExp(TokenType term)
private void
parseSubExpError(TokenType term)
private void
quantifierNode(Node[] nodes, int np, int lower, int upper)
private void
quantifierPropertyNode(Node[] nodes, int np, org.jcodings.unicode.UnicodeCodeRange range, char repetitions)
-
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
-
NODE_COMMON_SIZE
private static final int NODE_COMMON_SIZE
- See Also:
- Constant Field Values
-
-
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()
-
addPropertyToCC
private void addPropertyToCC(CClassNode cc, org.jcodings.unicode.UnicodeCodeRange range, boolean not)
-
createPropertyNode
private void createPropertyNode(Node[] nodes, int np, org.jcodings.unicode.UnicodeCodeRange range)
-
quantifierNode
private void quantifierNode(Node[] nodes, int np, int lower, int upper)
-
quantifierPropertyNode
private void quantifierPropertyNode(Node[] nodes, int np, org.jcodings.unicode.UnicodeCodeRange range, char repetitions)
-
createNodeFromArray
private void createNodeFromArray(boolean list, Node[] nodes, int np, int nodeArray)
-
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()
-
-