Implemented Expression Evaluation/Parsing with Proper Error Handling
This commit is contained in:
@@ -2,17 +2,36 @@
|
||||
// MPElementParser.h
|
||||
// MathPad
|
||||
//
|
||||
// Created by Kim Wittenburg on 06.09.14.
|
||||
// Created by Kim Wittenburg on 10.09.14.
|
||||
// Copyright (c) 2014 Kim Wittenburg. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "MPParsedElement.h"
|
||||
#import "MPParsedProduct.h"
|
||||
#import "MPParseError.h"
|
||||
|
||||
#define MPMaximumOperatorChainLength NSUIntegerMax
|
||||
|
||||
@interface MPElementParser : NSObject
|
||||
|
||||
- (MPParsedElement *)parseElement:(NSString *)string error:(MPParseError *__autoreleasing *)error;
|
||||
+ (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:(MPParsedFactor *)nextFactor
|
||||
definesVariable:(BOOL)flag
|
||||
definedVariable:(NSString *__autoreleasing *)variableName
|
||||
error:(out MPParseError *__autoreleasing *)error;
|
||||
- (NSArray *)parseElement:(NSString *)string
|
||||
previousProduct:(MPParsedProduct *)previousProduct
|
||||
nextFactor:(MPParsedFactor *)nextFactor
|
||||
error:(out MPParseError *__autoreleasing *)error;
|
||||
|
||||
@end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user