public Calc compileCall(ResolvedFunCall call, ExpCompiler compiler) {
final int category = call.getArg(0).getCategory();
switch (category) {
case Category.Tuple:
final TupleCalc tupleCalc0 = compiler.compileTuple(call.getArg(0));
final TupleCalc tupleCalc1 = compiler.compileTuple(call.getArg(1));
return new AbstractBooleanCalc(
call, new Calc[] {tupleCalc0, tupleCalc1})
{
public boolean evaluateBoolean(Evaluator evaluator) {
Member[] o0 = tupleCalc0.evaluateTuple(evaluator);
Member[] o1 = tupleCalc1.evaluateTuple(evaluator);
return equalTuple(o0, o1);
}
};
default:
assert category == call.getArg(1).getCategory();