Add methods to emit HTML tokens in the Tokenizer class

This commit is contained in:
iska
2014-09-22 00:19:18 +02:00
parent 5724912986
commit b74c67498b
+33
View File
@@ -65,6 +65,39 @@
{
_currentState = state;
}
#pragma mark - Emits
- (void)emitToken:(HTMLToken *)token
{
[_tokens addObject:token];
}
- (void)emitEOFToken
{
[self emitToken:[HTMLEOFToken new]];
}
- (void)emitCharacterToken:(UTF32Char)character
{
HTMLEOFToken *previousToken = [_tokens lastObject];
if ([previousToken isCharacterToken]) {
[(HTMLCharacterToken *)previousToken appendCharacter:character];
} else {
[self emitToken:[[HTMLCharacterToken alloc] initWithCharacter:character]];
}
}
- (void)emitParseError:(NSString *)format, ... NS_FORMAT_FUNCTION(1, 2)
{
va_list args;
va_start(args, format);
NSString *message = [[NSString alloc] initWithFormat:format arguments:args];
va_end(args);
HTMLParseErrorToken *token = [[HTMLParseErrorToken alloc] initWithReasonMessage:message];
[self emitToken:token];
}
#pragma mark - States
- (void)HTMLTokenizerStateData