}
} */
	public Object visitPopExpression(SIRPopExpression oldSelf,					 CType oldTapeType) {		    // do the super	    SIRPopExpression self = 		(SIRPopExpression)		super.visitPopExpression(oldSelf, oldTapeType);  	    //if this is a struct, use the struct's pop method, generated in struct.h	    if (self.getType().isClassType()) {		return new JMethodCallExpression(null, new JThisExpression(null), 						 "pop" + self.getType(), 						 new JExpression[0]);	    }	    else if (self.getType().isArrayType()) {		return null;	    }	    else {		//direct communcation is only generated if the input/output types are scalar		if (self.getType().isFloatingPoint())		    return 			new JLocalVariableExpression			(null,			 new JGeneratedLocalVariable(null, 0, 						     CStdType.Float, 						     dynamic ? Util.CGNIFPVAR : Util.CSTIFPVAR,						     null));		else 		    return 			new JLocalVariableExpression			(null,			 new JGeneratedLocalVariable(null, 0, 						     CStdType.Integer,						     dynamic ? Util.CGNIINTVAR : Util.CSTIINTVAR,						     null));	    }	}