-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathFAFCodeScanner.m
More file actions
61 lines (49 loc) · 1.53 KB
/
FAFCodeScanner.m
File metadata and controls
61 lines (49 loc) · 1.53 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
//
// FAFCodeScanner.m
// oas-compile
//
// Created by Manoah F Adams on 2013-08-06.
// Copyright 2013 __MyCompanyName__. All rights reserved.
//
#import "FAFCodeScanner.h"
@implementation FAFCodeScanner
- (id) initWithString:(NSString*)input
{
self = [super initWithString:input];
if (self != nil) {
[alphaNums autorelease];
alphaNums = [alphaNums arrayByAddingObject:@"@"];
alphaNums = [alphaNums arrayByAddingObject:@"#"];
[alphaNums retain];
}
return self;
}
- (NSString*) readToken {
NSString* token = [super readToken];
if ([[NSArray arrayWithObjects:@">", @"<", @"=", @"!", nil] containsObject:token]) {
if ([[self nextToken] isEqual:@"="]) {
return [token stringByAppendingString:[self readToken]];
}
} else if ([token isEqual: @"+"] && [[self nextToken] isEqual:@"+"]) {
return [token stringByAppendingString:[self readToken]];
} else if ([token isEqual: @"-"] && [[self nextToken] isEqual:@"-"]) {
return [token stringByAppendingString:[self readToken]];
} else if (([token intValue] || [token isEqual:@"0"]) && [[self nextToken] isEqual:@"."]) {
// floating point number
[self readToken]; // past period char
NSString* t2 = [self readToken]; // assuming for now an integer
NSString* s = [NSString stringWithFormat:@"%@.%@", token, t2];
return s;
}
return token;
}
+ (int) linesCountInArray: (NSArray*) array toIndex: (int) i {
int count = 0;
NSEnumerator* e = [array objectEnumerator];
NSString* s;
while (s = [e nextObject]) {
if ([s isEqual:@"\n"]) count++;
}
return count;
}
@end