diff --git a/HTMLKit/HTMLTokenizer.h b/HTMLKit/HTMLTokenizer.h index b9be8de..359404d 100644 --- a/HTMLKit/HTMLTokenizer.h +++ b/HTMLKit/HTMLTokenizer.h @@ -17,14 +17,11 @@ @class HTMLParser; -@interface HTMLTokenizer : NSObject +@interface HTMLTokenizer : NSEnumerator @property (nonatomic, assign) HTMLTokenizerState state; @property (nonatomic, weak, readonly) HTMLParser *parser; - (instancetype)initWithString:(NSString *)string; -- (HTMLToken *)nextToken; -- (NSArray *)allTokens; - @end diff --git a/HTMLKit/HTMLTokenizer.m b/HTMLKit/HTMLTokenizer.m index 953bfe8..de9210a 100644 --- a/HTMLKit/HTMLTokenizer.m +++ b/HTMLKit/HTMLTokenizer.m @@ -45,6 +45,7 @@ BOOL _eof; } +@property (nonatomic, weak) HTMLParser *parser; @end @implementation HTMLTokenizer @@ -82,7 +83,7 @@ #pragma mark - State Machine -- (HTMLToken *)nextToken +- (id)nextObject { while (_eof == NO && _tokens.count == 0) { [self read]; @@ -94,7 +95,7 @@ return nextToken; } -- (NSArray *)allTokens +- (NSArray *)allObjects { while (_eof == NO) { [self read]; @@ -126,27 +127,6 @@ [self switchToState:state]; } -#pragma mark - Fast Enumeration - -- (NSUInteger)countByEnumeratingWithState:(NSFastEnumerationState *)state objects:(__unsafe_unretained id [])buffer count:(NSUInteger)len -{ - if (state->state == 0) { - state->mutationsPtr = &state->extra[0]; - state->state = 1; - } - - HTMLToken *nextToken = [self nextToken]; - - if (nextToken == nil) { - return 0; - } - - __unsafe_unretained const id *const_ptr = (__unsafe_unretained id *)(__bridge void *)nextToken; - state->itemsPtr = (__typeof__(state->itemsPtr))const_ptr; - - return 1; -} - #pragma mark - Emits - (void)emitToken:(HTMLToken *)token diff --git a/HTMLKitTests/HTMLTokenizerTests.m b/HTMLKitTests/HTMLTokenizerTests.m index d5a369b..c570363 100644 --- a/HTMLKitTests/HTMLTokenizerTests.m +++ b/HTMLKitTests/HTMLTokenizerTests.m @@ -57,7 +57,7 @@ static NSString * const TOKENIZER = @"tokenizer"; tokenizer.state = [state integerValue]; NSArray *expectedTokens = test.output; - NSArray *tokens = [tokenizer allTokens]; + NSArray *tokens = [tokenizer allObjects]; XCTAssertEqualObjects(tokens, expectedTokens, @"%@", test.title); } } @@ -145,7 +145,7 @@ static NSString * const TOKENIZER = @"tokenizer"; id token = nil; do { - token = [tokenizer nextToken]; + token = [tokenizer nextObject]; } while (token != nil); }]; }