mirror of
https://github.com/gnustep/apps-gorm.git
synced 2025-02-24 12:01:16 +00:00
Minor bug correction in class parser.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/apps/gorm/trunk@20387 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
2543fee8fb
commit
f5d1828901
2 changed files with 57 additions and 60 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
2004-11-27 09:17 Gregory John Casamento <greg_casamento@yahoo.com>
|
||||||
|
|
||||||
|
* GormObjCHeaderParser/OCClass.m: Condensed parse methods into
|
||||||
|
parse. Corrected a minor issue.
|
||||||
|
|
||||||
2004-11-27 05:53 Gregory John Casamento <greg_casamento@yahoo.com>
|
2004-11-27 05:53 Gregory John Casamento <greg_casamento@yahoo.com>
|
||||||
|
|
||||||
* GormObjCHeaderParser/OCClass.h
|
* GormObjCHeaderParser/OCClass.h
|
||||||
|
|
|
@ -116,36 +116,38 @@
|
||||||
ASSIGN(classString, resultString);
|
ASSIGN(classString, resultString);
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void) _parseClass
|
- (void) parse
|
||||||
{
|
{
|
||||||
NSScanner *scanner = [NSScanner scannerWithString: classString];
|
NSScanner *scanner = [NSScanner scannerWithString: classString];
|
||||||
|
NSScanner *iscan = nil;
|
||||||
NSString *interfaceLine = nil;
|
NSString *interfaceLine = nil;
|
||||||
|
NSString *methodsString = nil;
|
||||||
|
NSString *ivarsString = nil;
|
||||||
|
NSScanner *methodScan = nil;
|
||||||
|
|
||||||
[scanner scanUpToString: @"@interface" intoString: NULL]; // look ahead...
|
[scanner scanUpToString: @"@interface" intoString: NULL]; // look ahead...
|
||||||
[scanner scanUpToString: @"\n" intoString: &interfaceLine];
|
[scanner scanUpToString: @"\n" intoString: &interfaceLine];
|
||||||
scanner = [NSScanner scannerWithString: interfaceLine]; // reset scanner...
|
iscan = [NSScanner scannerWithString: interfaceLine]; // reset scanner...
|
||||||
if(NSEqualRanges([interfaceLine rangeOfString: @":"],NSMakeRange(NSNotFound,0)) == NO)
|
if(NSEqualRanges([interfaceLine rangeOfString: @":"],NSMakeRange(NSNotFound,0)) == NO)
|
||||||
{
|
{
|
||||||
[scanner scanUpToAndIncludingString: @"@interface" intoString: NULL];
|
[iscan scanUpToAndIncludingString: @"@interface" intoString: NULL];
|
||||||
[scanner scanUpToString: @":" intoString: &className];
|
[iscan scanUpToString: @":" intoString: &className];
|
||||||
RETAIN(className);
|
RETAIN(className);
|
||||||
[scanner scanString: @":" intoString: NULL];
|
[iscan scanString: @":" intoString: NULL];
|
||||||
[scanner scanUpToString: @" " intoString: &superClassName];
|
[iscan scanUpToString: @" " intoString: &superClassName];
|
||||||
RETAIN(superClassName);
|
RETAIN(superClassName);
|
||||||
}
|
}
|
||||||
else // category...
|
else // category...
|
||||||
{
|
{
|
||||||
[scanner scanUpToAndIncludingString: @"@interface" intoString: NULL];
|
[iscan scanUpToAndIncludingString: @"@interface" intoString: NULL];
|
||||||
[scanner scanUpToString: @" " intoString: &className];
|
[iscan scanUpToString: @" " intoString: &className];
|
||||||
RETAIN(className);
|
RETAIN(className);
|
||||||
[self setIsCategory: YES];
|
isCategory = YES;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
- (void) _parseIVars
|
if(isCategory == NO)
|
||||||
{
|
{
|
||||||
NSScanner *scanner = [NSScanner scannerWithString: classString];
|
NSScanner *ivarScan = nil;
|
||||||
NSString *ivarsString = nil;
|
|
||||||
|
|
||||||
// put the ivars into a a string...
|
// put the ivars into a a string...
|
||||||
[scanner scanUpToAndIncludingString: @"{" intoString: NULL];
|
[scanner scanUpToAndIncludingString: @"{" intoString: NULL];
|
||||||
|
@ -153,54 +155,44 @@
|
||||||
[scanner scanString: @"}" intoString: NULL];
|
[scanner scanString: @"}" intoString: NULL];
|
||||||
|
|
||||||
// scan each ivar...
|
// scan each ivar...
|
||||||
scanner = [NSScanner scannerWithString: ivarsString];
|
ivarScan = [NSScanner scannerWithString: ivarsString];
|
||||||
while(![scanner isAtEnd])
|
while(![ivarScan isAtEnd])
|
||||||
{
|
{
|
||||||
NSString *ivarLine = nil;
|
NSString *ivarLine = nil;
|
||||||
OCIVar *ivar = nil;
|
OCIVar *ivar = nil;
|
||||||
|
|
||||||
[scanner scanUpToString: @";" intoString: &ivarLine];
|
[ivarScan scanUpToString: @";" intoString: &ivarLine];
|
||||||
[scanner scanString: @";" intoString: NULL];
|
[ivarScan scanString: @";" intoString: NULL];
|
||||||
ivar = AUTORELEASE([[OCIVar alloc] initWithString: ivarLine]);
|
ivar = AUTORELEASE([[OCIVar alloc] initWithString: ivarLine]);
|
||||||
[ivar parse];
|
[ivar parse];
|
||||||
[ivars addObject: ivar];
|
[ivars addObject: ivar];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void) _parseMethods
|
|
||||||
{
|
|
||||||
NSScanner *scanner = [NSScanner scannerWithString: classString];
|
|
||||||
NSString *methodsString = nil;
|
|
||||||
|
|
||||||
// put the methods into a a string...
|
// put the methods into a a string...
|
||||||
[scanner scanUpToAndIncludingString: @"{" intoString: NULL];
|
if(ivarsString != nil)
|
||||||
[scanner scanUpToString: @"}" intoString: NULL];
|
{
|
||||||
[scanner scanString: @"}" intoString: NULL];
|
|
||||||
[scanner scanUpToString: @"@end" intoString: &methodsString];
|
[scanner scanUpToString: @"@end" intoString: &methodsString];
|
||||||
|
}
|
||||||
|
else //
|
||||||
|
{
|
||||||
|
scanner = [NSScanner scannerWithString: classString];
|
||||||
|
[scanner scanUpToAndIncludingString: interfaceLine intoString: NULL];
|
||||||
|
[scanner scanUpToString: @"@end" intoString: &methodsString];
|
||||||
|
}
|
||||||
|
|
||||||
// scan each method...
|
// scan each method...
|
||||||
scanner = [NSScanner scannerWithString: methodsString];
|
methodScan = [NSScanner scannerWithString: methodsString];
|
||||||
while(![scanner isAtEnd])
|
while(![methodScan isAtEnd])
|
||||||
{
|
{
|
||||||
NSString *methodLine = nil;
|
NSString *methodLine = nil;
|
||||||
OCMethod *method = nil;
|
OCMethod *method = nil;
|
||||||
|
|
||||||
[scanner scanUpToString: @";" intoString: &methodLine];
|
[methodScan scanUpToString: @";" intoString: &methodLine];
|
||||||
[scanner scanString: @";" intoString: NULL];
|
[methodScan scanString: @";" intoString: NULL];
|
||||||
method = AUTORELEASE([[OCMethod alloc] initWithString: methodLine]);
|
method = AUTORELEASE([[OCMethod alloc] initWithString: methodLine]);
|
||||||
[method parse];
|
[method parse];
|
||||||
[methods addObject: method];
|
[methods addObject: method];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void) parse
|
|
||||||
{
|
|
||||||
// [self _strip];
|
|
||||||
[self _parseClass];
|
|
||||||
if([self isCategory] == NO)
|
|
||||||
{
|
|
||||||
[self _parseIVars];
|
|
||||||
}
|
|
||||||
[self _parseMethods];
|
|
||||||
}
|
|
||||||
@end
|
@end
|
||||||
|
|
Loading…
Reference in a new issue