"(temp->" + current.getFields()[j].getVariable().getIdent() +
"(&temp->" + current.getFields()[j].getVariable().getIdent() +
    private static void createPushPopFunctions(SIRStructure[] structs,					       FileWriter fw) throws Exception    {		//create the pop functions	for (int i = 0; i < structs.length; i++) {	    SIRStructure current = structs[i];	    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++) {		if (current.getFields()[j].getType().isClassType()) {		    fw.write("\ttemp." + current.getFields()[j].getVariable().getIdent() +			     " = pop" + current.getFields()[j].getType() + "();\n");		}		else if (current.getFields()[j].getType().isArrayType()) {		}		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	for (int i = 0; i < structs.length; i++) {	    SIRStructure current = structs[i];	    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().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 if (current.getFields()[j].getType().isArrayType()) {		}		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	for (int i = 0; i < structs.length; i++) {	    SIRStructure current = structs[i];	    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().isClassType()) {		    fw.write("push" + current.getFields()[j].getType() + "(temp." +			     current.getFields()[j].getVariable().getIdent() + ");\n");		}		else if (current.getFields()[j].getType().isArrayType()) {		}		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");	}    }