public ConstantArrayOperator(Type type, int size) {
		super(type);
		argType = (type instanceof ArrayType) ? Type
				.tSubType(((ArrayType) type).getElementType()) : Type.tError;

		Object emptyVal;
		if (argType == type.tError || argType.isOfType(Type.tUObject))
			emptyVal = null;
		else if (argType.isOfType(Type.tBoolUInt))
			emptyVal = new Integer(0);
		else if (argType.isOfType(Type.tLong))
			emptyVal = new Long(0);
		else if (argType.isOfType(Type.tFloat))
			emptyVal = new Float(0);
		else if (argType.isOfType(Type.tDouble))
			emptyVal = new Double(0);
		else
			throw new IllegalArgumentException("Illegal Type: " + argType);

		empty = new ConstOperator(emptyVal);
		empty.setType(argType);
		empty.makeInitializer(argType);
		initOperands(size);
		for (int i = 0; i < subExpressions.length; i++)
			setSubExpressions(i, empty);
	}