throw new AssertionError("Binary operators should always have two sub-expressions"); //$NON-NLS-1$
}
// evaluate choice argument
node.jjtGetChild(0).jjtAccept(this, data);
final ValueType choiceArg = ((EvaluationTracker)data).getValueType();
// evaluate when true argument
node.jjtGetChild(1).jjtAccept(this, data);
final ValueType whenTrueArg = ((EvaluationTracker)data).getValueType();
//evaluate when false argument
node.jjtGetChild(2).jjtAccept(this, data);
final ValueType whenFalseArg = ((EvaluationTracker)data).getValueType();
if (choiceArg != null && whenTrueArg != null && whenFalseArg != null)
{
final TernaryChoiceOperator operator =