diff options
Diffstat (limited to 'examples/objc/PrenotCalculator/Equation.m')
-rw-r--r-- | examples/objc/PrenotCalculator/Equation.m | 108 |
1 files changed, 0 insertions, 108 deletions
diff --git a/examples/objc/PrenotCalculator/Equation.m b/examples/objc/PrenotCalculator/Equation.m deleted file mode 100644 index 2bf8f5f67c..0000000000 --- a/examples/objc/PrenotCalculator/Equation.m +++ /dev/null @@ -1,108 +0,0 @@ -// Copyright 2015 The Bazel Authors. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#import "Equation.h" - -@implementation Equation { - NSMutableArray *_children; -} - -@synthesize operation = _operation; - -- (id)init { - [self doesNotRecognizeSelector:_cmd]; - return nil; -} - -- (id)initWithOperation:(Operation)operation { - self = [super init]; - if (self) { - _children = [NSMutableArray array]; - _operation = operation; - } - return self; -} - -- (NSArray *)children { - return [_children copy]; -} - -- (void)addExpressionAsChild:(Expression *)child { - [_children addObject:child]; -} - -- (double)calculate { - if ([_children count] == 1) { - return (_operation == kSubtract) - ? -[_children[0] calculate] : [_children[0] calculate]; - } else if ([_children count] == 0) { - return (_operation == kSubtract || _operation == kAdd) ? 0 : 1; - } - double value = [_children[0] calculate]; - for (Equation *child in [_children subarrayWithRange: - NSMakeRange(1, [_children count] - 1)]) { - double childValue = [child calculate]; - switch (_operation) { - case kAdd: - value += childValue; - break; - case kSubtract: - value -= childValue; - break; - case kMultiply: - value *= childValue; - break; - case kDivide: - value /= childValue; - break; - } - } - return value; -} - -- (NSString *)description { - NSMutableString *result = [[NSMutableString alloc] init]; - [result appendString:@"("]; - switch (_operation) { - case kAdd: - [result appendString:@"+"]; - break; - case kSubtract: - [result appendString:@"-"]; - break; - case kMultiply: - [result appendString:@"*"]; - break; - case kDivide: - [result appendString:@"/"]; - break; - } - for (Equation *child in _children) { - [result appendString:@" "]; - [result appendString:[child description]]; - } - [result appendString:@")"]; - return [result copy]; -} - -- (BOOL)isEqual:(id)object { - if (![object isKindOfClass:[self class]]) { - return NO; - } - Equation *other = object; - return other->_operation == _operation && - [other->_children isEqual:_children]; -} - -@end |