org.joni
Class Parser

java.lang.Object
  extended by org.jcodings.IntHolder
      extended by org.joni.ScannerSupport
          extended by org.joni.Lexer
              extended by org.joni.Parser
All Implemented Interfaces:
org.jcodings.exception.ErrorMessages
Direct Known Subclasses:
Analyser

 class Parser
extends Lexer


Field Summary
private static byte[] BRACKET_END
           
private static int POSIX_BRACKET_CHECK_LIMIT_LENGTH
           
private static int POSIX_BRACKET_NAME_MIN_LEN
           
protected  Regex regex
           
protected  int returnCode
           
protected  Node root
           
 
Fields inherited from class org.joni.Lexer
env, syntax, token
 
Fields inherited from class org.joni.ScannerSupport
_p, bytes, c, enc, p, stop
 
Fields inherited from class org.jcodings.IntHolder
value
 
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_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
 
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
 
Constructor Summary
protected Parser(ScanEnvironment env, byte[] bytes, int p, int end)
           
 
Method Summary
private  boolean codeExistCheck(int code, boolean ignoreEscaped)
           
private  int findStrPosition(int[] s, int n, int from, int to, org.jcodings.Ptr nextChar)
           
protected  Node parse()
           
private  Node parseBranch(TokenType term)
           
private  CClassNode parseCharClass()
           
private  void parseCharClassRangeEndVal(CClassNode cc, CClassNode.CCStateArg arg)
           
private  void parseCharClassSbChar(CClassNode cc, CClassNode.CCStateArg arg)
           
private  void parseCharClassValEntry(CClassNode cc, CClassNode.CCStateArg arg)
           
private  void parseCharClassValEntry2(CClassNode cc, CClassNode.CCStateArg arg)
           
private  CClassNode parseCharProperty()
           
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, ConsAltNode target, boolean group)
           
private  Node parseExpTkByte(boolean group)
           
private  Node parseExpTkRawByte(boolean group)
           
private  boolean parsePosixBracket(CClassNode cc)
           
private  Node parseRegexp()
           
private  Node parseSubExp(TokenType term)
           
private  void parseSubExpError(TokenType term)
           
 
Methods inherited from class org.joni.Lexer
backrefRelToAbs, fetchCharPropertyToCType, fetchName, 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
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

regex

protected final Regex regex

root

protected Node root

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
Constructor Detail

Parser

protected Parser(ScanEnvironment env,
                 byte[] bytes,
                 int p,
                 int end)
Method Detail

parse

protected final Node parse()

parsePosixBracket

private boolean parsePosixBracket(CClassNode cc)

parseCharProperty

private CClassNode parseCharProperty()

codeExistCheck

private boolean codeExistCheck(int code,
                               boolean ignoreEscaped)

parseCharClass

private CClassNode parseCharClass()

parseCharClassSbChar

private void parseCharClassSbChar(CClassNode cc,
                                  CClassNode.CCStateArg arg)

parseCharClassRangeEndVal

private void parseCharClassRangeEndVal(CClassNode cc,
                                       CClassNode.CCStateArg arg)

parseCharClassValEntry

private void parseCharClassValEntry(CClassNode cc,
                                    CClassNode.CCStateArg arg)

parseCharClassValEntry2

private void parseCharClassValEntry2(CClassNode cc,
                                     CClassNode.CCStateArg arg)

parseEnclose

private Node parseEnclose(TokenType term)

parseEncloseNamedGroup2

private Node parseEncloseNamedGroup2(boolean listCapture)

findStrPosition

private int findStrPosition(int[] s,
                            int n,
                            int from,
                            int to,
                            org.jcodings.Ptr nextChar)

parseExp

private Node parseExp(TokenType term)

parseExpTkByte

private Node parseExpTkByte(boolean group)

parseExpTkRawByte

private Node parseExpTkRawByte(boolean group)

parseExpRepeat

private Node parseExpRepeat(Node target,
                            boolean group)

parseExpRepeatForCar

private Node parseExpRepeatForCar(Node top,
                                  ConsAltNode target,
                                  boolean group)

parseBranch

private Node parseBranch(TokenType term)

parseSubExp

private Node parseSubExp(TokenType term)

parseSubExpError

private void parseSubExpError(TokenType term)

parseRegexp

private Node parseRegexp()


Copyright © 2013. All Rights Reserved.