// // MPToken.h // MathPad // // Created by Kim Wittenburg on 19.09.14. // Copyright (c) 2014 Kim Wittenburg. All rights reserved. // #import typedef NS_ENUM(NSUInteger, MPTokenType) { MPEOFToken = 0, MPMultiplicationSymbolToken, MPOperatorListToken, MPSinToken, MPCosToken, MPTanToken, MPNumberToken, MPVariableToken, MPFactorialToken, MPEqualsToken, MPGenericFunctionToken, MPWhitespaceToken, MPUnidentifiedToken, MPCompoundToken }; @protocol MPToken - (MPTokenType)tokenType; - (NSRange)range; - (NSString *)stringValue; @end @interface MPToken : NSObject - (instancetype)initEOFTokenAtLocation:(NSUInteger)eofLocation; - (instancetype)initWithRange:(NSRange)range inString:(NSString *)input; - (instancetype)initWithTokenType:(MPTokenType)tokenType range:(NSRange)range inString:(NSString *)input; @end @interface MPToken (MPTokenExtension) // Methods are only available for respective token type - (NSUInteger)numberOfOperators; - (NSDecimalNumber *)operatorValue; - (NSDecimalNumber *)number; - (NSString *)variable; @end