Archived
1

Implemented Expression Evaluation/Parsing with Proper Error Handling

This commit is contained in:
Kim Wittenburg
2014-09-11 22:17:29 +02:00
parent f791213127
commit 245468a559
16 changed files with 670 additions and 330 deletions

60
MathPad/MPParsedFactor.m Normal file
View File

@@ -0,0 +1,60 @@
//
// MPParsedFactor.m
// MathPad
//
// Created by Kim Wittenburg on 10.09.14.
// Copyright (c) 2014 Kim Wittenburg. All rights reserved.
//
#import "MPParsedFactor.h"
@implementation MPParsedFactor {
NSDecimalNumber *_value;
}
+ (MPParsedFactor *)factorWithDecimalNumber:(NSDecimalNumber *)number
{
return [[MPParsedFactor alloc] initWithDecimalNumber:number];
}
+ (MPParsedFactor *)sinFactorWithFactor:(MPParsedFactor *)factor
{
double value = factor.value.doubleValue;
NSDecimalNumber *actualNumber = [[NSDecimalNumber alloc] initWithDouble:sin(value)];
return [[MPParsedFactor alloc] initWithDecimalNumber:actualNumber];
}
+ (MPParsedFactor *)cosFactorWithFactor:(MPParsedFactor *)factor
{
double value = factor.value.doubleValue;
NSDecimalNumber *actualNumber = [[NSDecimalNumber alloc] initWithDouble:cos(value)];
return [[MPParsedFactor alloc] initWithDecimalNumber:actualNumber];
}
+ (MPParsedFactor *)tanFactorWithFactor:(MPParsedFactor *)factor
{
double value = factor.value.doubleValue;
NSDecimalNumber *actualNumber = [[NSDecimalNumber alloc] initWithDouble:tan(value)];
return [[MPParsedFactor alloc] initWithDecimalNumber:actualNumber];
}
- (instancetype)initWithDecimalNumber:(NSDecimalNumber *)number
{
self = [super init];
if (self) {
_value = number;
}
return self;
}
- (NSDecimalNumber *)value
{
return _value;
}
- (NSString *)description
{
return [NSString stringWithFormat:@"MPParsedFactor<%@>", _value];
}
@end