compiler/PPCSequenceNode.st
changeset 484 e829f3860745
parent 461 5986bf6d7d60
child 488 19a9c25960ef
--- a/compiler/PPCSequenceNode.st	Wed Jun 03 09:06:49 2015 +0100
+++ b/compiler/PPCSequenceNode.st	Fri Jun 05 00:05:08 2015 +0100
@@ -12,8 +12,58 @@
 
 !PPCSequenceNode methodsFor:'accessing'!
 
+preferredChildrenVariableNames
+    "Return an array of preferred variable names of variables where to store
+     particular child's result value."
+
+    | names |
+
+    names := self propertyAt: #preferredChildrenVariableNames ifAbsent:[ nil ].
+    names notNil ifTrue:[ ^ names ].
+    names := OrderedCollection new.
+    self children do:[:child |  
+        | id |
+
+        id := child name ? 'c'.
+        (names includes: id) ifTrue:[ 
+            | i |
+
+            i := 1.
+            [ names includes: (id , '_' , i printString) ] whileTrue:[ 
+                i := i + 1.
+            ].
+            id := (id , '_' , i printString).
+        ].
+        names add: id.
+    ].                
+    self propertyAt: #preferredChildrenVariableNames put: names.
+    ^ names
+
+    "Created: / 04-06-2015 / 23:08:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+preferredChildrenVariableNames: aSequenceableCollection
+    "Sets an array of preferred variable names"
+
+    self propertyAt: #preferredChildrenVariableNames put: aSequenceableCollection
+
+    "Created: / 04-06-2015 / 23:09:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 prefix
     ^ #seq
+!
+
+returnParsedObjectsAsCollection
+    ^ self propertyAt: #returnParsedObjectsAsCollection ifAbsent:[ true ]
+
+    "Created: / 04-06-2015 / 23:43:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+returnParsedObjectsAsCollection: aBoolean
+    self propertyAt: #returnParsedObjectsAsCollection put: aBoolean
+
+    "Created: / 04-06-2015 / 23:43:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !PPCSequenceNode methodsFor:'analysis'!