Advertisement
Guest User

Untitled

a guest
Jun 19th, 2016
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Collection subclass: #Spacer
  2.     instanceVariableNames: 'elements completion others generaors'
  3.     classVariableNames: ''
  4.     poolDictionaries: ''
  5.     classInstanceVariableNames: ''
  6.  
  7.  
  8. klasowe:
  9.  
  10. empty
  11.     ^(super new) empty
  12.  
  13. fromGenerator: generator first: fst
  14.     | result x |
  15.     result := self empty.
  16.     (result elements) addLast: fst .
  17.     x := (generator value: fst).
  18.    
  19.     [x isNil ] whileFalse: [
  20.         (result elements) addLast: x.
  21.         x := generator value: x.
  22.     ].
  23.     ^ result
  24.  
  25. fromGenerator: generator first: fst completion: block
  26.     | result |
  27.     result := self fromGenerator: generator first: fst.
  28.     result setCompletion: block.
  29.     ^ result
  30.  
  31. instancji:
  32.  
  33.  
  34. empty
  35.     elements := OrderedCollection new.
  36.     completion := nil.
  37.     others := OrderedCollection new.
  38.     generaors := OrderedCollection new.
  39.  
  40.  
  41. extendNodes: elems generaors: gens operation: operation
  42.     | spacerek gen elem |
  43.     ((gens size) <= 0) ifTrue: [
  44.         elems do: operation.
  45.     ] ifFalse: [
  46.         1 to: (elems size) do: [:i |
  47.             elem := elems at: i.
  48.             gen := gens at: 1.
  49.             ((gen value ) key) ifTrue: [
  50.                 spacerek := elem | (gen value value).
  51.             ] ifFalse: [
  52.                 spacerek := elem % (gen value value).
  53.             ].
  54.             2 to: (gens size) do: [:j |
  55.                 gen := gens at: j.
  56.                 ((gen value ) key) ifTrue: [
  57.                     spacerek := spacerek | (gen value value).
  58.                 ] ifFalse: [
  59.                     spacerek := spacerek % (gen value value).
  60.                 ].
  61.             ].
  62.             spacerek do: operation.
  63.         ].
  64.     ]
  65.  
  66.  
  67. addGenerators: gens atIndex: idx
  68.     " tu jest błąd"
  69.     | sz generatorsArray gen direction dirIdx |
  70.     generatorsArray := gens asArray.
  71.    
  72.     sz := generatorsArray size.
  73.     dirIdx := others size.
  74.     1 to: sz do: [:i |
  75.         gen := (generatorsArray at: i).
  76.         direction := gen value.
  77.  
  78.         (gen key >= idx) ifTrue: [
  79.             generaors addLast: (Association key: dirIdx value: direction ).
  80.         ]
  81.     ].
  82.  
  83. % direction
  84.     generaors addLast: (Association key: (others size) value: (Association key: false value: direction ))
  85.  
  86. , spacer
  87.     others addLast: spacer.
  88.  
  89. | direction
  90.     generaors addLast: (Association key: (others size) value: (Association key: true value: direction ))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement