--- a/CascadeNode.st Wed Apr 20 12:15:34 2005 +0200
+++ b/CascadeNode.st Wed Apr 20 16:41:54 2005 +0200
@@ -133,49 +133,27 @@
!CascadeNode methodsFor:'printing & storing'!
-printOn:aStream indent:i
- |needParen selectorParts index index2 arg nargs|
+printOn:aStream indent:i
+ |selectorParts|
- index := 1.
- selectorParts := OrderedCollection new.
- [index == 0] whileFalse:[
- index2 := selector indexOf:$: startingAt:index.
- index2 ~~ 0 ifTrue:[
- selectorParts add:(selector copyFrom:index to:index2).
- index2 := index2 + 1
- ].
- index := index2
- ].
-
+ selectorParts := selector asCollectionOfSubstringsSeparatedBy:$:.
receiver printOn:aStream indent:i.
aStream nextPutAll:'; '.
-
- nargs := argArray size.
- nargs == 0 ifTrue:[
- selector printOn:aStream
+ argArray size == 0 ifTrue:[
+ selector printOn:aStream
] ifFalse:[
- 1 to:nargs do:[:argIndex |
- aStream space.
- (selectorParts at:argIndex) printOn:aStream.
- aStream space.
- arg := argArray at:argIndex.
- needParen := false.
- arg isMessage ifTrue:[
- arg isBinaryMessage ifFalse:[
- arg isUnaryMessage ifFalse:[
- needParen := true
- ]
- ].
- ].
- needParen ifTrue:[
- aStream nextPutAll:'('
- ].
- arg printOn:aStream indent:i.
- needParen ifTrue:[
- aStream nextPutAll:') '
- ].
- ]
+ argArray
+ with:selectorParts
+ do:[:arg :selPart |
+ aStream
+ space;
+ nextPutAll:selPart;
+ nextPutAll:': '.
+ arg printOn:aStream indent:i + 4 parenthized:(arg precedence <= self precedence).
+ ]
]
+
+ "Modified: / 20-04-2005 / 14:35:39 / cg"
! !
!CascadeNode methodsFor:'queries'!
@@ -189,5 +167,5 @@
!CascadeNode class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libcomp/CascadeNode.st,v 1.26 2004-03-19 13:25:46 stefan Exp $'
+ ^ '$Header: /cvs/stx/stx/libcomp/CascadeNode.st,v 1.27 2005-04-20 14:41:24 cg Exp $'
! !