adoc/token/tokenstream.go

30 lines
395 B
Go
Raw Normal View History

2022-03-15 15:16:15 +01:00
package token
2022-03-10 06:10:36 +01:00
type TokenStream struct {
ts []Token
out chan Token
}
func NewTokenStream(toks []Token) *TokenStream {
stream := &TokenStream{
ts: toks,
out: make(chan Token),
}
go stream.run()
return stream
}
func (s *TokenStream) run() {
for _, tok := range s.ts {
s.out <- tok
}
2022-03-15 15:16:15 +01:00
s.out <- TOKEN_EOS
2022-03-10 06:10:36 +01:00
close(s.out)
}
func (s *TokenStream) Out() chan Token {
return s.out
}