static boolean isBinaryOperatorType ( Token type ) { switch ( type ) { case OR : case AND : case BITOR : case BITXOR : case BITAND : case EQ : case NE : case SHEQ : case SHNE : case LT : case GT : case LE : case GE : case INSTANCEOF : case IN : case LSH : case RSH : case URSH : case ADD : case SUB : case MUL : case DIV : case MOD : case EXPONENT : return true ; default : return false ; } }
An operator with two operands that does not assign a value to either . Once you cut through the layers of rules these all parse similarly taking LeftHandSideExpression operands on either side . Comma is not included because it takes AssignmentExpression operands making its syntax different .