From f8ee4a38b4cc7d8b5a96e5a8d38891f16fdb147f Mon Sep 17 00:00:00 2001 From: iska Date: Wed, 27 May 2015 00:59:10 +0200 Subject: [PATCH] Add HTML Node Filter protocol --- HTMLKit.xcodeproj/project.pbxproj | 4 ++++ HTMLKit/HTMLNodeFilter.h | 36 +++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 HTMLKit/HTMLNodeFilter.h diff --git a/HTMLKit.xcodeproj/project.pbxproj b/HTMLKit.xcodeproj/project.pbxproj index 408e504..d906780 100644 --- a/HTMLKit.xcodeproj/project.pbxproj +++ b/HTMLKit.xcodeproj/project.pbxproj @@ -69,6 +69,7 @@ 624493AC19CD0CBE00BCDDF4 /* HTMLToken.h in Headers */ = {isa = PBXBuildFile; fileRef = 624493AA19CD0CBE00BCDDF4 /* HTMLToken.h */; }; 624493AD19CD0CBE00BCDDF4 /* HTMLToken.m in Sources */ = {isa = PBXBuildFile; fileRef = 624493AB19CD0CBE00BCDDF4 /* HTMLToken.m */; }; 624493AE19CD0CBE00BCDDF4 /* HTMLToken.m in Sources */ = {isa = PBXBuildFile; fileRef = 624493AB19CD0CBE00BCDDF4 /* HTMLToken.m */; }; + 6247A9471B152F8C00CCF25C /* HTMLNodeFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = 6247A9461B152F8C00CCF25C /* HTMLNodeFilter.h */; }; 624AC8FF19FBF59800BD3C4A /* HTMLTokens.h in Headers */ = {isa = PBXBuildFile; fileRef = 624AC8FE19FBF4F700BD3C4A /* HTMLTokens.h */; }; 624AC90119FBF9ED00BD3C4A /* HTMLKitTokenizerTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 624AC90019FBF9ED00BD3C4A /* HTMLKitTokenizerTests.m */; }; 624AC90219FBF9ED00BD3C4A /* HTMLKitTokenizerTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 624AC90019FBF9ED00BD3C4A /* HTMLKitTokenizerTests.m */; }; @@ -212,6 +213,7 @@ 624493A919CCE84A00BCDDF4 /* HTMLTokenizerStates.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HTMLTokenizerStates.h; sourceTree = ""; }; 624493AA19CD0CBE00BCDDF4 /* HTMLToken.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HTMLToken.h; sourceTree = ""; }; 624493AB19CD0CBE00BCDDF4 /* HTMLToken.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HTMLToken.m; sourceTree = ""; }; + 6247A9461B152F8C00CCF25C /* HTMLNodeFilter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HTMLNodeFilter.h; sourceTree = ""; }; 624AC8FE19FBF4F700BD3C4A /* HTMLTokens.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HTMLTokens.h; sourceTree = ""; }; 624AC90019FBF9ED00BD3C4A /* HTMLKitTokenizerTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HTMLKitTokenizerTests.m; sourceTree = ""; }; 624AC90419FBFE8A00BD3C4A /* html5lib-tests */ = {isa = PBXFileReference; lastKnownFileType = folder; path = "html5lib-tests"; sourceTree = ""; }; @@ -333,6 +335,7 @@ 62362A3B1A9FA70400301989 /* HTMLText.m */, 623406DF1ADB04F9004677A3 /* HTMLTemplate.h */, 623406E01ADB04F9004677A3 /* HTMLTemplate.m */, + 6247A9461B152F8C00CCF25C /* HTMLNodeFilter.h */, 623916C11AC707250066B4FE /* HTMLNodeTreeEnumerator.h */, 623916C21AC707250066B4FE /* HTMLNodeTreeEnumerator.m */, 6238C9831AB8D6330006512E /* HTMLKitDOMExceptions.h */, @@ -563,6 +566,7 @@ 623857911A9E772B003A45D9 /* HTMLDocument.h in Headers */, 624493A619CCC54100BCDDF4 /* HTMLTokenizer.h in Headers */, 62AE593A19F97E1C0043F069 /* HTMLDOCTYPEToken.h in Headers */, + 6247A9471B152F8C00CCF25C /* HTMLNodeFilter.h in Headers */, 623424881AB467B200726190 /* HTMLOrderedDictionary.h in Headers */, 625A150419C783EB00AD0C32 /* HTMLKit.h in Headers */, 625A150819C78ABA00AD0C32 /* HTMLInputStreamReader.h in Headers */, diff --git a/HTMLKit/HTMLNodeFilter.h b/HTMLKit/HTMLNodeFilter.h new file mode 100644 index 0000000..2f302f2 --- /dev/null +++ b/HTMLKit/HTMLNodeFilter.h @@ -0,0 +1,36 @@ +// +// HTMLNodeFilter.h +// HTMLKit +// +// Created by Iska on 27/05/15. +// Copyright (c) 2015 BrainCookie. All rights reserved. +// + +#import + +typedef NS_ENUM(unsigned short, HTMLNodeFilterValue) +{ + HTMLNodeFilterAccept = 1, + HTMLNodeFilterReject = 2, + HTMLNodeFilterSkip = 3 +} HTMLNodeFilterValue; + +typedef NS_ENUM(unsigned long, HTMLNodeFilterShowOptions) +{ + HTMLNodeFilterShowAll = 0xFFFFFFFF; + HTMLNodeFilterShowElement = 0x1; + HTMLNodeFilterShowText = 0x4; + HTMLNodeFilterShowProcessingInstruction = 0x40; + HTMLNodeFilterShowComment = 0x80; + HTMLNodeFilterShowDocument = 0x100; + HTMLNodeFilterShowDocumentType = 0x200; + HTMLNodeFilterShowDocumentFragment = 0x400; +} HTMLNodeFilterShowOptions; + +@class HTMLNode; + +@protocol HTMLNodeFilter + +- (HTMLNodeFilterValue)acceptNode:(HTMLNode *)node; + +@end