Package org.joni
Class Lexer
- java.lang.Object
-
- org.jcodings.IntHolder
-
- org.joni.ScannerSupport
-
- org.joni.Lexer
-
- All Implemented Interfaces:
org.jcodings.exception.ErrorMessages
,ErrorMessages
- Direct Known Subclasses:
Parser
class Lexer extends ScannerSupport
-
-
Field Summary
Fields Modifier and Type Field Description protected ScanEnvironment
env
protected Regex
regex
private static int[]
send
protected Syntax
syntax
protected Token
token
-
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
Lexer(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 protected int
backrefRelToAbs(int relNo)
protected int
fetchCharPropertyToCType()
private void
fetchEscapedValue()
private void
fetchEscapedValueBackSlash()
private void
fetchEscapedValueControl()
protected int
fetchName(int startCode, boolean ref)
protected void
fetchNamedBackrefToken()
private int
fetchNameErr(int src, int nameEnd, java.lang.String err)
private int
fetchNameForNamedGroup(int startCode, boolean ref)
private int
fetchNameForNoNamedGroup(int startCode, boolean ref)
private int
fetchNameTeardown(int src, int endCode, int nameEnd, java.lang.String err)
private boolean
fetchNameWithLevel(int startCode, org.jcodings.Ptr rbackNum, org.jcodings.Ptr rlevel)
private int
fetchRangeQuantifier()
protected void
fetchToken()
private void
fetchTokenFor_anchor(int subType)
private void
fetchTokenFor_charProperty()
private void
fetchTokenFor_digit()
private void
fetchTokenFor_metaChars()
private void
fetchTokenFor_NamedBackref()
private void
fetchTokenFor_openBrace()
private void
fetchTokenFor_repeat(int lower, int upper)
private void
fetchTokenFor_subexpCall()
private void
fetchTokenFor_uHex()
private void
fetchTokenFor_xBrace()
private void
fetchTokenFor_zero()
protected TokenType
fetchTokenInCC()
private void
fetchTokenInCCFor_and()
private void
fetchTokenInCCFor_charType(boolean flag, int type)
private void
fetchTokenInCCFor_digit()
private void
fetchTokenInCCFor_p()
private void
fetchTokenInCCFor_posixBracket()
private void
fetchTokenInCCFor_u()
private void
fetchTokenInCCFor_x()
private void
greedyCheck()
private int
invalidRangeQuantifier(boolean synAllow)
private int
nameEndCodePoint(int start)
private void
possessiveCheck()
private boolean
strExistCheckWithEsc(int[] s, int n, int bad)
protected void
syntaxWarn(java.lang.String message)
protected void
syntaxWarn(java.lang.String message, char c)
-
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
-
regex
protected final Regex regex
-
env
protected final ScanEnvironment env
-
syntax
protected final Syntax syntax
-
token
protected final Token token
-
send
private static final int[] send
-
-
Constructor Detail
-
Lexer
protected Lexer(Regex regex, Syntax syntax, byte[] bytes, int p, int end, WarnCallback warnings)
-
-
Method Detail
-
fetchRangeQuantifier
private int fetchRangeQuantifier()
- Returns:
- 0: normal {n,m}, 2: fixed {n} !introduce returnCode here
-
invalidRangeQuantifier
private int invalidRangeQuantifier(boolean synAllow)
-
fetchEscapedValue
private void fetchEscapedValue()
-
fetchEscapedValueBackSlash
private void fetchEscapedValueBackSlash()
-
fetchEscapedValueControl
private void fetchEscapedValueControl()
-
nameEndCodePoint
private int nameEndCodePoint(int start)
-
fetchNameWithLevel
private boolean fetchNameWithLevel(int startCode, org.jcodings.Ptr rbackNum, org.jcodings.Ptr rlevel)
-
fetchNameForNamedGroup
private int fetchNameForNamedGroup(int startCode, boolean ref)
-
fetchNameErr
private int fetchNameErr(int src, int nameEnd, java.lang.String err)
-
fetchNameTeardown
private int fetchNameTeardown(int src, int endCode, int nameEnd, java.lang.String err)
-
fetchNameForNoNamedGroup
private final int fetchNameForNoNamedGroup(int startCode, boolean ref)
-
fetchName
protected final int fetchName(int startCode, boolean ref)
-
strExistCheckWithEsc
private boolean strExistCheckWithEsc(int[] s, int n, int bad)
-
fetchTokenInCCFor_charType
private void fetchTokenInCCFor_charType(boolean flag, int type)
-
fetchTokenInCCFor_p
private void fetchTokenInCCFor_p()
-
fetchTokenInCCFor_x
private void fetchTokenInCCFor_x()
-
fetchTokenInCCFor_u
private void fetchTokenInCCFor_u()
-
fetchTokenInCCFor_digit
private void fetchTokenInCCFor_digit()
-
fetchTokenInCCFor_posixBracket
private void fetchTokenInCCFor_posixBracket()
-
fetchTokenInCCFor_and
private void fetchTokenInCCFor_and()
-
fetchTokenInCC
protected final TokenType fetchTokenInCC()
-
backrefRelToAbs
protected final int backrefRelToAbs(int relNo)
-
fetchTokenFor_repeat
private void fetchTokenFor_repeat(int lower, int upper)
-
fetchTokenFor_openBrace
private void fetchTokenFor_openBrace()
-
fetchTokenFor_anchor
private void fetchTokenFor_anchor(int subType)
-
fetchTokenFor_xBrace
private void fetchTokenFor_xBrace()
-
fetchTokenFor_uHex
private void fetchTokenFor_uHex()
-
fetchTokenFor_digit
private void fetchTokenFor_digit()
-
fetchTokenFor_zero
private void fetchTokenFor_zero()
-
fetchTokenFor_NamedBackref
private void fetchTokenFor_NamedBackref()
-
fetchTokenFor_subexpCall
private void fetchTokenFor_subexpCall()
-
fetchNamedBackrefToken
protected void fetchNamedBackrefToken()
-
fetchTokenFor_charProperty
private void fetchTokenFor_charProperty()
-
fetchTokenFor_metaChars
private void fetchTokenFor_metaChars()
-
fetchToken
protected final void fetchToken()
-
greedyCheck
private void greedyCheck()
-
possessiveCheck
private void possessiveCheck()
-
fetchCharPropertyToCType
protected final int fetchCharPropertyToCType()
-
syntaxWarn
protected final void syntaxWarn(java.lang.String message, char c)
-
syntaxWarn
protected final void syntaxWarn(java.lang.String message)
-
-