1 16 package com.google.gwt.dev.js.ast; 17 18 21 public final class JsBinaryOperator extends JsOperator { 22 23 27 30 32 private static final int LEFT_INFIX = LEFT | INFIX; 33 public static final JsBinaryOperator MUL = create("*", 13, LEFT_INFIX); 34 public static final JsBinaryOperator DIV = create("/", 13, LEFT_INFIX); 35 public static final JsBinaryOperator MOD = create("%", 13, LEFT_INFIX); 36 37 public static final JsBinaryOperator ADD = create("+", 12, LEFT_INFIX); 38 public static final JsBinaryOperator SUB = create("-", 12, LEFT_INFIX); 39 40 public static final JsBinaryOperator SHL = create("<<", 11, LEFT_INFIX); 41 public static final JsBinaryOperator SHR = create(">>", 11, LEFT_INFIX); 42 public static final JsBinaryOperator SHRU = create(">>>", 11, LEFT_INFIX); 43 44 public static final JsBinaryOperator LT = create("<", 10, LEFT_INFIX); 45 public static final JsBinaryOperator LTE = create("<=", 10, LEFT_INFIX); 46 public static final JsBinaryOperator GT = create(">", 10, LEFT_INFIX); 47 public static final JsBinaryOperator GTE = create(">=", 10, LEFT_INFIX); 48 public static final JsBinaryOperator INSTANCEOF = create("instanceof", 10, 49 LEFT_INFIX); 50 public static final JsBinaryOperator INOP = create("in", 10, LEFT_INFIX); 51 52 public static final JsBinaryOperator EQ = create("==", 9, LEFT_INFIX); 53 public static final JsBinaryOperator NEQ = create("!=", 9, LEFT_INFIX); 54 public static final JsBinaryOperator REF_EQ = create("===", 9, LEFT_INFIX); 55 public static final JsBinaryOperator REF_NEQ = create("!==", 9, LEFT_INFIX); 56 57 public static final JsBinaryOperator BIT_AND = create("&", 8, LEFT_INFIX); 58 59 public static final JsBinaryOperator BIT_XOR = create("^", 7, LEFT_INFIX); 60 61 public static final JsBinaryOperator BIT_OR = create("|", 6, LEFT_INFIX); 62 63 public static final JsBinaryOperator AND = create("&&", 5, LEFT_INFIX); 64 65 public static final JsBinaryOperator OR = create("||", 4, LEFT_INFIX); 66 67 69 public static final JsBinaryOperator ASG = create("=", 2, INFIX); 71 public static final JsBinaryOperator ASG_ADD = create("+=", 2, INFIX); 72 public static final JsBinaryOperator ASG_SUB = create("-=", 2, INFIX); 73 public static final JsBinaryOperator ASG_MUL = create("*=", 2, INFIX); 74 public static final JsBinaryOperator ASG_DIV = create("/=", 2, INFIX); 75 public static final JsBinaryOperator ASG_MOD = create("%=", 2, INFIX); 76 public static final JsBinaryOperator ASG_SHL = create("<<=", 2, INFIX); 77 public static final JsBinaryOperator ASG_SHR = create(">>=", 2, INFIX); 78 public static final JsBinaryOperator ASG_SHRU = create(">>>=", 2, INFIX); 79 public static final JsBinaryOperator ASG_BIT_AND = create("&=", 2, INFIX); 80 public static final JsBinaryOperator ASG_BIT_OR = create("|=", 2, INFIX); 81 public static final JsBinaryOperator ASG_BIT_XOR = create("^=", 2, INFIX); 82 83 public static final JsBinaryOperator COMMA = create(",", 1, LEFT_INFIX); 84 85 private static JsBinaryOperator create(String symbol, int precedence, int mask) { 86 JsBinaryOperator op = new JsBinaryOperator(symbol, precedence, mask); 87 return op; 88 } 89 90 private JsBinaryOperator(String symbol, int precedence, int mask) { 91 super(symbol, precedence, mask); 92 } 93 94 public boolean isAssignment() { 95 99 return (getPrecedence() == ASG.getPrecedence()); 100 } 101 102 public boolean isKeyword() { 103 return this == INSTANCEOF || this == INOP; 104 } 105 106 } 107 | Popular Tags |