Add convenience methods to cast HTML token to the appropriate type

This commit is contained in:
iska
2015-02-22 01:46:42 +01:00
parent 4e3c758f8c
commit aae4401167
2 changed files with 44 additions and 0 deletions
+14
View File
@@ -8,6 +8,13 @@
#import <Foundation/Foundation.h>
@class HTMLDOCTYPEToken;
@class HTMLStartTagToken;
@class HTMLEndTagToken;
@class HTMLCommentToken;
@class HTMLCharacterToken;
@class HTMLParseErrorToken;
NS_INLINE BOOL nilOrEqual(id first, id second) {
return (first == nil && second == nil) || ([first isEqual:second]);
}
@@ -35,4 +42,11 @@ typedef NS_ENUM(NSUInteger, HTMLTokenType)
- (BOOL)isEOFToken;
- (BOOL)isParseError;
- (HTMLDOCTYPEToken *)asDoctypeToken;
- (HTMLStartTagToken *)asStartTagToken;
- (HTMLEndTagToken *)asEndTagToken;
- (HTMLCommentToken *)asCommentToken;
- (HTMLCharacterToken *)asCharacterToken;
- (HTMLParseErrorToken *)asParseError;
@end
+30
View File
@@ -53,4 +53,34 @@
return _type == HTMLTokenTypeParseError;
}
- (HTMLDOCTYPEToken *)asDoctypeToken
{
return (HTMLDOCTYPEToken *)self;
}
- (HTMLStartTagToken *)asStartTagToken
{
return (HTMLStartTagToken *)self;
}
- (HTMLEndTagToken *)asEndTagToken
{
return (HTMLEndTagToken *)self;
}
- (HTMLCommentToken *)asCommentToken
{
return (HTMLCommentToken *)self;
}
- (HTMLCharacterToken *)asCharacterToken
{
return (HTMLCharacterToken *)self;
}
- (HTMLParseErrorToken *)asParseError
{
return (HTMLParseErrorToken *)self;
}
@end