- 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_ENDprivate static intNODE_COMMON_SIZEprivate static intPOSIX_BRACKET_CHECK_LIMIT_LENGTHprivate static intPOSIX_BRACKET_NAME_MIN_LENprotected intreturnCode-
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 protectedParser(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 voidaddPropertyToCC(CClassNode cc, org.jcodings.unicode.UnicodeCodeRange range, boolean not)private NodecClassCaseFold(Node node, CClassNode cc, CClassNode ascCc)private booleancodeExistCheck(int code, boolean ignoreEscaped)private voidcreateNodeFromArray(boolean list, Node[] nodes, int np, int nodeArray)private ListNodecreateNodeFromArray(Node[] nodes, int nodeArray)private voidcreatePropertyNode(Node[] nodes, int np, org.jcodings.unicode.UnicodeCodeRange range)private intfindStrPosition(int[] s, int n, int from, int to, org.jcodings.Ptr nextChar)private booleanisInvalidQuantifier(Node node)private BackRefNodenewBackRef(int[] backRefs)private NodeparseAnycharAnytime()private NodeparseBackref()private NodeparseBranch(TokenType term)private NodeparseCall()private CClassNodeparseCharClass(org.jcodings.ObjPtr<CClassNode> ascNode)private voidparseCharClassRangeEndVal(CClassNode cc, CClassNode ascCc, CClassNode.CCStateArg arg)private voidparseCharClassSbChar(CClassNode cc, CClassNode ascCc, CClassNode.CCStateArg arg)private voidparseCharClassValEntry(CClassNode cc, CClassNode ascCc, CClassNode.CCStateArg arg)private voidparseCharClassValEntry2(CClassNode cc, CClassNode ascCc, CClassNode.CCStateArg arg)private NodeparseCharProperty()private NodeparseCharType(Node node)private NodeparseEnclose(TokenType term)private NodeparseEncloseNamedGroup2(boolean listCapture)private NodeparseExp(TokenType term)private NodeparseExpRepeat(Node target, boolean group)private NodeparseExpRepeatForCar(Node top, ListNode target, boolean group)private NodeparseExpTkByte(boolean group)private NodeparseExpTkRawByte(boolean group)private NodeparseExtendedGraphemeCluster()private NodeparseLineBreak()private booleanparsePosixBracket(CClassNode cc, CClassNode ascCc)private NodeparseQuoteOpen()protected NodeparseRegexp()private NodeparseStringLoop(StringNode node, boolean group)private NodeparseSubExp(TokenType term)private voidparseSubExpError(TokenType term)private voidquantifierNode(Node[] nodes, int np, int lower, int upper)private voidquantifierPropertyNode(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()
-
-