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


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



@class MPExpressionTokenizer, MPExpression;


/*!
    @class      MPExpressionTokenizer
    @abstract   The expression tokenizer class convers an <code>@link
                MPExpression@/link</code> instance into an array of tokens.
 */
@interface MPExpressionTokenizer : NSObject

/*!
    @method     tokenizeExpression:
    @abstract   Converts an <code>@link MPExpression@/link</code> instance into
                an array of tokens.
 
    @discussion The objects in the returned array all conform to the <code>@link
                //apple_ref/occ/intf/MPToken@/link</code> protocol. Function
                tokens are not copied from the <code>expression</code> so they
                can still be mutated.

                This method can be safely called from multiple threads.
 
    @param      expression
                The expression to be tokenized.
 
    @return     An array of objects that conform to the <code>@link
                //apple_ref/occ/intf/MPToken@/link</code> protocol.
 */
+ (NSArray *)tokenizeExpression:(MPExpression *)expression;

@end
