aboutsummaryrefslogtreecommitdiffhomepage
path: root/examples/objc/PrenotCalculator/Equation.m
diff options
context:
space:
mode:
Diffstat (limited to 'examples/objc/PrenotCalculator/Equation.m')
-rw-r--r--examples/objc/PrenotCalculator/Equation.m108
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