SHS/pkg/shsh/stack.go

23 lines
360 B
Go
Raw Normal View History

package shsh
type TokenStack struct {
buffer []*Token
int capacity
}
func (s *Stack) Push(v *Token) {
s.capacity++
*s.buffer = append(*s.buffer, v)
}
func (s *Stack) Pop() *Token {
if s.capacity <= 0 {
return nil
}
s.capacity--
res := *s.buffer[len(*s.buffer) - 1]
*s = *s.buffer[ :len(*s) - 1]
return ret
}