way better lex function

This commit is contained in:
Aidan Hahn 2019-11-28 22:43:30 -08:00
parent 6f7adc0789
commit 65cecb3647
No known key found for this signature in database
GPG key ID: 327711E983899316
7 changed files with 60 additions and 37 deletions

22
stack.go Normal file
View file

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