--- old/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/regexp/joni/ast/AnchorNode.java 2020-04-15 18:51:49.000000000 +0530 +++ /dev/null 2020-04-15 18:51:49.000000000 +0530 @@ -1,125 +0,0 @@ -/* - * Permission is hereby granted, free of charge, to any person obtaining a copy of - * this software and associated documentation files (the "Software"), to deal in - * the Software without restriction, including without limitation the rights to - * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - * of the Software, and to permit persons to whom the Software is furnished to do - * so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ -package jdk.nashorn.internal.runtime.regexp.joni.ast; - -import jdk.nashorn.internal.runtime.regexp.joni.constants.AnchorType; - -@SuppressWarnings("javadoc") -public final class AnchorNode extends Node implements AnchorType { - public int type; - public Node target; - public int charLength; - - public AnchorNode(final int type) { - this.type = type; - charLength = -1; - } - - @Override - public int getType() { - return ANCHOR; - } - - @Override - protected void setChild(final Node newChild) { - target = newChild; - } - - @Override - protected Node getChild() { - return target; - } - - public void setTarget(final Node tgt) { - target = tgt; - tgt.parent = this; - } - - @Override - public String getName() { - return "Anchor"; - } - - @Override - public String toString(final int level) { - final StringBuilder value = new StringBuilder(); - value.append("\n type: ").append(typeToString()); - value.append("\n target: ").append(pad(target, level + 1)); - return value.toString(); - } - - public String typeToString() { - final StringBuilder sb = new StringBuilder(); - if (isType(BEGIN_BUF)) { - sb.append("BEGIN_BUF "); - } - if (isType(BEGIN_LINE)) { - sb.append("BEGIN_LINE "); - } - if (isType(BEGIN_POSITION)) { - sb.append("BEGIN_POSITION "); - } - if (isType(END_BUF)) { - sb.append("END_BUF "); - } - if (isType(SEMI_END_BUF)) { - sb.append("SEMI_END_BUF "); - } - if (isType(END_LINE)) { - sb.append("END_LINE "); - } - if (isType(WORD_BOUND)) { - sb.append("WORD_BOUND "); - } - if (isType(NOT_WORD_BOUND)) { - sb.append("NOT_WORD_BOUND "); - } - if (isType(WORD_BEGIN)) { - sb.append("WORD_BEGIN "); - } - if (isType(WORD_END)) { - sb.append("WORD_END "); - } - if (isType(PREC_READ)) { - sb.append("PREC_READ "); - } - if (isType(PREC_READ_NOT)) { - sb.append("PREC_READ_NOT "); - } - if (isType(LOOK_BEHIND)) { - sb.append("LOOK_BEHIND "); - } - if (isType(LOOK_BEHIND_NOT)) { - sb.append("LOOK_BEHIND_NOT "); - } - if (isType(ANYCHAR_STAR)) { - sb.append("ANYCHAR_STAR "); - } - if (isType(ANYCHAR_STAR_ML)) { - sb.append("ANYCHAR_STAR_ML "); - } - return sb.toString(); - } - - private boolean isType(final int t) { - return (this.type & t) != 0; - } - -}