CascadeNode.st
changeset 1588 4c3183dfaa5f
parent 1500 3c4cb012b24b
child 2319 636647549e7c
--- 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 $'
 ! !