48 lines
1.2 KiB
Objective-C
48 lines
1.2 KiB
Objective-C
//
|
|
// MPRange.h
|
|
// MathPad
|
|
//
|
|
// Created by Kim Wittenburg on 18.04.14.
|
|
// Copyright (c) 2014 Kim Wittenburg. All rights reserved.
|
|
//
|
|
|
|
#import "MPExpression.h"
|
|
|
|
@interface MPRangePath : NSObject <NSCopying, NSCoding>
|
|
|
|
#pragma mark Creation Methods
|
|
|
|
- (instancetype)init;
|
|
- (instancetype)initWithLocation:(NSIndexPath *)location
|
|
length:(NSUInteger)length;
|
|
- (instancetype)initWithRange:(NSRange)aRange;
|
|
|
|
+ (instancetype)emptyRangePath;
|
|
+ (instancetype)rangePathWithLocation:(NSIndexPath *)location
|
|
length:(NSUInteger)length;
|
|
+ (instancetype)rangePathWithRange:(NSRange)aRange;
|
|
|
|
#pragma mark Properties
|
|
|
|
@property (nonatomic, strong) NSIndexPath *location;
|
|
@property (nonatomic) NSUInteger length;
|
|
|
|
- (NSIndexPath *)maxRangePath;
|
|
- (NSRange)rangeAtLastIndex;
|
|
|
|
#pragma mark Working with Ranges
|
|
|
|
- (BOOL)containsRangePath:(MPRangePath *)aRangePath;
|
|
- (BOOL)containsLocation:(NSIndexPath *)location;
|
|
|
|
- (BOOL)isEqual:(id)object;
|
|
- (BOOL)isEqualToRangePath:(MPRangePath *)aRangePath;
|
|
|
|
@end
|
|
|
|
@interface MPExpression (MPRangeExtension)
|
|
|
|
- (MPExpression *)subexpressionWithRangePath:(MPRangePath *)aRangePath; // If location points to expression (in function) nil is returned
|
|
|
|
@end
|