to, from)));
tel, fel)));
    private void makeCopyArray(Expression from, Expression to, TypeArray type)    {        // We need to generate a for loop, since from our point of        // view, the array bounds may not be constant.        String indexName = varGen.nextVar();        ExprVar index = new ExprVar(null, indexName);        Type intType = new TypePrimitive(TypePrimitive.TYPE_INT);                Statement init =            new StmtVarDecl(null, intType, indexName,                            new ExprConstInt(null, 0));        symtab.registerVar(indexName, intType, null, SymbolTable.KIND_LOCAL);        Expression cond =            new ExprBinary(null, ExprBinary.BINOP_LT, index, type.getLength());        Statement incr =            new StmtAssign(null, index,                           new ExprBinary(null, ExprBinary.BINOP_ADD,                                          index, new ExprConstInt(null, 1)));        // Need to make a deep copy.  Existing machinery uses        // addStatement(); visiting a StmtBlock will save this.        // So, create a block containing a shallow copy, then        // visit:        Statement body =            new StmtBlock(null,                          Collections.singletonList(new StmtAssign(null,                                                                   to,                                                                   from)));        body = (Statement)body.accept(this);        // Now generate the loop, we have all the parts.        addStatement(new StmtFor(null, incr, cond, incr, body));    }