CascadeNode.st
changeset 4223 29e21fe4d6b6
parent 4184 e86cf3691f8c
equal deleted inserted replaced
4222:9757ab066985 4223:29e21fe4d6b6
   130 messages
   130 messages
   131     "helper for parse tree walking"
   131     "helper for parse tree walking"
   132 
   132 
   133     "/ sigh; ST/X encodes things differently ...
   133     "/ sigh; ST/X encodes things differently ...
   134 
   134 
   135     |r nd msgs msg|
   135     |r nd msgs|
   136 
   136 
   137     msgs := OrderedCollection new.
   137     msgs := OrderedCollection new.
   138 
   138 
   139     r := receiver.
   139     r := receiver.
   140     [r isCascade] whileTrue:[
   140     [r isCascade] whileTrue:[
   142     ].
   142     ].
   143     r := r receiver.
   143     r := r receiver.
   144 
   144 
   145     nd := self.
   145     nd := self.
   146     [nd isCascade] whileTrue:[
   146     [nd isCascade] whileTrue:[
   147         msg := MessageNode new.
   147         msgs addFirst:(MessageNode receiver:r selector:nd selector args:nd args lineno:nd lineNumber).
   148         msg receiver:r selector:nd selector args:nd args lineno:nd lineNumber.
       
   149         msgs addFirst:msg.
       
   150         nd := nd receiver.
   148         nd := nd receiver.
   151     ].
   149     ].
   152     msg := MessageNode new.
   150     msgs addFirst:(MessageNode receiver:r selector:nd selector args:nd args lineno:nd lineNumber).
   153     msg receiver:r selector:nd selector args:nd args lineno:nd lineNumber.
       
   154     msgs addFirst:msg.
       
   155 
   151 
   156     ^ msgs
   152     ^ msgs
   157 
   153 
   158     "Created: / 12-09-2011 / 10:04:31 / cg"
   154     "Created: / 12-09-2011 / 10:04:31 / cg"
       
   155     "Modified: / 26-03-2018 / 15:36:30 / stefan"
   159 !
   156 !
   160 
   157 
   161 nodeDo:anEnumerator
   158 nodeDo:anEnumerator
   162     "helper for parse tree walking"
   159     "helper for parse tree walking"
   163 
   160 
   164     "/ sigh; ST/X encodes things differently ...
   161     "/ sigh; ST/X encodes things differently ...
   165 
   162 
   166     |r nd msgs msg|
   163     |r nd msgs|
   167 
   164 
   168     msgs := OrderedCollection new.
   165     msgs := OrderedCollection new.
   169 
   166 
   170     r := receiver.
   167     r := receiver.
   171     [r isCascade] whileTrue:[
   168     [r isCascade] whileTrue:[
   173     ].
   170     ].
   174     r := r receiver.
   171     r := r receiver.
   175 
   172 
   176     nd := self.
   173     nd := self.
   177     [nd isCascade] whileTrue:[
   174     [nd isCascade] whileTrue:[
   178         msg := MessageNode new.
   175         msgs addFirst:(MessageNode receiver:r selector:nd selector args:nd args lineno:nd lineNumber).
   179         msg receiver:r selector:nd selector args:nd args lineno:nd lineNumber.
       
   180         msgs addFirst:msg.
       
   181         nd := nd receiver.
   176         nd := nd receiver.
   182     ].
   177     ].
   183     msg := MessageNode new.
   178     msgs addFirst:(MessageNode receiver:r selector:nd selector args:nd args lineno:nd lineNumber).
   184     msg receiver:r selector:nd selector args:nd args lineno:nd lineNumber.
       
   185     msgs addFirst:msg.
       
   186 
   179 
   187     ^ anEnumerator doCascade:self receiver:r messages:msgs
   180     ^ anEnumerator doCascade:self receiver:r messages:msgs
   188 
   181 
   189     "Created: 19.6.1997 / 16:39:17 / cg"
   182     "Created: / 19-06-1997 / 16:39:17 / cg"
   190     "Modified: 19.6.1997 / 17:32:47 / cg"
   183     "Modified: / 26-03-2018 / 15:37:12 / stefan"
   191 ! !
   184 ! !
   192 
   185 
   193 !CascadeNode methodsFor:'evaluation'!
   186 !CascadeNode methodsFor:'evaluation'!
   194 
   187 
   195 evaluateForCascadeIn:anEnvironment
   188 evaluateForCascadeIn:anEnvironment