System.out.println(((CArrayType)current.getFields()[j].getType()).getDims()[0]);
System.err.println(((CArrayType)current.getFields()[j].getType()).getDims()[0]);
    private void createPushPopFunctions(SIRStructure[] structs,                                        FileWriter fw) throws Exception    {            //create the pop functions        for (int i = 0; i < structs.length; i++) {            SIRStructure current = structs[i];            //if this type is not passed over a channel, then don't generate the push            //pop functions for it...            if (!passedTypes.contains(current))                continue;            fw.write("inline " + current.getIdent() + " pop" + current.getIdent() + "() {\n");            fw.write("\t" + current.getIdent() + " temp;\n");            for (int j = 0; j < current.getFields().length; j++) {                fw.write("\t//" + current.getFields()[j].getType() + "\n");                if (current.getFields()[j].getType().isArrayType()) {                    System.out.println(((CArrayType)current.getFields()[j].getType()).getDims());                    assert false;                }                else if (current.getFields()[j].getType().isClassType()) {                             fw.write("\ttemp." + current.getFields()[j].getVariable().getIdent() +                             " = pop" + current.getFields()[j].getType() + "();\n");                }                else {                    fw.write("\t" + Util.staticNetworkReceivePrefix());                    fw.write("temp." + current.getFields()[j].getVariable().getIdent());                    fw.write(Util.staticNetworkReceiveSuffix(current.getFields()[j].getType()) + "\n");                }            }            fw.write("\treturn temp;\n}\n");            //create the pop functions that take a pointer argument            //these are more efficent, we use these when we can            fw.write("inline void " + RawExecutionCode.structReceiveMethodPrefix +                      current.getIdent() + "(" +                      current.getIdent() + "* temp) {\n");            for (int j = 0; j < current.getFields().length; j++) {                if (current.getFields()[j].getType().isArrayType()) {                    assert false;                }                else if (current.getFields()[j].getType().isClassType()) {                    //if this is struct field, call the struct's popPointer method                    fw.write("\t" + RawExecutionCode.structReceiveMethodPrefix +                              current.getFields()[j].getType() +                             "(&temp->" + current.getFields()[j].getVariable().getIdent() +                             ");\n");                }                else {                    fw.write("\t" + Util.staticNetworkReceivePrefix());                    fw.write("temp->" + current.getFields()[j].getVariable().getIdent());                    fw.write(Util.staticNetworkReceiveSuffix(current.getFields()[j].getType()) + "\n");                }            }            fw.write("}\n");                    //create the push functions                    fw.write("inline void push" + current.getIdent() + "(" + current.getIdent() +                     "* temp) {\n");            for (int j = 0; j < current.getFields().length; j++) {                //if this field is a struct type, use its method to push the field                if (current.getFields()[j].getType().isArrayType()) {                    System.out.println(((CArrayType)current.getFields()[j].getType()).getDims()[0]);                    assert false;                }                else if (current.getFields()[j].getType().isClassType()) {                    fw.write("push" + current.getFields()[j].getType() + "(&temp->" +                             current.getFields()[j].getVariable().getIdent() + ");\n");                }                else {                    fw.write("\t" + Util.staticNetworkSendPrefix(current.getFields()[j].getType()));                    fw.write("temp->" + current.getFields()[j].getVariable().getIdent());                    fw.write(Util.staticNetworkSendSuffix() + ";\n");                }            }            fw.write("}\n");        }    }