return new JArrayAccessExpression(null, lhs, rhs);
return new JAssignmentExpression( null, new JArrayAccessExpression(null, lhs, rhs), self.getArg());
    public Object visitPushExpression(SIRPushExpression oldSelf,				      CType oldTapeType,				      JExpression oldArg) {	// leave it alone not fusing writes	if (!fuseWrites) {	    return super.visitPushExpression(oldSelf, oldTapeType, oldArg);	}	// do the super	SIRPushExpression self = 	    (SIRPushExpression)	    super.visitPushExpression(oldSelf, oldTapeType, oldArg);		// build ref to push array	JLocalVariableExpression lhs = 	    new JLocalVariableExpression(null, nextInfo.popBuffer);	// build increment of index to array	JExpression rhs =	    new JPostfixExpression(null,				   Constants.OPE_POSTINC, 				   new JLocalVariableExpression(null,								nextInfo.								pushCounter));	// return a new array access expression	return new JArrayAccessExpression(null, lhs, rhs);    }