Skip to content

Commit

Permalink
More preprocessor additions / fixes.
Browse files Browse the repository at this point in the history
  • Loading branch information
ccgus committed Oct 23, 2011
1 parent 3370e9d commit 1896bc5
Show file tree
Hide file tree
Showing 5 changed files with 40 additions and 24 deletions.
33 changes: 13 additions & 20 deletions experimental/src/JSTPreprocessor.m
Expand Up @@ -357,6 +357,8 @@ - (NSString*)description {
[msgSendArgs removeAllObjects];
}

BOOL pastSelector = NO;

NSMutableString *buf = [NSMutableString stringWithString:@"jst_msgSend("];

[buf appendFormat:@"%@, \"%@\"", target, selector];
Expand All @@ -365,29 +367,20 @@ - (NSString*)description {

id arg = [msgSendArgs objectAtIndex:i];

if ([arg isKindOfClass:[TDToken class]] && ([arg isComment] || [arg isWhitespace])) {
/*
if ([arg isComment]) {
[buf appendString:[arg stringValue]];
}
*/
}
else {
if ([arg isKindOfClass:[TDToken class]] && [[arg stringValue] isEqualToString:@","]) {

if ([arg isKindOfClass:[TDToken class]] && [[arg stringValue] isEqualToString:@","]) {

if (![selector length]) { // looks like it's an array: print([3+4, 5]);
return [NSString stringWithFormat:@"[%@]", [argsCopy componentsJoinedByString:@""]];
}
}

if (arg == selectorWasHere) {
[buf appendString:@", "];
}
else {
[buf appendString:[arg description]];
if (![selector length]) { // looks like it's an array: print([3+4, 5]);
return [NSString stringWithFormat:@"[%@]", [argsCopy componentsJoinedByString:@""]];
}
}

if (arg == selectorWasHere) {
[buf appendString:@", "];
pastSelector = YES;
}
else if (pastSelector) {
[buf appendString:[arg description]];
}
}

[buf appendString:@")"];
Expand Down
4 changes: 2 additions & 2 deletions experimental/src/jstalkmain.m
Expand Up @@ -114,8 +114,8 @@ void testPreprocessAtPath(NSString *pathToScript) {

NSString *r = [JSTPreprocessor preprocessCode:a];

b = [b stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
r = [r stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
b = [[b stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] stringByAppendingString:@"\n"];
r = [[r stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] stringByAppendingString:@"\n"];

if (![b isEqualToString:r]) {
NSLog(@"Bad preprocess for %@", pathToScript);
Expand Down
2 changes: 1 addition & 1 deletion experimental/tests/preprocess/testPreprocess01.jstpc
Expand Up @@ -6,4 +6,4 @@ jst_msgSend(NSFullUserName(), "lowercaseString");

print(jst_msgSend(NSString, "stringWithString:", JSTNSString("a")+"b"))

jst_msgSend(fo, "doSomething:in:", " a "+jst_msgSend(b, "fun")+" c ", null);
jst_msgSend(fo, "doSomething:in:", " a " + jst_msgSend(b, "fun") + " c " , null);
13 changes: 12 additions & 1 deletion experimental/tests/preprocess/testPreprocess02.jstalk
@@ -1,3 +1,14 @@
print([4 - 5, b]);
print([a, b]);
[NSString string];
[NSString string];

{
var s = @"Hello";

var f = someFunction([s lowerCaseString], @"Hi");
}

var s = [NSString stringWithFormat:"%@, %@, %@"
newlineVar, /*inline comment*/, fakeVar
"test another newline"
];
12 changes: 12 additions & 0 deletions experimental/tests/preprocess/testPreprocess02.jstpc
@@ -1,3 +1,15 @@
print([4 - 5, b]);
print([a, b]);
jst_msgSend(NSString, "string");

{
var s = JSTNSString("Hello");

var f = someFunction(jst_msgSend(s, "lowerCaseString"), JSTNSString("Hi"));
}

var s = jst_msgSend(NSString, "stringWithFormat:", "%@, %@, %@"
newlineVar, /*inline comment*/, fakeVar
"test another newline"
);

0 comments on commit 1896bc5

Please sign in to comment.