Index: compiler/java/com/google/dart/compiler/backend/js/ast/JsBinaryOperator.java |
diff --git a/compiler/java/com/google/dart/compiler/backend/js/ast/JsBinaryOperator.java b/compiler/java/com/google/dart/compiler/backend/js/ast/JsBinaryOperator.java |
deleted file mode 100644 |
index b54647f3a46ef9f1aa96b113bb51078262511b25..0000000000000000000000000000000000000000 |
--- a/compiler/java/com/google/dart/compiler/backend/js/ast/JsBinaryOperator.java |
+++ /dev/null |
@@ -1,120 +0,0 @@ |
-// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file |
-// for details. All rights reserved. Use of this source code is governed by a |
-// BSD-style license that can be found in the LICENSE file. |
- |
-package com.google.dart.compiler.backend.js.ast; |
- |
-/** |
- * Represents the operator in a JavaScript binary operation. |
- */ |
-public enum JsBinaryOperator implements JsOperator { |
- |
- /* |
- * Precedence indices from "JavaScript - The Definitive Guide" 4th Edition |
- * (page 57) |
- * |
- * |
- * Precedence 15 is for really important things that have their own AST |
- * classes. |
- * |
- * Precedence 14 is for unary operators. |
- */ |
- |
- MUL("*", 13, LEFT | INFIX), DIV("/", 13, LEFT | INFIX), MOD("%", 13, LEFT |
- | INFIX), |
- |
- ADD("+", 12, LEFT | INFIX), SUB("-", 12, LEFT | INFIX), |
- |
- SHL("<<", 11, LEFT | INFIX), SHR(">>", 11, LEFT | INFIX), SHRU(">>>", 11, |
- LEFT | INFIX), |
- |
- LT("<", 10, LEFT | INFIX), LTE("<=", 10, LEFT | INFIX), GT(">", 10, LEFT |
- | INFIX), GTE(">=", 10, LEFT | INFIX), INSTANCEOF("instanceof", 10, LEFT |
- | INFIX), INOP("in", 10, LEFT | INFIX), |
- |
- EQ("==", 9, LEFT | INFIX), NEQ("!=", 9, LEFT | INFIX), REF_EQ("===", 9, LEFT |
- | INFIX), REF_NEQ("!==", 9, LEFT | INFIX), |
- |
- BIT_AND("&", 8, LEFT | INFIX), |
- |
- BIT_XOR("^", 7, LEFT | INFIX), |
- |
- BIT_OR("|", 6, LEFT | INFIX), |
- |
- AND("&&", 5, LEFT | INFIX), |
- |
- OR("||", 4, LEFT | INFIX), |
- |
- // Precedence 3 is for the condition operator. |
- |
- // These assignment operators are right-associative. |
- ASG("=", 2, INFIX), ASG_ADD("+=", 2, INFIX), ASG_SUB("-=", 2, INFIX), ASG_MUL( |
- "*=", 2, INFIX), ASG_DIV("/=", 2, INFIX), ASG_MOD("%=", 2, INFIX), ASG_SHL( |
- "<<=", 2, INFIX), ASG_SHR(">>=", 2, INFIX), ASG_SHRU(">>>=", 2, INFIX), ASG_BIT_AND( |
- "&=", 2, INFIX), ASG_BIT_OR("|=", 2, INFIX), ASG_BIT_XOR("^=", 2, INFIX), |
- |
- COMMA(",", 1, LEFT | INFIX); |
- |
- private final int mask; |
- private final int precedence; |
- private final String symbol; |
- |
- private JsBinaryOperator(String symbol, int precedence, int mask) { |
- this.symbol = symbol; |
- this.precedence = precedence; |
- this.mask = mask; |
- } |
- |
- @Override |
- public int getPrecedence() { |
- return precedence; |
- } |
- |
- @Override |
- public String getSymbol() { |
- return symbol; |
- } |
- |
- public boolean isAssignment() { |
- /* |
- * Beware, flaky! Maybe I should have added Yet Another Field to |
- * BinaryOperator? |
- */ |
- return (getPrecedence() == ASG.getPrecedence()); |
- } |
- |
- @Override |
- public boolean isKeyword() { |
- return this == INSTANCEOF || this == INOP; |
- } |
- |
- @Override |
- public boolean isLeftAssociative() { |
- return (mask & LEFT) != 0; |
- } |
- |
- @Override |
- public boolean isPrecedenceLessThan(JsOperator other) { |
- return precedence < other.getPrecedence(); |
- } |
- |
- @Override |
- public boolean isValidInfix() { |
- return (mask & INFIX) != 0; |
- } |
- |
- @Override |
- public boolean isValidPostfix() { |
- return (mask & POSTFIX) != 0; |
- } |
- |
- @Override |
- public boolean isValidPrefix() { |
- return (mask & PREFIX) != 0; |
- } |
- |
- @Override |
- public String toString() { |
- return symbol; |
- } |
-} |