src/jdk/nashorn/internal/runtime/regexp/joni/ast/StateNode.java

Thu, 16 May 2013 19:52:39 +0200

author
hannesw
date
Thu, 16 May 2013 19:52:39 +0200
changeset 273
98798a6336de
parent 115
e42fd1640ff9
child 447
7503f30c1355
permissions
-rw-r--r--

8012359: Increase code coverage in Joni
Reviewed-by: jlaskey, lagergren

hannesw@115 1 /*
hannesw@115 2 * Permission is hereby granted, free of charge, to any person obtaining a copy of
hannesw@115 3 * this software and associated documentation files (the "Software"), to deal in
hannesw@115 4 * the Software without restriction, including without limitation the rights to
hannesw@115 5 * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
hannesw@115 6 * of the Software, and to permit persons to whom the Software is furnished to do
hannesw@115 7 * so, subject to the following conditions:
hannesw@115 8 *
hannesw@115 9 * The above copyright notice and this permission notice shall be included in all
hannesw@115 10 * copies or substantial portions of the Software.
hannesw@115 11 *
hannesw@115 12 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
hannesw@115 13 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
hannesw@115 14 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
hannesw@115 15 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
hannesw@115 16 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
hannesw@115 17 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
hannesw@115 18 * SOFTWARE.
hannesw@115 19 */
hannesw@115 20 package jdk.nashorn.internal.runtime.regexp.joni.ast;
hannesw@115 21
hannesw@115 22 import jdk.nashorn.internal.runtime.regexp.joni.constants.NodeStatus;
hannesw@115 23
hannesw@115 24 public abstract class StateNode extends Node implements NodeStatus {
hannesw@115 25 protected int state;
hannesw@115 26
hannesw@115 27 @Override
hannesw@115 28 public String toString(int level) {
hannesw@115 29 return "\n state: " + stateToString();
hannesw@115 30 }
hannesw@115 31
hannesw@115 32 public String stateToString() {
hannesw@115 33 StringBuilder states = new StringBuilder();
hannesw@115 34 if (isMinFixed()) states.append("MIN_FIXED ");
hannesw@115 35 if (isMaxFixed()) states.append("MAX_FIXED ");
hannesw@115 36 if (isMark1()) states.append("MARK1 ");
hannesw@115 37 if (isMark2()) states.append("MARK2 ");
hannesw@115 38 if (isMemBackrefed()) states.append("MEM_BACKREFED ");
hannesw@115 39 if (isStopBtSimpleRepeat()) states.append("STOP_BT_SIMPLE_REPEAT ");
hannesw@115 40 if (isRecursion()) states.append("RECURSION ");
hannesw@115 41 if (isCalled()) states.append("CALLED ");
hannesw@115 42 if (isAddrFixed()) states.append("ADDR_FIXED ");
hannesw@115 43 if (isNameRef()) states.append("NAME_REF ");
hannesw@115 44 if (isInRepeat()) states.append("IN_REPEAT ");
hannesw@115 45 if (isNestLevel()) states.append("NEST_LEVEL ");
hannesw@115 46 if (isByNumber()) states.append("BY_NUMBER ");
hannesw@115 47
hannesw@115 48 return states.toString();
hannesw@115 49 }
hannesw@115 50
hannesw@115 51 public boolean isMinFixed() {
hannesw@115 52 return (state & NST_MIN_FIXED) != 0;
hannesw@115 53 }
hannesw@115 54
hannesw@115 55 public void setMinFixed() {
hannesw@115 56 state |= NST_MIN_FIXED;
hannesw@115 57 }
hannesw@115 58
hannesw@115 59 public boolean isMaxFixed() {
hannesw@115 60 return (state & NST_MAX_FIXED) != 0;
hannesw@115 61 }
hannesw@115 62
hannesw@115 63 public void setMaxFixed() {
hannesw@115 64 state |= NST_MAX_FIXED;
hannesw@115 65 }
hannesw@115 66
hannesw@115 67 public boolean isCLenFixed() {
hannesw@115 68 return (state & NST_CLEN_FIXED) != 0;
hannesw@115 69 }
hannesw@115 70
hannesw@115 71 public void setCLenFixed() {
hannesw@115 72 state |= NST_CLEN_FIXED;
hannesw@115 73 }
hannesw@115 74
hannesw@115 75 public boolean isMark1() {
hannesw@115 76 return (state & NST_MARK1) != 0;
hannesw@115 77 }
hannesw@115 78
hannesw@115 79 public void setMark1() {
hannesw@115 80 state |= NST_MARK1;
hannesw@115 81 }
hannesw@115 82
hannesw@115 83 public boolean isMark2() {
hannesw@115 84 return (state & NST_MARK2) != 0;
hannesw@115 85 }
hannesw@115 86
hannesw@115 87 public void setMark2() {
hannesw@115 88 state |= NST_MARK2;
hannesw@115 89 }
hannesw@115 90
hannesw@115 91 public void clearMark2() {
hannesw@115 92 state &= ~NST_MARK2;
hannesw@115 93 }
hannesw@115 94
hannesw@115 95 public boolean isMemBackrefed() {
hannesw@115 96 return (state & NST_MEM_BACKREFED) != 0;
hannesw@115 97 }
hannesw@115 98
hannesw@115 99 public void setMemBackrefed() {
hannesw@115 100 state |= NST_MEM_BACKREFED;
hannesw@115 101 }
hannesw@115 102
hannesw@115 103 public boolean isStopBtSimpleRepeat() {
hannesw@115 104 return (state & NST_STOP_BT_SIMPLE_REPEAT) != 0;
hannesw@115 105 }
hannesw@115 106
hannesw@115 107 public void setStopBtSimpleRepeat() {
hannesw@115 108 state |= NST_STOP_BT_SIMPLE_REPEAT;
hannesw@115 109 }
hannesw@115 110
hannesw@115 111 public boolean isRecursion() {
hannesw@115 112 return (state & NST_RECURSION) != 0;
hannesw@115 113 }
hannesw@115 114
hannesw@115 115 public void setRecursion() {
hannesw@115 116 state |= NST_RECURSION;
hannesw@115 117 }
hannesw@115 118
hannesw@115 119 public boolean isCalled() {
hannesw@115 120 return (state & NST_CALLED) != 0;
hannesw@115 121 }
hannesw@115 122
hannesw@115 123 public void setCalled() {
hannesw@115 124 state |= NST_CALLED;
hannesw@115 125 }
hannesw@115 126
hannesw@115 127 public boolean isAddrFixed() {
hannesw@115 128 return (state & NST_ADDR_FIXED) != 0;
hannesw@115 129 }
hannesw@115 130
hannesw@115 131 public void setAddrFixed() {
hannesw@115 132 state |= NST_ADDR_FIXED;
hannesw@115 133 }
hannesw@115 134
hannesw@115 135 public boolean isNameRef() {
hannesw@115 136 return (state & NST_NAME_REF) != 0;
hannesw@115 137 }
hannesw@115 138
hannesw@115 139 public void setNameRef() {
hannesw@115 140 state |= NST_NAME_REF;
hannesw@115 141 }
hannesw@115 142
hannesw@115 143 public boolean isInRepeat() {
hannesw@115 144 return (state & NST_IN_REPEAT) != 0;
hannesw@115 145 }
hannesw@115 146
hannesw@115 147 public void setInRepeat() {
hannesw@115 148 state |= NST_IN_REPEAT;
hannesw@115 149 }
hannesw@115 150
hannesw@115 151 public boolean isNestLevel() {
hannesw@115 152 return (state & NST_NEST_LEVEL) != 0;
hannesw@115 153 }
hannesw@115 154
hannesw@115 155 public void setNestLevel() {
hannesw@115 156 state |= NST_NEST_LEVEL;
hannesw@115 157 }
hannesw@115 158
hannesw@115 159 public boolean isByNumber() {
hannesw@115 160 return (state & NST_BY_NUMBER) != 0;
hannesw@115 161 }
hannesw@115 162
hannesw@115 163 public void setByNumber() {
hannesw@115 164 state |= NST_BY_NUMBER;
hannesw@115 165 }
hannesw@115 166
hannesw@115 167 }

mercurial