// // HTMLTokenizer.h // HTMLKit // // Created by Iska on 19/09/14. // Copyright (c) 2014 BrainCookie. All rights reserved. // ///------------------------------------------------------ /// HTMLKit private header ///------------------------------------------------------ #import #import "HTMLToken.h" #import "HTMLTokenizerStates.h" @class HTMLParser; /** Typedef for the parse error callback block. @param token The parse error token. */ typedef void (^ HTMLTokenizerParseErrorCallback)(HTMLParseErrorToken *token); /** * HTML Tokenizer * https://html.spec.whatwg.org/multipage/syntax.html#tokenization */ @interface HTMLTokenizer : NSEnumerator /** @brief The underlying string with which this tokenizer was initialized. */ @property (nonatomic, readonly) NSString *string; /** The current tokenizer state. @see HTMLTokenizerState */ @property (nonatomic, assign) HTMLTokenizerState state; /** The associated HTML Parser instance. @see HTMLParser */ @property (nonatomic, weak) HTMLParser *parser; /** An error callback block, which gets called when encountering parse errors while tokenizing the stream Parse error tokens are dropped if the callback is `nil`. */ @property (nonatomic, copy) HTMLTokenizerParseErrorCallback parseErrorCallback; /** Initializes a new Tokenizer with the given string. @param string The HTML string @return A new instance of the Tokenizer. */ - (instancetype)initWithString:(NSString *)string; @end