< prev index next >

src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/regexp/joni/ScanEnvironment.java

Print this page




  45 
  46 
  47     public ScanEnvironment(final Regex regex, final Syntax syntax) {
  48         this.reg = regex;
  49         option = regex.options;
  50         caseFoldFlag = regex.caseFoldFlag;
  51         this.syntax = syntax;
  52     }
  53 
  54     public void clear() {
  55         captureHistory = bsClear();
  56         btMemStart = bsClear();
  57         btMemEnd = bsClear();
  58         backrefedMem = bsClear();
  59 
  60         numMem = 0;
  61         memNodes = null;
  62     }
  63 
  64     public int addMemEntry() {



  65         if (numMem++ == 0) {
  66             memNodes = new Node[SCANENV_MEMNODES_SIZE];
  67         } else if (numMem >= memNodes.length) {
  68             final Node[]tmp = new Node[memNodes.length << 1];
  69             System.arraycopy(memNodes, 0, tmp, 0, memNodes.length);
  70             memNodes = tmp;
  71         }
  72 
  73         return numMem;
  74     }
  75 
  76     public void setMemNode(final int num, final Node node) {
  77         if (numMem >= num) {
  78             memNodes[num] = node;
  79         } else {
  80             throw new InternalException(ErrorMessages.ERR_PARSER_BUG);
  81         }
  82     }
  83 
  84     public int convertBackslashValue(final int c) {




  45 
  46 
  47     public ScanEnvironment(final Regex regex, final Syntax syntax) {
  48         this.reg = regex;
  49         option = regex.options;
  50         caseFoldFlag = regex.caseFoldFlag;
  51         this.syntax = syntax;
  52     }
  53 
  54     public void clear() {
  55         captureHistory = bsClear();
  56         btMemStart = bsClear();
  57         btMemEnd = bsClear();
  58         backrefedMem = bsClear();
  59 
  60         numMem = 0;
  61         memNodes = null;
  62     }
  63 
  64     public int addMemEntry() {
  65         if (numMem >= Config.MAX_CAPTURE_GROUP_NUM) {
  66             throw new InternalException(ErrorMessages.ERR_TOO_MANY_CAPTURE_GROUPS);
  67         }
  68         if (numMem++ == 0) {
  69             memNodes = new Node[SCANENV_MEMNODES_SIZE];
  70         } else if (numMem >= memNodes.length) {
  71             final Node[]tmp = new Node[memNodes.length << 1];
  72             System.arraycopy(memNodes, 0, tmp, 0, memNodes.length);
  73             memNodes = tmp;
  74         }
  75 
  76         return numMem;
  77     }
  78 
  79     public void setMemNode(final int num, final Node node) {
  80         if (numMem >= num) {
  81             memNodes[num] = node;
  82         } else {
  83             throw new InternalException(ErrorMessages.ERR_PARSER_BUG);
  84         }
  85     }
  86 
  87     public int convertBackslashValue(final int c) {


< prev index next >