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 ScanEnvironmentenvprivate static int[]sendprotected Syntaxsyntaxprotected Tokentoken-
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
-
Fields inherited from interface org.joni.exception.ErrorMessages
ERR_CHAR_CLASS_VALUE_AT_END_OF_RANGE, ERR_CHAR_CLASS_VALUE_AT_START_OF_RANGE, ERR_CONTROL_CODE_SYNTAX, ERR_DEFAULT_ENCODING_IS_NOT_SETTED, ERR_EMPTY_CHAR_CLASS, ERR_EMPTY_GROUP_NAME, ERR_EMPTY_RANGE_IN_CHAR_CLASS, ERR_END_PATTERN_AT_CONTROL, ERR_END_PATTERN_AT_ESCAPE, ERR_END_PATTERN_AT_LEFT_BRACE, ERR_END_PATTERN_AT_LEFT_BRACKET, ERR_END_PATTERN_AT_META, ERR_END_PATTERN_IN_GROUP, ERR_END_PATTERN_WITH_UNMATCHED_PARENTHESIS, ERR_GROUP_NUMBER_OVER_FOR_CAPTURE_HISTORY, ERR_INVALID_ARGUMENT, ERR_INVALID_BACKREF, ERR_INVALID_CHAR_IN_GROUP_NAME, ERR_INVALID_COMBINATION_OF_OPTIONS, ERR_INVALID_GROUP_NAME, ERR_INVALID_LOOK_BEHIND_PATTERN, ERR_INVALID_POSIX_BRACKET_TYPE, ERR_INVALID_REPEAT_RANGE_PATTERN, ERR_INVALID_WIDE_CHAR_VALUE, ERR_MATCH_STACK_LIMIT_OVER, ERR_MEMORY, ERR_META_CODE_SYNTAX, ERR_MISMATCH_CODE_LENGTH_IN_CLASS_RANGE, ERR_MULTIPLEX_DEFINED_NAME, ERR_MULTIPLEX_DEFINITION_NAME_CALL, ERR_NESTED_REPEAT_NOT_ALLOWED, ERR_NESTED_REPEAT_OPERATOR, ERR_NEVER_ENDING_RECURSION, ERR_NOT_SUPPORTED_ENCODING_COMBINATION, ERR_NUMBERED_BACKREF_OR_CALL_NOT_ALLOWED, ERR_OVER_THREAD_PASS_LIMIT_COUNT, ERR_PARSER_BUG, ERR_PREMATURE_END_OF_CHAR_CLASS, ERR_SPECIFIED_ENCODING_CANT_CONVERT_TO_WIDE_CHAR, ERR_STACK_BUG, ERR_TARGET_OF_REPEAT_OPERATOR_INVALID, ERR_TARGET_OF_REPEAT_OPERATOR_NOT_SPECIFIED, ERR_TOO_BIG_BACKREF_NUMBER, ERR_TOO_BIG_NUMBER, ERR_TOO_BIG_NUMBER_FOR_REPEAT_RANGE, ERR_TOO_BIG_SB_CHAR_VALUE, ERR_TOO_MANY_MULTI_BYTE_RANGES, ERR_TOO_SHORT_MULTI_BYTE_STRING, ERR_TYPE_BUG, ERR_UNDEFINED_BYTECODE, ERR_UNDEFINED_GROUP_OPTION, ERR_UNDEFINED_GROUP_REFERENCE, ERR_UNDEFINED_NAME_REFERENCE, ERR_UNEXPECTED_BYTECODE, ERR_UNMATCHED_CLOSE_PARENTHESIS, ERR_UNMATCHED_RANGE_SPECIFIER_IN_CHAR_CLASS, ERR_UPPER_SMALLER_THAN_LOWER_IN_REPEAT_RANGE, MISMATCH, NO_SUPPORT_CONFIG
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedLexer(ScanEnvironment env, byte[] bytes, int p, int end)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected intbackrefRelToAbs(int relNo)protected intfetchCharPropertyToCType()private intfetchEscapedValue()private voidfetchEscapedValueBackSlash()private voidfetchEscapedValueControl()protected intfetchName(int startCode, boolean ref)private intfetchNameForNamedGroup(int startCode, boolean ref)private intfetchNameForNoNamedGroup(int startCode, boolean ref)private booleanfetchNameWithLevel(int startCode, org.jcodings.Ptr rbackNum, org.jcodings.Ptr rlevel)private intfetchRangeQuantifier()protected TokenTypefetchToken()private voidfetchTokenFor_anchor(int subType)private voidfetchTokenFor_charProperty()private voidfetchTokenFor_digit()private voidfetchTokenFor_metaChars()private voidfetchTokenFor_namedBackref()private voidfetchTokenFor_openBrace()private voidfetchTokenFor_repeat(int lower, int upper)private voidfetchTokenFor_subexpCall()private voidfetchTokenFor_uHex()private voidfetchTokenFor_xBrace()private voidfetchTokenFor_zero()protected TokenTypefetchTokenInCC()private voidfetchTokenInCCFor_and()private voidfetchTokenInCCFor_charType(boolean flag, int type)private voidfetchTokenInCCFor_digit()private voidfetchTokenInCCFor_p()private voidfetchTokenInCCFor_posixBracket()private voidfetchTokenInCCFor_u()private voidfetchTokenInCCFor_x()private voidgreedyCheck()private intinvalidRangeQuantifier(boolean synAllow)private intnameEndCodePoint(int start)private voidpossessiveCheck()private booleanstrExistCheckWithEsc(int[] s, int n, int bad)protected voidsyntaxWarn(java.lang.String message)protected voidsyntaxWarn(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
-
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(ScanEnvironment env, byte[] bytes, int p, int end)
-
-
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 int 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)
-
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()
-
fetchTokenFor_charProperty
private void fetchTokenFor_charProperty()
-
fetchTokenFor_metaChars
private void fetchTokenFor_metaChars()
-
fetchToken
protected final TokenType 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)
-
-