Thu, 16 May 2013 19:52:39 +0200
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 | } |