--- old/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/TreeImpl.java 2020-04-15 18:46:46.000000000 +0530 +++ /dev/null 2020-04-15 18:46:46.000000000 +0530 @@ -1,163 +0,0 @@ -/* - * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Oracle designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package jdk.nashorn.api.tree; - -import jdk.nashorn.internal.ir.Node; - -import jdk.nashorn.internal.parser.TokenType; - -abstract class TreeImpl implements Tree { - protected final Node node; - - TreeImpl(final Node node) { - this.node = node; - } - - @Override - public long getStartPosition() { - return node.getStart(); - } - - @Override - public long getEndPosition() { - return node.getFinish(); - } - - @Override - public R accept(final TreeVisitor visitor, final D data) { - return visitor.visitUnknown(this, data); - } - - static Kind getOperator(final TokenType tt) { - switch(tt) { - case NEW: - return Kind.NEW; - case NOT: - return Kind.LOGICAL_COMPLEMENT; - case NE: - return Kind.NOT_EQUAL_TO; - case NE_STRICT: - return Kind.STRICT_NOT_EQUAL_TO; - case MOD: - return Kind.REMAINDER; - case ASSIGN_MOD: - return Kind.REMAINDER_ASSIGNMENT; - case BIT_AND: - return Kind.AND; - case AND: - return Kind.CONDITIONAL_AND; - case ASSIGN_BIT_AND: - return Kind.AND_ASSIGNMENT; - case MUL: - return Kind.MULTIPLY; - case ASSIGN_MUL: - return Kind.MULTIPLY_ASSIGNMENT; - case POS: - return Kind.UNARY_PLUS; - case ADD: - return Kind.PLUS; - case INCPREFIX: - return Kind.PREFIX_INCREMENT; - case INCPOSTFIX: - return Kind.POSTFIX_INCREMENT; - case ASSIGN_ADD: - return Kind.PLUS_ASSIGNMENT; - case NEG: - return Kind.UNARY_MINUS; - case SUB: - return Kind.MINUS; - case DECPREFIX: - return Kind.PREFIX_DECREMENT; - case DECPOSTFIX: - return Kind.POSTFIX_DECREMENT; - case ASSIGN_SUB: - return Kind.MINUS_ASSIGNMENT; - case DIV: - return Kind.DIVIDE; - case ASSIGN_DIV: - return Kind.DIVIDE_ASSIGNMENT; - case LT: - return Kind.LESS_THAN; - case SHL: - return Kind.LEFT_SHIFT; - case ASSIGN_SHL: - return Kind.LEFT_SHIFT_ASSIGNMENT; - case LE: - return Kind.LESS_THAN_EQUAL; - case ASSIGN: - return Kind.ASSIGNMENT; - case EQ: - return Kind.EQUAL_TO; - case EQ_STRICT: - return Kind.STRICT_EQUAL_TO; - case GT: - return Kind.GREATER_THAN; - case GE: - return Kind.GREATER_THAN_EQUAL; - case SAR: - return Kind.RIGHT_SHIFT; - case ASSIGN_SAR: - return Kind.RIGHT_SHIFT_ASSIGNMENT; - case SHR: - return Kind.UNSIGNED_RIGHT_SHIFT; - case ASSIGN_SHR: - return Kind.UNSIGNED_RIGHT_SHIFT_ASSIGNMENT; - case TERNARY: - return Kind.CONDITIONAL_EXPRESSION; - case BIT_XOR: - return Kind.XOR; - case ASSIGN_BIT_XOR: - return Kind.XOR_ASSIGNMENT; - case BIT_OR: - return Kind.OR; - case ASSIGN_BIT_OR: - return Kind.OR_ASSIGNMENT; - case OR: - return Kind.CONDITIONAL_OR; - case BIT_NOT: - return Kind.BITWISE_COMPLEMENT; - case DELETE: - return Kind.DELETE; - case SPREAD_ARRAY: - case SPREAD_ARGUMENT: - return Kind.SPREAD; - case TYPEOF: - return Kind.TYPEOF; - case VOID: - return Kind.VOID; - case YIELD: - return Kind.YIELD; - case IN: - return Kind.IN; - case INSTANCEOF: - return Kind.INSTANCE_OF; - case COMMARIGHT: - return Kind.COMMA; - default: - throw new AssertionError("should not reach here: " + tt); - } - } -}