Stack.st
author Claus Gittinger <cg@exept.de>
Fri, 10 May 1996 13:09:23 +0200
changeset 296 3519dbc41ab1
parent 188 74c8f104cd71
child 482 6cc6fd9e31fe
permissions -rw-r--r--
*** empty log message ***
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
188
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     1
'From Smalltalk/X, Version:2.10.8 on 12-feb-1996 at 15:36:51'                   !
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     2
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     3
OrderedCollection subclass:#Stack
296
3519dbc41ab1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 188
diff changeset
     4
	instanceVariableNames:''
188
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     5
	classVariableNames:''
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     6
	poolDictionaries:''
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     7
	category:'T-gen-Scanning/Parsing'
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     8
!
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     9
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    10
!Stack class methodsFor:'instance creation'!
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    11
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    12
new
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    13
        ^self new: 100
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    14
! !
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    15
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    16
!Stack methodsFor:'accessing'!
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    17
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    18
pop
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    19
        "Answer the object on top of the stack."
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    20
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    21
    ^ self removeLast
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    22
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    23
    "Created: 7.2.1996 / 00:12:53 / stefan"
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    24
    "Modified: 7.2.1996 / 00:13:53 / stefan"
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    25
!
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    26
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    27
pop: numElem 
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    28
        "Pop and discard top numElems and answer receiver"
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    29
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    30
        self removeLast:numElem
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    31
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    32
    "Created: 7.2.1996 / 00:12:53 / stefan"
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    33
    "Modified: 7.2.1996 / 00:14:16 / stefan"
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    34
!
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    35
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    36
push: anObject 
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    37
        "Push anObject onto the top of the stack."
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    38
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    39
    ^ self add:anObject
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    40
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    41
    "Created: 7.2.1996 / 00:12:53 / stefan"
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    42
    "Modified: 7.2.1996 / 00:14:52 / stefan"
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    43
!
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    44
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    45
top
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    46
        "Answer (without removing) the object on top of the stack."
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    47
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    48
        ^self last
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    49
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    50
    "Created: 7.2.1996 / 00:12:54 / stefan"
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    51
    "Modified: 7.2.1996 / 00:15:26 / stefan"
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    52
! !
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    53
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    54
!Stack methodsFor:'enumerating'!
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    55
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    56
do: aBlock
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    57
        "Evaluate aBlock for each object on the stack, from top to bottom."
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    58
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    59
        ^ super reverseDo:aBlock
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    60
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    61
    "Created: 7.2.1996 / 00:12:53 / stefan"
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    62
    "Modified: 7.2.1996 / 00:16:00 / stefan"
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    63
!
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    64
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    65
reverseDo: aBlock
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    66
        "Evaluate aBlock for each object on the stack, from bottom to top."
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    67
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    68
        ^ super do:aBlock
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    69
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    70
    "Created: 7.2.1996 / 00:12:54 / stefan"
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    71
    "Modified: 7.2.1996 / 00:16:18 / stefan"
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    72
! !
74c8f104cd71 ST/X port of tgen-2.1
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    73