new JMinusExpression(null, new JLocalVariableExpression(null, curInfo. popCounter), self.getArg());
new JAddExpression(null, new JAddExpression(null, new JIntLiteral(1), new JLocalVariableExpression(null, curInfo. popCounter)), self.getArg());
    public Object visitPeekExpression(SIRPeekExpression oldSelf,				      CType oldTapeType,				      JExpression oldArg) {	// leave it alone not fusing reads	if (!fuseReads) {	    return super.visitPeekExpression(oldSelf, oldTapeType, oldArg);	}	// do the super	SIRPeekExpression self = 	    (SIRPeekExpression)	    super.visitPeekExpression(oldSelf, oldTapeType, oldArg);		// build ref to pop array	JLocalVariableExpression lhs = 	    new JLocalVariableExpression(null, curInfo.popBuffer);	// build subtraction of peek index from current pop index	JExpression rhs =	    new JMinusExpression(null,				 new JLocalVariableExpression(null,							      curInfo.							      popCounter),				 self.getArg());	// return a new array access expression	return new JArrayAccessExpression(null, lhs, rhs);    }