case InfixExpression.OP_STRING_AND:
case InfixExpression.OP_STRING_XOR:
case InfixExpression.OP_OR:
case InfixExpression.OP_AND:
case InfixExpression.OP_XOR:
result = new SimpleType(SimpleType.TYPE_BOOLEAN);
break;
case InfixExpression.OP_CONCAT:
result = new SimpleType(SimpleType.TYPE_STRING);
break;
case InfixExpression.OP_PLUS:
case InfixExpression.OP_MINUS:
case InfixExpression.OP_MUL:
case InfixExpression.OP_DIV:
case InfixExpression.OP_MOD:
case InfixExpression.OP_SL:
case InfixExpression.OP_SR:
result = new SimpleType(SimpleType.TYPE_NUMBER);
break;
default:
throw new IllegalArgumentException();
}
return IGoal.NO_GOALS;