//
//  MPNumber.h
//  MathKit
//
//  Created by Kim Wittenburg on 09.10.14.
//  Copyright (c) 2014 Kim Wittenburg. All rights reserved.
//

#import "MPTerm.h"


/*!
 @header
 This file contains the <code>MPNumber</code> class.
 */



@class MPNumber;


/*!
    @class      MPNumber
    @abstract   This class represents a number that evaluates to itself.
 
    @discussion Numbers include integers as well as floating point numbers. They
                have to be representable as a decimal number literal (e.g.
                <code>3.4</code>). Numbers that have periods or are irrational
                are not implemented by this class.
 */
@interface MPNumber : MPTerm

/*!
    @method     initWithNumber:
    @abstract   Initializes a number term with the specified <code>number</code>.
 
    @param      number
                The number that the term should evaluate to. Must not be
                <code>nil</code>.
 
    @return     A new <code>MPNumberTerm</code> instance.
 */
- (instancetype)initWithNumber:(NSDecimalNumber *)number; /* designated initializer */


/*!
    @property   number
    @abstract   The receiver's number.
 */
@property (readonly, nonatomic, strong) NSDecimalNumber *number;

@end
