org.joni
Class Analyser

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

final class Analyser
extends Parser


Field Summary
private static int CEC_CONT_BIG_REPEAT
           
private static int CEC_IN_FINITE_REPEAT
           
private static int CEC_IN_INFINITE_REPEAT
           
private static int CEC_INFINITE_NUM
           
private static int CEC_THRES_NUM_BIG_REPEAT
           
private static int EXPAND_STRING_MAX_LENGTH
           
private static int FOUND_CALLED_NODE
           
private static int GET_CHAR_LEN_TOP_ALT_VARLEN
           
private static int GET_CHAR_LEN_VARLEN
           
private static int IN_ALT
           
private static int IN_NOT
           
private static int IN_REPEAT
           
private static int IN_VAR_REPEAT
           
private static int MAX_NODE_OPT_INFO_REF_COUNT
           
private static int RECURSION_EXIST
           
private static int RECURSION_INFINITE
           
private static int THRESHOLD_CASE_FOLD_ALT_FOR_EXPANSION
           
 
Fields inherited from class org.joni.Parser
regex, returnCode, 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 Analyser(ScanEnvironment env, byte[] bytes, int p, int end)
           
 
Method Summary
private  boolean checkTypeTree(Node node, int typeMask, int encloseMask, int anchorMask)
           
protected  void compile()
           
protected  Node disableNoNameGroupCapture(Node root)
           
private  Node divideLookBehindAlternatives(Node node)
           
private  Node expandCaseFoldMakeRemString(byte[] bytes, int p, int end)
           
private  Node expandCaseFoldString(Node node)
           
private  boolean expandCaseFoldStringAlt(int itemNum, org.jcodings.CaseFoldCodeItem[] items, byte[] bytes, int p, int slen, int end, org.jcodings.ObjPtr<Node> node)
           
protected  int getCharLengthTree(Node node)
           
private  int getCharLengthTree(Node node, int level)
           
private  Node getHeadValueNode(Node node, boolean exact)
           
private  int getMaxMatchLength(Node node)
           
private  int getMinMatchLength(Node node)
           
private  boolean isNotIncluded(Node x, Node y)
           
private  void nextSetup(Node node, Node nextNode)
           
private  Node noNameDisableMap(Node node, int[] map, org.jcodings.Ptr counter)
           
private  void noNameDisableMapFor_anchor(Node node, int[] map, org.jcodings.Ptr counter)
           
private  void noNameDisableMapFor_cosAlt(Node node, int[] map, org.jcodings.Ptr counter)
           
private  Node noNameDisableMapFor_enclose(Node node, int[] map, org.jcodings.Ptr counter)
           
private  void noNameDisableMapFor_quantifier(Node node, int[] map, org.jcodings.Ptr counter)
           
protected  void numberedRefCheck(Node node)
           
private  void optimizeNodeLeft(Node node, NodeOptInfo opt, OptEnvironment oenv)
           
private  int quantifiersMemoryInfo(Node node)
           
private  void renumberByMap(Node node, int[] map)
           
private  void setCallAttr(CallNode cn)
           
protected  void setOptimizedInfoFromTree(Node node)
           
protected  int setupCombExpCheck(Node node, int state)
           
private  Node setupLookBehind(Node node)
           
protected  void setupSubExpCall(Node node)
           
protected  Node setupTree(Node node, int state)
           
private  int subexpInfRecursiveCheck(Node node, boolean head)
           
protected  int subexpInfRecursiveCheckTrav(Node node)
           
private  int subexpRecursiveCheck(Node node)
           
protected  int subexpRecursiveCheckTrav(Node node)
           
private  void swap(Node a, Node b)
           
private  void updateStringNodeCaseFold(Node node)
           
private  void updateStringNodeCaseFoldMultiByte(StringNode sn)
           
private  void updateStringNodeCaseFoldSingleByte(StringNode sn, byte[] toLower)
           
 
Methods inherited from class org.joni.Parser
parse
 
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

GET_CHAR_LEN_VARLEN

private static final int GET_CHAR_LEN_VARLEN
See Also:
Constant Field Values

GET_CHAR_LEN_TOP_ALT_VARLEN

private static final int GET_CHAR_LEN_TOP_ALT_VARLEN
See Also:
Constant Field Values

RECURSION_EXIST

private static final int RECURSION_EXIST
See Also:
Constant Field Values

RECURSION_INFINITE

private static final int RECURSION_INFINITE
See Also:
Constant Field Values

FOUND_CALLED_NODE

private static final int FOUND_CALLED_NODE
See Also:
Constant Field Values

THRESHOLD_CASE_FOLD_ALT_FOR_EXPANSION

private static final int THRESHOLD_CASE_FOLD_ALT_FOR_EXPANSION
See Also:
Constant Field Values

CEC_THRES_NUM_BIG_REPEAT

private static final int CEC_THRES_NUM_BIG_REPEAT
See Also:
Constant Field Values

CEC_INFINITE_NUM

private static final int CEC_INFINITE_NUM
See Also:
Constant Field Values

CEC_IN_INFINITE_REPEAT

private static final int CEC_IN_INFINITE_REPEAT
See Also:
Constant Field Values

CEC_IN_FINITE_REPEAT

private static final int CEC_IN_FINITE_REPEAT
See Also:
Constant Field Values

CEC_CONT_BIG_REPEAT

private static final int CEC_CONT_BIG_REPEAT
See Also:
Constant Field Values

IN_ALT

private static final int IN_ALT
See Also:
Constant Field Values

IN_NOT

private static final int IN_NOT
See Also:
Constant Field Values

IN_REPEAT

private static final int IN_REPEAT
See Also:
Constant Field Values

IN_VAR_REPEAT

private static final int IN_VAR_REPEAT
See Also:
Constant Field Values

EXPAND_STRING_MAX_LENGTH

private static final int EXPAND_STRING_MAX_LENGTH
See Also:
Constant Field Values

MAX_NODE_OPT_INFO_REF_COUNT

private static final int MAX_NODE_OPT_INFO_REF_COUNT
See Also:
Constant Field Values
Constructor Detail

Analyser

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

compile

protected final void compile()

noNameDisableMapFor_cosAlt

private void noNameDisableMapFor_cosAlt(Node node,
                                        int[] map,
                                        org.jcodings.Ptr counter)

noNameDisableMapFor_quantifier

private void noNameDisableMapFor_quantifier(Node node,
                                            int[] map,
                                            org.jcodings.Ptr counter)

noNameDisableMapFor_enclose

private Node noNameDisableMapFor_enclose(Node node,
                                         int[] map,
                                         org.jcodings.Ptr counter)

noNameDisableMapFor_anchor

private void noNameDisableMapFor_anchor(Node node,
                                        int[] map,
                                        org.jcodings.Ptr counter)

noNameDisableMap

private Node noNameDisableMap(Node node,
                              int[] map,
                              org.jcodings.Ptr counter)

renumberByMap

private void renumberByMap(Node node,
                           int[] map)

numberedRefCheck

protected final void numberedRefCheck(Node node)

disableNoNameGroupCapture

protected final Node disableNoNameGroupCapture(Node root)

swap

private void swap(Node a,
                  Node b)

quantifiersMemoryInfo

private int quantifiersMemoryInfo(Node node)

getMinMatchLength

private int getMinMatchLength(Node node)

getMaxMatchLength

private int getMaxMatchLength(Node node)

getCharLengthTree

protected final int getCharLengthTree(Node node)

getCharLengthTree

private int getCharLengthTree(Node node,
                              int level)

isNotIncluded

private boolean isNotIncluded(Node x,
                              Node y)

getHeadValueNode

private Node getHeadValueNode(Node node,
                              boolean exact)

checkTypeTree

private boolean checkTypeTree(Node node,
                              int typeMask,
                              int encloseMask,
                              int anchorMask)

subexpInfRecursiveCheck

private int subexpInfRecursiveCheck(Node node,
                                    boolean head)

subexpInfRecursiveCheckTrav

protected final int subexpInfRecursiveCheckTrav(Node node)

subexpRecursiveCheck

private int subexpRecursiveCheck(Node node)

subexpRecursiveCheckTrav

protected final int subexpRecursiveCheckTrav(Node node)

setCallAttr

private void setCallAttr(CallNode cn)

setupSubExpCall

protected final void setupSubExpCall(Node node)

divideLookBehindAlternatives

private Node divideLookBehindAlternatives(Node node)

setupLookBehind

private Node setupLookBehind(Node node)

nextSetup

private void nextSetup(Node node,
                       Node nextNode)

updateStringNodeCaseFoldSingleByte

private void updateStringNodeCaseFoldSingleByte(StringNode sn,
                                                byte[] toLower)

updateStringNodeCaseFoldMultiByte

private void updateStringNodeCaseFoldMultiByte(StringNode sn)

updateStringNodeCaseFold

private void updateStringNodeCaseFold(Node node)

expandCaseFoldMakeRemString

private Node expandCaseFoldMakeRemString(byte[] bytes,
                                         int p,
                                         int end)

expandCaseFoldStringAlt

private boolean expandCaseFoldStringAlt(int itemNum,
                                        org.jcodings.CaseFoldCodeItem[] items,
                                        byte[] bytes,
                                        int p,
                                        int slen,
                                        int end,
                                        org.jcodings.ObjPtr<Node> node)

expandCaseFoldString

private Node expandCaseFoldString(Node node)

setupCombExpCheck

protected final int setupCombExpCheck(Node node,
                                      int state)

setupTree

protected final Node setupTree(Node node,
                               int state)

optimizeNodeLeft

private void optimizeNodeLeft(Node node,
                              NodeOptInfo opt,
                              OptEnvironment oenv)

setOptimizedInfoFromTree

protected final void setOptimizedInfoFromTree(Node node)


Copyright © 2013. All Rights Reserved.