Implemented Evaluation
This commit is contained in:
@@ -8,32 +8,37 @@
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
// DEBUG STUFF
|
||||
// Simple Operator: +/-/*
|
||||
// Simple Factor: * 5.4 * / * 5,4 / 5,4 * / 5,4
|
||||
// Independant Math: -1+2-3
|
||||
#import "MPParseError.h"
|
||||
|
||||
@interface MPParsedElement : NSObject <NSCopying>
|
||||
|
||||
@property (nonatomic, copy) NSString *definedVariable;
|
||||
@property (nonatomic) NSUInteger afterVariableDefinitionIndex; // Only set if defineVariable != nil
|
||||
|
||||
@property (nonatomic) BOOL isFactor;
|
||||
@property (nonatomic) double factor;
|
||||
|
||||
@property (nonatomic, strong) NSMutableArray *summands;
|
||||
// If isFactor is YES this is the factor otherwise it is the independant summant
|
||||
// of the element (may be 0).
|
||||
@property (nonatomic) NSDecimalNumber *value;
|
||||
|
||||
@property (nonatomic) double prefixMultiplicator;
|
||||
@property (nonatomic) BOOL hasPrefixMultiplicator;
|
||||
@property (nonatomic, getter = isPrefixOperatorExplicit) BOOL prefixOperatorExplicit;
|
||||
@property (nonatomic) double suffixMultiplicator;
|
||||
@property (nonatomic) BOOL hasSuffixMultiplicator;
|
||||
@property (nonatomic, getter = isPrefixValueExplicit) BOOL prefixValueExplicit;
|
||||
@property (nonatomic) NSDecimalNumber *prefixMultiplicator;
|
||||
|
||||
// No error checking done. The string parsed may for example end with an operator
|
||||
- (double)valueAtBeginning;
|
||||
- (double)valueAtEnd;
|
||||
- (double)standaloneValue;
|
||||
@property (nonatomic, getter = isSuffixOperatorExplicit) BOOL suffixOperatorExplicit;
|
||||
@property (nonatomic, getter = isSuffixValueExplicit) BOOL suffixValueExplicit;
|
||||
@property (nonatomic) NSDecimalNumber *suffixMultiplicator;
|
||||
@property (nonatomic) NSUInteger suffixIndex;
|
||||
|
||||
// No error checking done
|
||||
- (NSDecimalNumber *)valueAtBeginning;
|
||||
- (NSDecimalNumber *)valueAtEnd;
|
||||
- (NSDecimalNumber *)standaloneValue;
|
||||
|
||||
// For error checking
|
||||
- (BOOL)isValidElementAtBeginning;
|
||||
- (BOOL)isValidElementInBetween;
|
||||
- (BOOL)isValidElementAtEnd;
|
||||
- (BOOL)isValidElementAtBeginning:(MPParseError **)error;
|
||||
- (BOOL)isValidStandaloneElement:(MPParseError **)error;
|
||||
- (BOOL)isValidElementAtEnd:(MPParseError **)error;
|
||||
- (BOOL)isValidVariableDefinition:(MPParseError **)error;
|
||||
|
||||
@end
|
||||
|
||||
Reference in New Issue
Block a user