Skip to content

Commit

Permalink
Refactoring into “+tokenizerOptionsForMode:”.
Browse files Browse the repository at this point in the history
  • Loading branch information
JanX2 committed Sep 6, 2012
1 parent 5ca60ec commit 6bf1284
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 17 deletions.
2 changes: 2 additions & 0 deletions DiffMatchPatch.h
Expand Up @@ -167,6 +167,8 @@ typedef enum {

@interface DiffMatchPatch (PrivateMethods)

+ (CFOptionFlags)tokenizerOptionsForMode:(DiffTokenMode)mode;

- (NSMutableArray *)diff_mainOfOldString:(NSString *)text1 andNewString:(NSString *)text2 checkLines:(BOOL)checklines deadline:(NSTimeInterval)deadline;
- (NSMutableArray *)diff_computeFromOldString:(NSString *)text1 andNewString:(NSString *)text2 checkLines:(BOOL)checklines deadline:(NSTimeInterval)deadline;
- (NSMutableArray *)diff_lineModeFromOldString:(NSString *)text1 andNewString:(NSString *)text2 deadline:(NSTimeInterval)deadline;
Expand Down
39 changes: 22 additions & 17 deletions DiffMatchPatch.m
Expand Up @@ -951,6 +951,27 @@ - (NSArray *)diff_linesToCharsForFirstString:(NSString *)text1
return result;
}

+ (CFOptionFlags)tokenizerOptionsForMode:(DiffTokenMode)mode;
{
CFOptionFlags tokenizerOptions;
switch (mode) {
case DiffWordTokens:
tokenizerOptions = kCFStringTokenizerUnitWordBoundary;
break;
case DiffSentenceTokens:
tokenizerOptions = kCFStringTokenizerUnitSentence;
break;
case DiffLineBreakDelimiteredTokens:
tokenizerOptions = kCFStringTokenizerUnitLineBreak;
break;
case DiffParagraphTokens:
default:
tokenizerOptions = kCFStringTokenizerUnitParagraph;
break;
}
return tokenizerOptions;
}

/**
* Split two texts into a list of strings. Reduce the texts to a string of
* hashes where each Unicode character represents one token (or boundary between tokens).
Expand All @@ -967,23 +988,7 @@ - (NSArray *)diff_tokensToCharsForFirstString:(NSString *)text1
andSecondString:(NSString *)text2
mode:(DiffTokenMode)mode;
{
CFOptionFlags tokenizerOptions;

switch (mode) {
case DiffWordTokens:
tokenizerOptions = kCFStringTokenizerUnitWordBoundary;
break;
case DiffSentenceTokens:
tokenizerOptions = kCFStringTokenizerUnitSentence;
break;
case DiffLineBreakDelimiteredTokens:
tokenizerOptions = kCFStringTokenizerUnitLineBreak;
break;
case DiffParagraphTokens:
default:
tokenizerOptions = kCFStringTokenizerUnitParagraph;
break;
}
CFOptionFlags tokenizerOptions = [[self class] tokenizerOptionsForMode:mode];

NSMutableArray *tokenArray = [NSMutableArray array]; // NSString objects
CFMutableDictionaryRef tokenHash = CFDictionaryCreateMutable(kCFAllocatorDefault, 0, &kCFTypeDictionaryKeyCallBacks, NULL); // keys: NSString, values:raw CFIndex
Expand Down

0 comments on commit 6bf1284

Please sign in to comment.