Skip to content

Commit

Permalink
Missing hash methods
Browse files Browse the repository at this point in the history
  • Loading branch information
beelsebob committed Mar 13, 2011
1 parent 122d3bb commit 7b4b28d
Show file tree
Hide file tree
Showing 11 changed files with 46 additions and 11 deletions.
2 changes: 1 addition & 1 deletion CoreParse/CoreParse.h
Expand Up @@ -13,7 +13,7 @@
#import "CPTokenRecogniser.h"
#import "CPKeywordRecogniser.h"
#import "CPNumberRecogniser.h"
#import "CPWhiteSpaceRecogniser.h"
#import "CPWhitespaceRecogniser.h"
#import "CPIdentifierRecogniser.h"
#import "CPQuotedRecogniser.h"

Expand Down
2 changes: 1 addition & 1 deletion CoreParse/Grammar/CPGrammar.m
Expand Up @@ -12,7 +12,7 @@
#import "CPTokenStream.h"
#import "CPKeywordRecogniser.h"
#import "CPNumberRecogniser.h"
#import "CPWhiteSpaceRecogniser.h"
#import "CPWhitespaceRecogniser.h"
#import "CPQuotedRecogniser.h"
#import "CPIdentifierRecogniser.h"
#import "CPSLRParser.h"
Expand Down
Expand Up @@ -64,7 +64,7 @@ - (CPToken *)recogniseTokenInString:(NSString *)tokenString currentTokenPosition
NSScanner *scanner = [NSScanner scannerWithString:tokenString];
[scanner setScanLocation:*tokenPosition + 1];
[scanner setCharactersToBeSkipped:nil];
BOOL success = [scanner scanUpToCharactersFromSet:[idCharacters invertedSet] intoString:&identifierString];
BOOL success = [scanner scanCharactersFromSet:idCharacters intoString:&identifierString];
if (success)
{
identifierString = [[[[NSString alloc] initWithCharacters:&firstChar length:1] autorelease] stringByAppendingString:identifierString];
Expand Down
5 changes: 5 additions & 0 deletions CoreParse/Tokenisation/Token Types/CPEOFToken.m
Expand Up @@ -26,6 +26,11 @@ - (NSString *)name
return @"EOF";
}

- (NSUInteger)hash
{
return 0;
}

- (BOOL)isEqual:(id)object
{
return [object isKindOfClass:[CPEOFToken class]];
Expand Down
5 changes: 5 additions & 0 deletions CoreParse/Tokenisation/Token Types/CPIdentifierToken.m
Expand Up @@ -54,6 +54,11 @@ - (NSString *)name
return @"Identifier";
}

- (NSUInteger)hash
{
return [[self identifier] hash];
}

- (BOOL)isEqual:(id)object
{
if ([object isKindOfClass:[CPIdentifierToken class]])
Expand Down
5 changes: 5 additions & 0 deletions CoreParse/Tokenisation/Token Types/CPKeywordToken.m
Expand Up @@ -50,6 +50,11 @@ - (NSString *)name
return [self keyword];
}

- (NSUInteger)hash
{
return [[self keyword] hash];
}

- (BOOL)isEqual:(id)object
{
if ([object isKindOfClass:[CPKeywordToken class]])
Expand Down
5 changes: 5 additions & 0 deletions CoreParse/Tokenisation/Token Types/CPNumberToken.m
Expand Up @@ -54,6 +54,11 @@ - (NSString *)name
return @"Number";
}

- (NSUInteger)hash
{
return [[self number] hash];
}

- (BOOL)isEqual:(id)object
{
if ([object isKindOfClass:[CPNumberToken class]])
Expand Down
5 changes: 5 additions & 0 deletions CoreParse/Tokenisation/Token Types/CPQuotedToken.m
Expand Up @@ -63,6 +63,11 @@ - (NSString *)name
return name;
}

- (NSUInteger)hash
{
return [[self content] hash];
}

- (BOOL)isEqual:(id)object
{
if ([object isKindOfClass:[CPQuotedToken class]])
Expand Down
5 changes: 5 additions & 0 deletions CoreParse/Tokenisation/Token Types/CPToken.m
Expand Up @@ -16,6 +16,11 @@ - (NSString *)name
return @"";
}

- (NSUInteger)hash
{
return [[self name] hash];
}

- (BOOL)isEqual:(id)object
{
if ([object isKindOfClass:[CPToken class]])
Expand Down
5 changes: 5 additions & 0 deletions CoreParse/Tokenisation/Token Types/CPWhiteSpaceToken.m
Expand Up @@ -53,6 +53,11 @@ - (NSString *)name
return @"Whitespace";
}

- (NSUInteger)hash
{
return 1;
}

- (BOOL)isEqual:(id)object
{
return [object isKindOfClass:[CPWhiteSpaceToken class]];
Expand Down
16 changes: 8 additions & 8 deletions CoreParseTests/CoreParseTests.m
Expand Up @@ -100,7 +100,7 @@ - (void)testWhiteSpaceTokeniser
{
CPTokeniser *tokeniser = [[[CPTokeniser alloc] init] autorelease];
[tokeniser addTokenRecogniser:[CPNumberRecogniser numberRecogniser]];
[tokeniser addTokenRecogniser:[CPWhiteSpaceRecogniser whiteSpaceRecogniser]];
[tokeniser addTokenRecogniser:[CPWhitespaceRecogniser whiteSpaceRecogniser]];
CPTokenStream *tokenStream = [tokeniser tokenise:@"12.34 56.78\t90"];

if (![tokenStream isEqual:[CPTokenStream tokenStreamWithTokens:[NSArray arrayWithObjects:
Expand All @@ -117,7 +117,7 @@ - (void)testIdentifierTokeniser
CPTokeniser *tokeniser = [[[CPTokeniser alloc] init] autorelease];
[tokeniser addTokenRecogniser:[CPKeywordRecogniser recogniserForKeyword:@"long"]];
[tokeniser addTokenRecogniser:[CPIdentifierRecogniser identifierRecogniser]];
[tokeniser addTokenRecogniser:[CPWhiteSpaceRecogniser whiteSpaceRecogniser]];
[tokeniser addTokenRecogniser:[CPWhitespaceRecogniser whiteSpaceRecogniser]];
CPTokenStream *tokenStream = [tokeniser tokenise:@"long jam _ham long _spam59e_53"];

if (![tokenStream isEqual:[CPTokenStream tokenStreamWithTokens:[NSArray arrayWithObjects:
Expand All @@ -133,7 +133,7 @@ - (void)testIdentifierTokeniser
tokeniser = [[[CPTokeniser alloc] init] autorelease];
[tokeniser addTokenRecogniser:[CPIdentifierRecogniser identifierRecogniserWithInitialCharacters:[NSCharacterSet characterSetWithCharactersInString:@"abc"]
identifierCharacters:[NSCharacterSet characterSetWithCharactersInString:@"def"]]];
[tokeniser addTokenRecogniser:[CPWhiteSpaceRecogniser whiteSpaceRecogniser]];
[tokeniser addTokenRecogniser:[CPWhitespaceRecogniser whiteSpaceRecogniser]];
tokenStream = [tokeniser tokenise:@"adef abdef"];

if (![tokenStream isEqual:[CPTokenStream tokenStreamWithTokens:[NSArray arrayWithObjects:
Expand Down Expand Up @@ -218,7 +218,7 @@ - (void)testMapCSSTokenisation
[tokeniser addTokenRecogniser:[CPKeywordRecogniser recogniserForKeyword:@"="]];
[tokeniser addTokenRecogniser:[CPKeywordRecogniser recogniserForKeyword:@":"]];
[tokeniser addTokenRecogniser:[CPKeywordRecogniser recogniserForKeyword:@"eval"]];
[tokeniser addTokenRecogniser:[CPWhiteSpaceRecogniser whiteSpaceRecogniser]];
[tokeniser addTokenRecogniser:[CPWhitespaceRecogniser whiteSpaceRecogniser]];
[tokeniser addTokenRecogniser:[CPNumberRecogniser numberRecogniser]];
[tokeniser addTokenRecogniser:[CPQuotedRecogniser quotedRecogniserWithStartQuote:@"/*" endQuote:@"*/" name:@"Comment"]];
[tokeniser addTokenRecogniser:[CPQuotedRecogniser quotedRecogniserWithStartQuote:@"//" endQuote:@"\n" name:@"Comment"]];
Expand Down Expand Up @@ -280,7 +280,7 @@ - (void)testSLR
{
CPTokeniser *tokeniser = [[[CPTokeniser alloc] init] autorelease];
[tokeniser addTokenRecogniser:[CPNumberRecogniser integerRecogniser]];
[tokeniser addTokenRecogniser:[CPWhiteSpaceRecogniser whiteSpaceRecogniser]];
[tokeniser addTokenRecogniser:[CPWhitespaceRecogniser whiteSpaceRecogniser]];
[tokeniser addTokenRecogniser:[CPKeywordRecogniser recogniserForKeyword:@"+"]];
[tokeniser addTokenRecogniser:[CPKeywordRecogniser recogniserForKeyword:@"*"]];
[tokeniser addTokenRecogniser:[CPKeywordRecogniser recogniserForKeyword:@"("]];
Expand Down Expand Up @@ -319,7 +319,7 @@ - (void)testLR1
{
CPTokeniser *tokeniser = [[[CPTokeniser alloc] init] autorelease];
[tokeniser addTokenRecogniser:[CPNumberRecogniser integerRecogniser]];
[tokeniser addTokenRecogniser:[CPWhiteSpaceRecogniser whiteSpaceRecogniser]];
[tokeniser addTokenRecogniser:[CPWhitespaceRecogniser whiteSpaceRecogniser]];
[tokeniser addTokenRecogniser:[CPKeywordRecogniser recogniserForKeyword:@"+"]];
[tokeniser addTokenRecogniser:[CPKeywordRecogniser recogniserForKeyword:@"*"]];
[tokeniser addTokenRecogniser:[CPKeywordRecogniser recogniserForKeyword:@"("]];
Expand Down Expand Up @@ -380,7 +380,7 @@ - (void)testBNFGrammarGeneration
{
CPTokeniser *tokeniser = [[[CPTokeniser alloc] init] autorelease];
[tokeniser addTokenRecogniser:[CPNumberRecogniser integerRecogniser]];
[tokeniser addTokenRecogniser:[CPWhiteSpaceRecogniser whiteSpaceRecogniser]];
[tokeniser addTokenRecogniser:[CPWhitespaceRecogniser whiteSpaceRecogniser]];
[tokeniser addTokenRecogniser:[CPKeywordRecogniser recogniserForKeyword:@"+"]];
[tokeniser addTokenRecogniser:[CPKeywordRecogniser recogniserForKeyword:@"*"]];
[tokeniser addTokenRecogniser:[CPKeywordRecogniser recogniserForKeyword:@"("]];
Expand Down Expand Up @@ -471,7 +471,7 @@ - (void)testMapCSSParsing
[tokeniser addTokenRecogniser:[CPKeywordRecogniser recogniserForKeyword:@"="]];
[tokeniser addTokenRecogniser:[CPKeywordRecogniser recogniserForKeyword:@":"]];
[tokeniser addTokenRecogniser:[CPKeywordRecogniser recogniserForKeyword:@"eval"]];
[tokeniser addTokenRecogniser:[CPWhiteSpaceRecogniser whiteSpaceRecogniser]];
[tokeniser addTokenRecogniser:[CPWhitespaceRecogniser whiteSpaceRecogniser]];
[tokeniser addTokenRecogniser:[CPNumberRecogniser numberRecogniser]];
[tokeniser addTokenRecogniser:[CPQuotedRecogniser quotedRecogniserWithStartQuote:@"/*" endQuote:@"*/" name:@"Comment"]];
[tokeniser addTokenRecogniser:[CPQuotedRecogniser quotedRecogniserWithStartQuote:@"//" endQuote:@"\n" name:@"Comment"]];
Expand Down

0 comments on commit 7b4b28d

Please sign in to comment.