From 550b7d8ae56636466853d20631e5ad868c29a53e Mon Sep 17 00:00:00 2001 From: Ewan Mellor Date: Sun, 27 Dec 2015 23:10:41 -0800 Subject: [PATCH 1/2] Move PKToken.offset declaration to a +Subclass header file. This means that we're not repeating the same declaration for each PKToken subclass. This removes 13 identical declarations. --- PEGKit.xcodeproj/project.pbxproj | 4 ++++ include/PEGKit/PKToken+Subclass.h | 29 +++++++++++++++++++++++++++++ src/PKCommentState.m | 6 +----- src/PKDelimitState.m | 6 +----- src/PKEmailState.m | 6 +----- src/PKHashtagState.m | 6 +----- src/PKMultiLineCommentState.m | 6 +----- src/PKNumberState.m | 6 +----- src/PKQuoteState.m | 6 +----- src/PKSingleLineCommentState.m | 6 +----- src/PKSymbolState.m | 6 +----- src/PKToken.m | 3 +-- src/PKTwitterState.m | 6 +----- src/PKURLState.m | 6 +----- src/PKWhitespaceState.m | 6 +----- src/PKWordState.m | 6 +----- 16 files changed, 47 insertions(+), 67 deletions(-) create mode 100644 include/PEGKit/PKToken+Subclass.h diff --git a/PEGKit.xcodeproj/project.pbxproj b/PEGKit.xcodeproj/project.pbxproj index bbdd955..105e7fb 100644 --- a/PEGKit.xcodeproj/project.pbxproj +++ b/PEGKit.xcodeproj/project.pbxproj @@ -8,6 +8,7 @@ /* Begin PBXBuildFile section */ 3D0466A918E1D9770022A1BC /* OCMock.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = D37214CA18DF3B0100525058 /* OCMock.framework */; }; + 4032A4C01C3115D0005442DD /* PKToken+Subclass.h in Headers */ = {isa = PBXBuildFile; fileRef = 4032A4BF1C3115D0005442DD /* PKToken+Subclass.h */; settings = {ATTRIBUTES = (Public, ); }; }; D306298218E1ED5D00EF745E /* TDTestScaffold.m in Sources */ = {isa = PBXBuildFile; fileRef = D306298118E1ED5D00EF745E /* TDTestScaffold.m */; }; D3083AB61705F05C00DA6F95 /* elementsAssign.grammar in Resources */ = {isa = PBXBuildFile; fileRef = D3083AB51705F05C00DA6F95 /* elementsAssign.grammar */; }; D3083AB91705F09B00DA6F95 /* ElementAssignParserTest.m in Sources */ = {isa = PBXBuildFile; fileRef = D3083AB81705F09B00DA6F95 /* ElementAssignParserTest.m */; }; @@ -478,6 +479,7 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ + 4032A4BF1C3115D0005442DD /* PKToken+Subclass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "PKToken+Subclass.h"; path = "include/PEGKit/PKToken+Subclass.h"; sourceTree = ""; }; D302272A17020F9400594F16 /* PGClassImplementationTemplate.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = PGClassImplementationTemplate.txt; path = res/PGClassImplementationTemplate.txt; sourceTree = ""; }; D306298118E1ED5D00EF745E /* TDTestScaffold.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TDTestScaffold.m; path = test/TDTestScaffold.m; sourceTree = ""; }; D3083AB51705F05C00DA6F95 /* elementsAssign.grammar */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = elementsAssign.grammar; path = res/elementsAssign.grammar; sourceTree = ""; }; @@ -1161,6 +1163,7 @@ children = ( D3C221C30FFE8C07004514FE /* PKToken.h */, D34BAE950FF9D20900D7773A /* PKToken.m */, + 4032A4BF1C3115D0005442DD /* PKToken+Subclass.h */, D3C221C90FFE8C15004514FE /* PKTokenizer.h */, D34BAE990FF9D20900D7773A /* PKTokenizer.m */, D3C221CC0FFE8C1B004514FE /* PKTokenizerState.h */, @@ -1539,6 +1542,7 @@ D317C0E418D1F4050036BE75 /* PKMultiLineCommentState.h in Headers */, D317C0E718D1F4050036BE75 /* PKTwitterState.h in Headers */, D317C0DF18D1F4050036BE75 /* PKWordState.h in Headers */, + 4032A4C01C3115D0005442DD /* PKToken+Subclass.h in Headers */, D317C0D618D1F4050036BE75 /* PKAssembly.h in Headers */, D317C0E518D1F4050036BE75 /* PKEmailState.h in Headers */, D317C0E818D1F4050036BE75 /* PKHashtagState.h in Headers */, diff --git a/include/PEGKit/PKToken+Subclass.h b/include/PEGKit/PKToken+Subclass.h new file mode 100644 index 0000000..0e284d2 --- /dev/null +++ b/include/PEGKit/PKToken+Subclass.h @@ -0,0 +1,29 @@ +// The MIT License (MIT) +// +// Copyright (c) 2014 Todd Ditchendorf +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#import + +@interface PKToken () + +@property (nonatomic, readwrite) NSUInteger offset; + +@end diff --git a/src/PKCommentState.m b/src/PKCommentState.m index 05e3f21..2d47ea3 100644 --- a/src/PKCommentState.m +++ b/src/PKCommentState.m @@ -22,16 +22,12 @@ #import #import -#import +#import #import #import #import #import "PKSymbolRootNode.h" -@interface PKToken () -@property (nonatomic, readwrite) NSUInteger offset; -@end - @interface PKTokenizerState () - (void)resetWithReader:(PKReader *)r; - (PKTokenizerState *)nextTokenizerStateFor:(PKUniChar)c tokenizer:(PKTokenizer *)t; diff --git a/src/PKDelimitState.m b/src/PKDelimitState.m index a26a1c1..075d12f 100644 --- a/src/PKDelimitState.m +++ b/src/PKDelimitState.m @@ -23,7 +23,7 @@ #import #import #import -#import +#import #import #import #import "PKSymbolRootNode.h" @@ -31,10 +31,6 @@ #import "PKDelimitDescriptorCollection.h" #import "PKDelimitDescriptor.h" -@interface PKToken () -@property (nonatomic, readwrite) NSUInteger offset; -@end - @interface PKTokenizer () - (NSInteger)tokenKindForStringValue:(NSString *)str; @end diff --git a/src/PKEmailState.m b/src/PKEmailState.m index e020775..41612f4 100644 --- a/src/PKEmailState.m +++ b/src/PKEmailState.m @@ -23,13 +23,9 @@ #import #import #import -#import +#import #import -@interface PKToken () -@property (nonatomic, readwrite) NSUInteger offset; -@end - @interface PKTokenizerState () - (void)resetWithReader:(PKReader *)r; - (void)append:(PKUniChar)c; diff --git a/src/PKHashtagState.m b/src/PKHashtagState.m index 435e998..78cfb4a 100644 --- a/src/PKHashtagState.m +++ b/src/PKHashtagState.m @@ -24,11 +24,7 @@ #import #import #import -#import - -@interface PKToken () -@property (nonatomic, readwrite) NSUInteger offset; -@end +#import @interface PKTokenizerState () - (void)resetWithReader:(PKReader *)r; diff --git a/src/PKMultiLineCommentState.m b/src/PKMultiLineCommentState.m index cbf9bcc..273232c 100644 --- a/src/PKMultiLineCommentState.m +++ b/src/PKMultiLineCommentState.m @@ -24,14 +24,10 @@ #import #import #import -#import +#import #import #import "PKSymbolRootNode.h" -@interface PKToken () -@property (nonatomic, readwrite) NSUInteger offset; -@end - @interface PKTokenizerState () - (void)resetWithReader:(PKReader *)r; - (void)append:(PKUniChar)c; diff --git a/src/PKNumberState.m b/src/PKNumberState.m index 917166e..d67add9 100644 --- a/src/PKNumberState.m +++ b/src/PKNumberState.m @@ -22,17 +22,13 @@ #import #import -#import +#import #import #import #import #import #import "PKSymbolRootNode.h" -@interface PKToken () -@property (nonatomic, readwrite) NSUInteger offset; -@end - @interface PKTokenizerState () - (void)resetWithReader:(PKReader *)r; - (PKTokenizerState *)nextTokenizerStateFor:(PKUniChar)c tokenizer:(PKTokenizer *)t; diff --git a/src/PKQuoteState.m b/src/PKQuoteState.m index adf4f97..1204b4c 100644 --- a/src/PKQuoteState.m +++ b/src/PKQuoteState.m @@ -22,13 +22,9 @@ #import #import -#import +#import #import -@interface PKToken () -@property (nonatomic, readwrite) NSUInteger offset; -@end - @interface PKTokenizerState () - (void)resetWithReader:(PKReader *)r; - (void)append:(PKUniChar)c; diff --git a/src/PKSingleLineCommentState.m b/src/PKSingleLineCommentState.m index f491ba0..b9d2404 100644 --- a/src/PKSingleLineCommentState.m +++ b/src/PKSingleLineCommentState.m @@ -24,13 +24,9 @@ #import #import #import -#import +#import #import -@interface PKToken () -@property (nonatomic, readwrite) NSUInteger offset; -@end - @interface PKTokenizerState () - (void)resetWithReader:(PKReader *)r; - (void)append:(PKUniChar)c; diff --git a/src/PKSymbolState.m b/src/PKSymbolState.m index 96fcd03..139bf40 100644 --- a/src/PKSymbolState.m +++ b/src/PKSymbolState.m @@ -21,15 +21,11 @@ // THE SOFTWARE. #import -#import +#import #import #import #import "PKSymbolRootNode.h" -@interface PKToken () -@property (nonatomic, readwrite) NSUInteger offset; -@end - @interface PKTokenizerState () - (void)resetWithReader:(PKReader *)r; - (PKTokenizerState *)nextTokenizerStateFor:(PKUniChar)c tokenizer:(PKTokenizer *)t; diff --git a/src/PKToken.m b/src/PKToken.m index 24f19d1..27c75ac 100644 --- a/src/PKToken.m +++ b/src/PKToken.m @@ -20,7 +20,7 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. -#import +#import #import #import "NSString+PEGKitAdditions.h" @@ -80,7 +80,6 @@ - (BOOL)isEqual:(id)obj ignoringCase:(BOOL)ignoringCase; @property (nonatomic, readwrite) PKTokenType tokenType; @property (nonatomic, readwrite, copy) id value; -@property (nonatomic, readwrite) NSUInteger offset; @property (nonatomic, readwrite) NSUInteger lineNumber; @end diff --git a/src/PKTwitterState.m b/src/PKTwitterState.m index 57e48d3..e0171f2 100644 --- a/src/PKTwitterState.m +++ b/src/PKTwitterState.m @@ -24,13 +24,9 @@ #import #import #import -#import +#import #import -@interface PKToken () -@property (nonatomic, readwrite) NSUInteger offset; -@end - @interface PKTokenizerState () - (void)resetWithReader:(PKReader *)r; - (void)append:(PKUniChar)c; diff --git a/src/PKURLState.m b/src/PKURLState.m index 1a9dc10..2cdf143 100644 --- a/src/PKURLState.m +++ b/src/PKURLState.m @@ -23,16 +23,12 @@ #import #import #import -#import +#import #import // Gruber original // \b(([\w-]+://?|www[.])[^\s()<>]+(?:\([\w\d]+\)|([^[:punct:]\s]|/))) -@interface PKToken () -@property (nonatomic, readwrite) NSUInteger offset; -@end - @interface PKTokenizerState () - (void)resetWithReader:(PKReader *)r; - (void)append:(PKUniChar)c; diff --git a/src/PKWhitespaceState.m b/src/PKWhitespaceState.m index 63e91c1..6cebfc5 100644 --- a/src/PKWhitespaceState.m +++ b/src/PKWhitespaceState.m @@ -23,16 +23,12 @@ #import #import #import -#import +#import #import #define PKTRUE (id)kCFBooleanTrue #define PKFALSE (id)kCFBooleanFalse -@interface PKToken () -@property (nonatomic, readwrite) NSUInteger offset; -@end - @interface PKTokenizer () @property (nonatomic, readwrite) NSUInteger lineNumber; @end diff --git a/src/PKWordState.m b/src/PKWordState.m index fc0f422..5a8e534 100644 --- a/src/PKWordState.m +++ b/src/PKWordState.m @@ -23,16 +23,12 @@ #import #import #import -#import +#import #import #define PKTRUE (id)kCFBooleanTrue #define PKFALSE (id)kCFBooleanFalse -@interface PKToken () -@property (nonatomic, readwrite) NSUInteger offset; -@end - @interface PKTokenizerState () - (void)resetWithReader:(PKReader *)r; - (void)append:(PKUniChar)c; From ac60f6c1e1ed4773b7cf704abd47bea401cfe4ef Mon Sep 17 00:00:00 2001 From: Ewan Mellor Date: Mon, 28 Dec 2015 00:54:04 -0800 Subject: [PATCH 2/2] Move PKTokenizerState internal declarations to a +Subclass header file. This avoids repeating the same declarations for every PKTokenizerState subclass. This removes 15 identical blocks of declarations. --- PEGKit.xcodeproj/project.pbxproj | 4 +++ include/PEGKit/PKTokenizerState+Subclass.h | 36 ++++++++++++++++++++++ src/PKCommentState.m | 7 +---- src/PKDelimitState.m | 11 +------ src/PKEmailState.m | 9 +----- src/PKHashtagState.m | 13 +------- src/PKMultiLineCommentState.m | 9 +----- src/PKNumberState.m | 18 +---------- src/PKQuoteState.m | 9 +----- src/PKSingleLineCommentState.m | 9 +----- src/PKSymbolState.m | 7 +---- src/PKTokenizer.m | 5 +-- src/PKTokenizerState.m | 7 +---- src/PKTwitterState.m | 9 +----- src/PKURLState.m | 9 +----- src/PKWhitespaceState.m | 8 +---- src/PKWordState.m | 8 +---- 17 files changed, 55 insertions(+), 123 deletions(-) create mode 100644 include/PEGKit/PKTokenizerState+Subclass.h diff --git a/PEGKit.xcodeproj/project.pbxproj b/PEGKit.xcodeproj/project.pbxproj index 105e7fb..715b496 100644 --- a/PEGKit.xcodeproj/project.pbxproj +++ b/PEGKit.xcodeproj/project.pbxproj @@ -9,6 +9,7 @@ /* Begin PBXBuildFile section */ 3D0466A918E1D9770022A1BC /* OCMock.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = D37214CA18DF3B0100525058 /* OCMock.framework */; }; 4032A4C01C3115D0005442DD /* PKToken+Subclass.h in Headers */ = {isa = PBXBuildFile; fileRef = 4032A4BF1C3115D0005442DD /* PKToken+Subclass.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4032A4C21C312D78005442DD /* PKTokenizerState+Subclass.h in Headers */ = {isa = PBXBuildFile; fileRef = 4032A4C11C312D78005442DD /* PKTokenizerState+Subclass.h */; settings = {ATTRIBUTES = (Public, ); }; }; D306298218E1ED5D00EF745E /* TDTestScaffold.m in Sources */ = {isa = PBXBuildFile; fileRef = D306298118E1ED5D00EF745E /* TDTestScaffold.m */; }; D3083AB61705F05C00DA6F95 /* elementsAssign.grammar in Resources */ = {isa = PBXBuildFile; fileRef = D3083AB51705F05C00DA6F95 /* elementsAssign.grammar */; }; D3083AB91705F09B00DA6F95 /* ElementAssignParserTest.m in Sources */ = {isa = PBXBuildFile; fileRef = D3083AB81705F09B00DA6F95 /* ElementAssignParserTest.m */; }; @@ -480,6 +481,7 @@ /* Begin PBXFileReference section */ 4032A4BF1C3115D0005442DD /* PKToken+Subclass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "PKToken+Subclass.h"; path = "include/PEGKit/PKToken+Subclass.h"; sourceTree = ""; }; + 4032A4C11C312D78005442DD /* PKTokenizerState+Subclass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "PKTokenizerState+Subclass.h"; path = "include/PEGKit/PKTokenizerState+Subclass.h"; sourceTree = ""; }; D302272A17020F9400594F16 /* PGClassImplementationTemplate.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = PGClassImplementationTemplate.txt; path = res/PGClassImplementationTemplate.txt; sourceTree = ""; }; D306298118E1ED5D00EF745E /* TDTestScaffold.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TDTestScaffold.m; path = test/TDTestScaffold.m; sourceTree = ""; }; D3083AB51705F05C00DA6F95 /* elementsAssign.grammar */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = elementsAssign.grammar; path = res/elementsAssign.grammar; sourceTree = ""; }; @@ -1168,6 +1170,7 @@ D34BAE990FF9D20900D7773A /* PKTokenizer.m */, D3C221CC0FFE8C1B004514FE /* PKTokenizerState.h */, D34BAE9B0FF9D20900D7773A /* PKTokenizerState.m */, + 4032A4C11C312D78005442DD /* PKTokenizerState+Subclass.h */, ); name = tokenizer; sourceTree = SOURCE_ROOT; @@ -1541,6 +1544,7 @@ D3A29E4118E8516F00DC591E /* PKParser+Subclass.h in Headers */, D317C0E418D1F4050036BE75 /* PKMultiLineCommentState.h in Headers */, D317C0E718D1F4050036BE75 /* PKTwitterState.h in Headers */, + 4032A4C21C312D78005442DD /* PKTokenizerState+Subclass.h in Headers */, D317C0DF18D1F4050036BE75 /* PKWordState.h in Headers */, 4032A4C01C3115D0005442DD /* PKToken+Subclass.h in Headers */, D317C0D618D1F4050036BE75 /* PKAssembly.h in Headers */, diff --git a/include/PEGKit/PKTokenizerState+Subclass.h b/include/PEGKit/PKTokenizerState+Subclass.h new file mode 100644 index 0000000..40290ca --- /dev/null +++ b/include/PEGKit/PKTokenizerState+Subclass.h @@ -0,0 +1,36 @@ +// The MIT License (MIT) +// +// Copyright (c) 2014 Todd Ditchendorf +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +@interface PKTokenizerState () + +- (void)resetWithReader:(PKReader *)r; + +- (PKTokenizerState *)nextTokenizerStateFor:(PKUniChar)c tokenizer:(PKTokenizer *)t; + +- (void)append:(PKUniChar)c; +- (void)appendString:(NSString *)s; + +- (NSString *)bufferedString; + +@property (nonatomic) NSUInteger offset; + +@end diff --git a/src/PKCommentState.m b/src/PKCommentState.m index 2d47ea3..ab606b4 100644 --- a/src/PKCommentState.m +++ b/src/PKCommentState.m @@ -22,18 +22,13 @@ #import #import +#import #import #import #import #import #import "PKSymbolRootNode.h" -@interface PKTokenizerState () -- (void)resetWithReader:(PKReader *)r; -- (PKTokenizerState *)nextTokenizerStateFor:(PKUniChar)c tokenizer:(PKTokenizer *)t; -@property (nonatomic) NSUInteger offset; -@end - @interface PKCommentState () @property (nonatomic, retain) PKSymbolRootNode *rootNode; @property (nonatomic, retain) PKSingleLineCommentState *singleLineState; diff --git a/src/PKDelimitState.m b/src/PKDelimitState.m index 075d12f..328c7aa 100644 --- a/src/PKDelimitState.m +++ b/src/PKDelimitState.m @@ -23,6 +23,7 @@ #import #import #import +#import #import #import #import @@ -35,16 +36,6 @@ @interface PKTokenizer () - (NSInteger)tokenKindForStringValue:(NSString *)str; @end -@interface PKTokenizerState () -- (void)resetWithReader:(PKReader *)r; -- (void)append:(PKUniChar)c; -- (void)appendString:(NSString *)s; -- (NSString *)bufferedString; -- (PKTokenizerState *)nextTokenizerStateFor:(PKUniChar)c tokenizer:(PKTokenizer *)t; -- (void)addStartMarker:(NSString *)start endMarker:(NSString *)end allowedCharacterSet:(NSCharacterSet *)set tokenKind:(NSInteger)kind; -@property (nonatomic) NSUInteger offset; -@end - @interface PKDelimitState () @property (nonatomic, retain) PKSymbolRootNode *rootNode; @property (nonatomic, retain) PKDelimitDescriptorCollection *collection; diff --git a/src/PKEmailState.m b/src/PKEmailState.m index 41612f4..62fbddf 100644 --- a/src/PKEmailState.m +++ b/src/PKEmailState.m @@ -23,17 +23,10 @@ #import #import #import +#import #import #import -@interface PKTokenizerState () -- (void)resetWithReader:(PKReader *)r; -- (void)append:(PKUniChar)c; -- (NSString *)bufferedString; -- (PKTokenizerState *)nextTokenizerStateFor:(PKUniChar)c tokenizer:(PKTokenizer *)t; -@property (nonatomic) NSUInteger offset; -@end - @interface PKEmailState () - (BOOL)parseNameFromReader:(PKReader *)r; - (BOOL)parseHostFromReader:(PKReader *)r; diff --git a/src/PKHashtagState.m b/src/PKHashtagState.m index 78cfb4a..407a99e 100644 --- a/src/PKHashtagState.m +++ b/src/PKHashtagState.m @@ -24,20 +24,9 @@ #import #import #import +#import #import -@interface PKTokenizerState () -- (void)resetWithReader:(PKReader *)r; -- (void)append:(PKUniChar)c; -- (NSString *)bufferedString; -- (PKTokenizerState *)nextTokenizerStateFor:(PKUniChar)c tokenizer:(PKTokenizer *)t; -@property (nonatomic) NSUInteger offset; -@end - -@interface PKHashtagState () - -@end - @implementation PKHashtagState - (instancetype)init { diff --git a/src/PKMultiLineCommentState.m b/src/PKMultiLineCommentState.m index 273232c..96f91ba 100644 --- a/src/PKMultiLineCommentState.m +++ b/src/PKMultiLineCommentState.m @@ -24,18 +24,11 @@ #import #import #import +#import #import #import #import "PKSymbolRootNode.h" -@interface PKTokenizerState () -- (void)resetWithReader:(PKReader *)r; -- (void)append:(PKUniChar)c; -- (void)appendString:(NSString *)s; -- (NSString *)bufferedString; -@property (nonatomic) NSUInteger offset; -@end - @interface PKCommentState () @property (nonatomic, retain) PKSymbolRootNode *rootNode; @end diff --git a/src/PKNumberState.m b/src/PKNumberState.m index d67add9..34ff061 100644 --- a/src/PKNumberState.m +++ b/src/PKNumberState.m @@ -24,27 +24,12 @@ #import #import #import +#import #import #import #import #import "PKSymbolRootNode.h" -@interface PKTokenizerState () -- (void)resetWithReader:(PKReader *)r; -- (PKTokenizerState *)nextTokenizerStateFor:(PKUniChar)c tokenizer:(PKTokenizer *)t; - -- (PKUniChar)checkForPositiveNegativeFromReader:(PKReader *)r startingWith:(PKUniChar)cin; -- (PKUniChar)checkForPrefixFromReader:(PKReader *)r startingWith:(PKUniChar)cin; -- (PKUniChar)checkForSuffixFromReader:(PKReader *)r startingWith:(PKUniChar)cin tokenizer:(PKTokenizer *)t; -- (void)parseAllDigitsFromReader:(PKReader *)r startingWith:(PKUniChar)cin; -- (PKToken *)checkForErroneousMatchFromReader:(PKReader *)r tokenizer:(PKTokenizer *)t; -- (void)applySuffixFromReader:(PKReader *)r; - -- (void)append:(PKUniChar)c; -- (void)appendString:(NSString *)s; -- (NSString *)bufferedString; -@end - @interface PKNumberState () - (double)absorbDigitsFromReader:(PKReader *)r; - (double)value; @@ -67,7 +52,6 @@ - (BOOL)isValidSeparator:(PKUniChar)sepChar forRadix:(NSUInteger)radix; @property (nonatomic, retain) NSString *prefix; @property (nonatomic, retain) NSString *suffix; -@property (nonatomic) NSUInteger offset; @end @implementation PKNumberState { diff --git a/src/PKQuoteState.m b/src/PKQuoteState.m index 1204b4c..61cee12 100644 --- a/src/PKQuoteState.m +++ b/src/PKQuoteState.m @@ -23,16 +23,9 @@ #import #import #import +#import #import -@interface PKTokenizerState () -- (void)resetWithReader:(PKReader *)r; -- (void)append:(PKUniChar)c; -- (NSString *)bufferedString; -- (PKTokenizerState *)nextTokenizerStateFor:(PKUniChar)c tokenizer:(PKTokenizer *)t; -@property (nonatomic) NSUInteger offset; -@end - @implementation PKQuoteState - (instancetype)init { diff --git a/src/PKSingleLineCommentState.m b/src/PKSingleLineCommentState.m index b9d2404..8460e70 100644 --- a/src/PKSingleLineCommentState.m +++ b/src/PKSingleLineCommentState.m @@ -25,16 +25,9 @@ #import #import #import +#import #import -@interface PKTokenizerState () -- (void)resetWithReader:(PKReader *)r; -- (void)append:(PKUniChar)c; -- (void)appendString:(NSString *)s; -- (NSString *)bufferedString; -@property (nonatomic) NSUInteger offset; -@end - @interface PKSingleLineCommentState () - (void)addStartMarker:(NSString *)start; - (void)removeStartMarker:(NSString *)start; diff --git a/src/PKSymbolState.m b/src/PKSymbolState.m index 139bf40..d2fd0ea 100644 --- a/src/PKSymbolState.m +++ b/src/PKSymbolState.m @@ -24,14 +24,9 @@ #import #import #import +#import #import "PKSymbolRootNode.h" -@interface PKTokenizerState () -- (void)resetWithReader:(PKReader *)r; -- (PKTokenizerState *)nextTokenizerStateFor:(PKUniChar)c tokenizer:(PKTokenizer *)t; -@property (nonatomic) NSUInteger offset; -@end - @interface PKSymbolState () - (PKToken *)symbolTokenWith:(PKUniChar)cin; - (PKToken *)symbolTokenWithSymbol:(NSString *)s; diff --git a/src/PKTokenizer.m b/src/PKTokenizer.m index 1d1cafd..c0d8253 100644 --- a/src/PKTokenizer.m +++ b/src/PKTokenizer.m @@ -21,6 +21,7 @@ // THE SOFTWARE. #import +#import #define STATE_COUNT 256 @@ -28,10 +29,6 @@ @interface PKToken () @property (nonatomic, readwrite) NSUInteger lineNumber; @end -@interface PKTokenizerState () -- (PKTokenizerState *)nextTokenizerStateFor:(PKUniChar)c tokenizer:(PKTokenizer *)t; -@end - @interface PKTokenizer () - (instancetype)initWithString:(NSString *)str stream:(NSInputStream *)stm; - (PKTokenizerState *)tokenizerStateFor:(PKUniChar)c; diff --git a/src/PKTokenizerState.m b/src/PKTokenizerState.m index d1569ef..0f6fe6e 100644 --- a/src/PKTokenizerState.m +++ b/src/PKTokenizerState.m @@ -21,6 +21,7 @@ // THE SOFTWARE. #import +#import #import #import @@ -31,14 +32,8 @@ - (PKTokenizerState *)defaultTokenizerStateFor:(PKUniChar)c; @end @interface PKTokenizerState () -- (void)resetWithReader:(PKReader *)r; -- (void)append:(PKUniChar)c; -- (void)appendString:(NSString *)s; -- (NSString *)bufferedString; -- (PKTokenizerState *)nextTokenizerStateFor:(PKUniChar)c tokenizer:(PKTokenizer *)t; @property (nonatomic, retain) NSMutableString *stringbuf; -@property (nonatomic) NSUInteger offset; @property (nonatomic, retain) NSMutableArray *fallbackStates; @end diff --git a/src/PKTwitterState.m b/src/PKTwitterState.m index e0171f2..0e52050 100644 --- a/src/PKTwitterState.m +++ b/src/PKTwitterState.m @@ -24,17 +24,10 @@ #import #import #import +#import #import #import -@interface PKTokenizerState () -- (void)resetWithReader:(PKReader *)r; -- (void)append:(PKUniChar)c; -- (NSString *)bufferedString; -- (PKTokenizerState *)nextTokenizerStateFor:(PKUniChar)c tokenizer:(PKTokenizer *)t; -@property (nonatomic) NSUInteger offset; -@end - @interface PKTwitterState () @end diff --git a/src/PKURLState.m b/src/PKURLState.m index 2cdf143..9ef3cee 100644 --- a/src/PKURLState.m +++ b/src/PKURLState.m @@ -23,20 +23,13 @@ #import #import #import +#import #import #import // Gruber original // \b(([\w-]+://?|www[.])[^\s()<>]+(?:\([\w\d]+\)|([^[:punct:]\s]|/))) -@interface PKTokenizerState () -- (void)resetWithReader:(PKReader *)r; -- (void)append:(PKUniChar)c; -- (NSString *)bufferedString; -- (PKTokenizerState *)nextTokenizerStateFor:(PKUniChar)c tokenizer:(PKTokenizer *)t; -@property (nonatomic) NSUInteger offset; -@end - @interface PKURLState () - (BOOL)parseWWWFromReader:(PKReader *)r; - (BOOL)parseSchemeFromReader:(PKReader *)r; diff --git a/src/PKWhitespaceState.m b/src/PKWhitespaceState.m index 6cebfc5..2e1cb03 100644 --- a/src/PKWhitespaceState.m +++ b/src/PKWhitespaceState.m @@ -23,6 +23,7 @@ #import #import #import +#import #import #import @@ -33,13 +34,6 @@ @interface PKTokenizer () @property (nonatomic, readwrite) NSUInteger lineNumber; @end -@interface PKTokenizerState () -- (void)resetWithReader:(PKReader *)r; -- (void)append:(PKUniChar)c; -- (NSString *)bufferedString; -@property (nonatomic) NSUInteger offset; -@end - @interface PKWhitespaceState () @property (nonatomic, retain) NSMutableArray *whitespaceChars; @end diff --git a/src/PKWordState.m b/src/PKWordState.m index 5a8e534..ddb7345 100644 --- a/src/PKWordState.m +++ b/src/PKWordState.m @@ -23,19 +23,13 @@ #import #import #import +#import #import #import #define PKTRUE (id)kCFBooleanTrue #define PKFALSE (id)kCFBooleanFalse -@interface PKTokenizerState () -- (void)resetWithReader:(PKReader *)r; -- (void)append:(PKUniChar)c; -- (NSString *)bufferedString; -@property (nonatomic) NSUInteger offset; -@end - @interface PKWordState () - (BOOL)isWordChar:(PKUniChar)c;