_rsquare();
return false;
}
public boolean visit(JsBinaryOperation x, JsContext ctx) {
JsBinaryOperator op = x.getOperator();
JsExpression arg1 = x.getArg1();
_parenPush(x, arg1, !op.isLeftAssociative());
accept(arg1);
boolean needSpace = op.isKeyword() || arg1 instanceof JsPostfixOperation;
if (needSpace) {
_parenPopOrSpace(x, arg1, !op.isLeftAssociative());
} else {
_parenPop(x, arg1, !op.isLeftAssociative());
_spaceOpt();
}
p.print(op.getSymbol());
JsExpression arg2 = x.getArg2();
needSpace = op.isKeyword() || arg2 instanceof JsPrefixOperation;
if (needSpace) {
_parenPushOrSpace(x, arg2, op.isLeftAssociative());
} else {
_spaceOpt();
_parenPush(x, arg2, op.isLeftAssociative());
}
accept(arg2);
_parenPop(x, arg2, op.isLeftAssociative());
return false;
}