print("[" + ARRAY_COPY + i + "]");
print("[" + RawExecutionCode.ARRAY_COPY + i + "]");
    public void visitAssignmentExpression(JAssignmentExpression self,                                          JExpression left,                                          JExpression right) {	//print the correct code for array assignment	//this must be run after renaming!!!!!!	if (left.getType() == null || right.getType() == null) {	    lastLeft=left;	    print("(");	    left.accept(this);	    print(" = ");	    right.accept(this);	    print(")");	    return; 	}		if ((left.getType().isArrayType()) &&	     ((right.getType().isArrayType() || right instanceof SIRPopExpression) &&	      !(right instanceof JNewArrayExpression))) {	    	    String ident = "";	    	    	    if (left instanceof JFieldAccessExpression) 		ident = ((JFieldAccessExpression)left).getIdent();	    else if (left instanceof JLocalVariableExpression) 		ident = ((JLocalVariableExpression)left).getVariable().getIdent();	    else 		Utils.fail("Assigning an array to an unsupported expression");	    	    String[] dims = ArrayDim.findDim(filter, ident);	    //if we cannot find the dim, just create a pointer copy	    if (dims == null) {		lastLeft=left;		print("(");		left.accept(this);		print(" = ");		right.accept(this);		print(")");		return;	    }	    print("{\n");	    print("int ");	    //print the index var decls	    for (int i = 0; i < dims.length -1; i++)		print(ARRAY_COPY + i + ", ");	    print(ARRAY_COPY + (dims.length - 1));	    print(";\n");	    for (int i = 0; i < dims.length; i++) {		print("for (" + ARRAY_COPY + i + " = 0; " + ARRAY_COPY + i +  		      " < " + dims[i] + "; " + ARRAY_COPY + i + "++)\n");	    }	    left.accept(this);	    for (int i = 0; i < dims.length; i++)		print("[" + ARRAY_COPY + i + "]");	    print(" = ");	    right.accept(this);	    for (int i = 0; i < dims.length; i++)		print("[" + ARRAY_COPY + i + "]");	    print(";\n}\n");	    return;	}	//stack allocate all arrays in the work function 	//done at the variable definition	if (isWork && right instanceof JNewArrayExpression && 	    (left instanceof JLocalVariableExpression)) {	    	    CType baseType = ((CArrayType)((JNewArrayExpression)right).getType()).getBaseType(); 	    print(baseType + " ");	    	    left.accept(this);	    //find the dimensions of the array!! 	    String ident;	    ident = ((JLocalVariableExpression)left).getVariable().getIdent(); 	    String dims[] =  		ArrayDim.findDim(filter, ident);	     	    for (int i = 0; i < dims.length; i++) 		print("[" + dims[i] + "]"); 	    return;	}		lastLeft=left;        print("(");        left.accept(this);        print(" = ");        right.accept(this);        print(")");    }