home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OpenStep 4.2J (Developer)
/
os42jdev.iso
/
NextDeveloper
/
OpenStepConversion
/
ConversionScripts
/
NSObjectConversion.tops
< prev
next >
Wrap
Text File
|
1994-12-20
|
3KB
|
70 lines
/*
dependencies : NXZone/NSZone should occur in the same stage as NSNameConversion for zone
compatibility (or else move zone stuff into this file).
*/
/*********** NSObjectConversion: declaration changes ***********/
replace "\<objc/Object.h>" with "<Foundation/NSObject.h>"
replace "\<objc/NSObject.h>" with "<Foundation/NSObject.h>"
replace "Object" with "NSObject"
/*********** NSObjectConversion: simple renaming ***********/
replacemethod "<old>" with "<new>"
where ("<old>", "<new>") isOneOf {
("isKindOf:", "isKindOfClass:"),
("isMemberOf:", "isMemberOfClass:"),
("conformsTo:", "conformsToProtocol:"),
("respondsTo:", "respondsToSelector:"),
("poseAs:", "poseAsClass:"),
("instancesRespondTo:", "instancesRespondToSelector:"),
("methodFor:", "methodForSelector:"),
("instanceMethodFor:", "instanceMethodForSelector:"),
("doesNotRecognize:", "doesNotRecognizeSelector:"),
("perform:with:", "perform:withObject:"),
("perform:with:with:", "perform:withObject:withObject:"),
("perform:with:afterDelay:", "perform:withObject:afterDelay:"),
("allocFromZone:", "allocWithZone:"),
("copyFromZone:", "copyWithZone:"),
("mutableCopyFromZone:", "mutableCopyWithZone:")
}
replace "return [<obj> doesNotRecognizeSelector:<sel>];" with "[<obj> doesNotRecognizeSelector:<sel>]; return nil;"
replacemethod "forward:" with same
error "NSObjectConversion: 'forward:' has been replaced by forwardInvocation: which has different calling semantics. Convert by hand."
replace "[<obj> perform:<sel> with:<arg> afterDelay:<ms> cancelPrevious:NO];" with "[<obj> performSelector:<sel> object:<arg> afterDelay:(<ms>) / 1000.0];"
replace "[<obj> perform:<sel> with:<arg> afterDelay:<ms> cancelPrevious:YES];" with "[NSObject cancelPreviousPerformRequestsWithTarget:<obj> selector:<sel> object:<arg>], [<obj> performSelector:<sel> object:<arg> afterDelay:(<ms>) / 1000.0];"
replace "[<obj> perform:<sel> with:<arg> afterDelay:<ms> cancelPrevious:<flag>];" with "if (<flag>) { [NSObject cancelPreviousPerformRequestsWithTarget:<obj> selector:<sel> object:<arg>]; } [<obj> performSelector:<sel> object:<arg> afterDelay:(<ms>) / 1000.0];"
/*********** NSObjectConversion: notImplemented, subclassResponsibility ***********/
replace "[<obj> notImplemented:<sel>];" with "[NSException raise:NSInvalidArgumentException format:@\"*** Method not implemented: %s\", sel_getName(_cmd)];"
replace "[<obj> subclassResponsibility:<sel>];" with "[NSException raise:NSInvalidArgumentException format:@\"*** Subclass responsibility: %s\", sel_getName(_cmd)];"
replace "return [NSException raise:<b args>];" with "[NSException raise:<b args>]; return nil;"
/*********** NSObjectConversion: free => release/dealloc ***********/
replace "[<obj> free]" with "[<obj> release]"
replacemethod "free" with "dealloc" {
replace "<rettype>" with "(void)"
}
within ("<implementation>") {
replace "[super release]" with "[super dealloc]"
}
replace "return [super dealloc]" with "{ [super dealloc]; return; }"
/*********** NSObjectConversion: name how can we handle this ***********/
/*replace "[<obj> name>]" with "[[<obj> class] description]"*/