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
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final byte[]private static final intprivate static final intprivate static final intprotected intFields inherited from class org.jcodings.IntHolder
valueFields 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_BUGFields inherited from interface 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
ConstructorsModifierConstructorDescriptionprotectedParser(Regex regex, Syntax syntax, byte[] bytes, int p, int end, WarnCallback warnings) -
Method Summary
Modifier and TypeMethodDescriptionprivate 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 Nodeprivate Nodeprivate NodeparseBranch(TokenType term) private Nodeprivate 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 Nodeprivate NodeparseCharType(Node node) private NodeparseEnclose(TokenType term) private NodeparseEncloseNamedGroup2(boolean listCapture) private Nodeprivate NodeparseExpRepeat(Node target, boolean group) private NodeparseExpRepeatForCar(Node top, ListNode target, boolean group) private NodeparseExpTkByte(boolean group) private NodeparseExpTkRawByte(boolean group) private Nodeprivate Nodeprivate booleanparsePosixBracket(CClassNode cc, CClassNode ascCc) private Nodeprotected final Nodeprivate 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 Lexer
backrefRelToAbs, fetchCharPropertyToCType, fetchName, fetchNamedBackrefToken, fetchToken, fetchTokenInCC, syntaxWarn, syntaxWarnMethods inherited from class ScannerSupport
fetch, fetchTo, getBegin, getEnd, inc, left, mark, newInternalException, newSyntaxException, newValueException, newValueException, newValueException, peek, peekIs, reset, restore, scanUnsignedHexadecimalNumber, scanUnsignedNumber, scanUnsignedOctalNumber, unfetch
-
Field Details
-
returnCode
protected int returnCode -
POSIX_BRACKET_NAME_MIN_LEN
private static final int POSIX_BRACKET_NAME_MIN_LEN- See Also:
-
POSIX_BRACKET_CHECK_LIMIT_LENGTH
private static final int POSIX_BRACKET_CHECK_LIMIT_LENGTH- See Also:
-
BRACKET_END
private static final byte[] BRACKET_END -
NODE_COMMON_SIZE
private static final int NODE_COMMON_SIZE- See Also:
-
-
Constructor Details
-
Parser
-
-
Method Details
-
parsePosixBracket
-
codeExistCheck
private boolean codeExistCheck(int code, boolean ignoreEscaped) -
parseCharClass
-
parseCharClassSbChar
-
parseCharClassRangeEndVal
-
parseCharClassValEntry
-
parseCharClassValEntry2
-
parseEnclose
-
parseEncloseNamedGroup2
-
findStrPosition
private int findStrPosition(int[] s, int n, int from, int to, org.jcodings.Ptr nextChar) -
parseExp
-
parseLineBreak
-
addPropertyToCC
private void addPropertyToCC(CClassNode cc, org.jcodings.unicode.UnicodeCodeRange range, boolean not) -
createPropertyNode
-
quantifierNode
-
quantifierPropertyNode
private void quantifierPropertyNode(Node[] nodes, int np, org.jcodings.unicode.UnicodeCodeRange range, char repetitions) -
createNodeFromArray
-
createNodeFromArray
-
parseExtendedGraphemeCluster
-
parseExpTkByte
-
parseStringLoop
-
parseExpTkRawByte
-
parseExpRepeat
-
parseExpRepeatForCar
-
isInvalidQuantifier
-
parseQuoteOpen
-
parseCharType
-
cClassCaseFold
-
parseCharProperty
-
parseAnycharAnytime
-
parseBackref
-
newBackRef
-
parseCall
-
parseBranch
-
parseSubExp
-
parseSubExpError
-
parseRegexp
-