// // MPElementParser.h // MathPad // // Created by Kim Wittenburg on 10.09.14. // Copyright (c) 2014 Kim Wittenburg. All rights reserved. // #import #import "MPParsedProduct.h" #import "MPParseError.h" #define MPMaximumOperatorChainLength NSUIntegerMax @interface MPElementParser : NSObject + (BOOL)isUsingDefaultValuesFromUserDefaults; + (void)setUsingDefaultValuesFromUserDefaults:(BOOL)flag; @property (nonatomic) BOOL allowsImplicitMultiplications; // wether 2 3 is equal to 6 or error // Default value uses the key "..." in NSUserDefaults or ... if the key does not exist. @property (nonatomic) NSUInteger maximumOperatorChainLength; // +--++-5 -> Chain length: 6, 2 default (sign of number and operator) (0 is invalid?) @property (nonatomic) NSUInteger maximumOperatorChainLengthInMultiplication; // Default: 1, 0 means actually 0 @property (nonatomic) NSUInteger maximumOperatorChainLengthInFunction; // For sin, cos, tan. Default: 1 - (NSArray *)parseElement:(NSString *)string previousProduct:(MPParsedProduct *)previousProduct nextFactor:(id)nextFactor definesVariable:(BOOL)flag definedVariable:(NSString *__autoreleasing *)variableName error:(out MPParseError *__autoreleasing *)error; - (NSArray *)parseElement:(NSString *)string previousProduct:(MPParsedProduct *)previousProduct nextFactor:(id)nextFactor error:(out MPParseError *__autoreleasing *)error; @end