EMResponder.h

As mentioned earlier, the EMResponder will be responsible for doing the brunt of the calculations. The header sets up several enumerated types (to make the code a little easier to read in places) and the prototypes for the class methods.
EMResponder.h

    #import <Foundation/Foundation.h>

    typedef enum Op_Type
    {
        NO_OP 	= 0,		// no operator
        ADD_OP 	= 1,		// addition
        SUBTRACT_OP = 2,		// subtraction
        MULTIPLY_OP = 3, 		// multiplication
        DIVIDE_OP 	= 4,    	// division
        EXPONENT_OP = 5,		// exponent
        XROOT_OP 	= 6,		// taking the root to the xth degree
        MOD_OP 	= 7,		// modulus division
        EE_OP 	= 8,		// EE operator
        NPR_OP 	= 9,		// permuations
        NCR_OP 	= 10		// combinations
    } OpType;

    typedef enum Angle_Type
    {
        DEGREE 	 = 0,
        RADIAN 	 = 1,
        GRADIENT     = 2
    } AngleType;

    @interface EMResponder : NSObject
    {
        double current_value;       // the current number (which is being edited)
        double previous_value;      // the other operand (previous operand)
        double e_value;             // the number e
        OpType op_type;             // the current operator
        AngleType angle_type;       // type of angle used (radian, degree, gradient)
        int trailing_digits;        // used in decimal number input
        BOOL startNewDigit;         // allow new number in display
    }

    @end

    // class method prototypes