Menu

[r3]: / cmp / StdLib / StackLib.tcl  Maximize  Restore  History

Download this file

65 lines (53 with data), 1.1 kB

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
##
## Compiler2 - Stack
##
## (C) IPN - Ingenieurbuero fuer Praezisionsnumerik
##
## Dipl.-Ing. Andreas Otto
## Ulmenstrasse 3
## D-34289 Zierenberg
## mailto:aotto@t-online.de
## http://tclcompiler.sourceforge.net
##
## Alle Rechte vorbehalten
##
package require StdLib
PkgProvide StackLib
##
## ---------------------------------------------------
## List Functions
##
namespace eval ::Stack {
}
proc ::Stack::Push { stack Val } {
upvar $stack Stack
lappend Stack $Val
}
proc ::Stack::Pop { stack } {
upvar $stack Stack
set RET [ lindex $Stack end ]
set Stack [ lrange $Stack 0 end-1 ]
return $RET
}
proc ::Stack::Last { stack } {
upvar $stack Stack
return [ lindex $Stack end ]
}
proc ::Stack::LPush { stack Val } {
upvar __$stack LStack $stack Stack
Push LStack $Stack
set Stack $Val
}
proc ::Stack::LPop { stack } {
upvar __$stack LStack $stack Stack
set Stack [ Pop LStack ]
}
proc ::Stack::Reverse { stack } {
upvar $stack Stack
set RET {}
set End [ expr { [ llength $Stack ] - 1 } ]
for {} { $End > -1 } { incr End -1 } {
lappend RET [ lindex $Stack $End ]
}
return $RET
}
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.