diff options
author | obscuren <geffobscura@gmail.com> | 2015-03-23 23:59:09 +0800 |
---|---|---|
committer | obscuren <geffobscura@gmail.com> | 2015-03-23 23:59:09 +0800 |
commit | 0330077d76b48934ab024a309000f83c78047d8a (patch) | |
tree | 2a3ffbcd5bd941b30ed28d0eb5c30553a25324e0 /vm/stack.go | |
parent | d7eaa97a297151637af090ecb05bbd6d260d90b8 (diff) | |
download | go-tangerine-0330077d76b48934ab024a309000f83c78047d8a.tar go-tangerine-0330077d76b48934ab024a309000f83c78047d8a.tar.gz go-tangerine-0330077d76b48934ab024a309000f83c78047d8a.tar.bz2 go-tangerine-0330077d76b48934ab024a309000f83c78047d8a.tar.lz go-tangerine-0330077d76b48934ab024a309000f83c78047d8a.tar.xz go-tangerine-0330077d76b48934ab024a309000f83c78047d8a.tar.zst go-tangerine-0330077d76b48934ab024a309000f83c78047d8a.zip |
moved state and vm to core
Diffstat (limited to 'vm/stack.go')
-rw-r--r-- | vm/stack.go | 65 |
1 files changed, 0 insertions, 65 deletions
diff --git a/vm/stack.go b/vm/stack.go deleted file mode 100644 index c5c2774db..000000000 --- a/vm/stack.go +++ /dev/null @@ -1,65 +0,0 @@ -package vm - -import ( - "fmt" - "math/big" -) - -func newStack() *stack { - return &stack{} -} - -type stack struct { - data []*big.Int - ptr int -} - -func (st *stack) push(d *big.Int) { - stackItem := new(big.Int).Set(d) - if len(st.data) > st.ptr { - st.data[st.ptr] = stackItem - } else { - st.data = append(st.data, stackItem) - } - st.ptr++ -} - -func (st *stack) pop() (ret *big.Int) { - st.ptr-- - ret = st.data[st.ptr] - return -} - -func (st *stack) len() int { - return st.ptr -} - -func (st *stack) swap(n int) { - st.data[st.len()-n], st.data[st.len()-1] = st.data[st.len()-1], st.data[st.len()-n] -} - -func (st *stack) dup(n int) { - st.push(st.data[st.len()-n]) -} - -func (st *stack) peek() *big.Int { - return st.data[st.len()-1] -} - -func (st *stack) require(n int) { - if st.len() < n { - panic(fmt.Sprintf("stack underflow (%d <=> %d)", len(st.data), n)) - } -} - -func (st *stack) Print() { - fmt.Println("### stack ###") - if len(st.data) > 0 { - for i, val := range st.data { - fmt.Printf("%-3d %v\n", i, val) - } - } else { - fmt.Println("-- empty --") - } - fmt.Println("#############") -} |