json/internal/lexer/statefunc.go

18 lines
290 B
Go
Raw Normal View History

2022-12-27 02:37:02 +03:00
package lexer
2022-11-16 05:11:19 +03:00
2022-12-27 02:37:02 +03:00
type stateFunc func(*Lexer) stateFunc
2022-11-16 05:11:19 +03:00
type stateStack []stateFunc
func (ss *stateStack) Push(s stateFunc) {
*ss = append(*ss, s)
}
func (ss *stateStack) Pop() (s stateFunc) {
if len(*ss) == 0 {
return nil
}
*ss, s = (*ss)[:len(*ss)-1], (*ss)[len(*ss)-1]
return s
}