func (stream *TokenStream) Token() *Token {
	return stream.token
}
Token returns the current Token in the stream, after calling Scan
package jargon
import (
	"io"
	"strings"
)
type Filter func(*TokenStream) *TokenStream
type TokenStream struct {
	next func() (*Token, error)
	token *Token  
	err   error   
}
func (stream *TokenStream) Next() (*Token, error) {
	return stream.next()
}
func NewTokenStream(next func() (*Token, error)) *TokenStream {
	stream := &TokenStream{}
	wrapper := func() (*Token, error) {
		stream.token, stream.err = next()
		return stream.Token(), stream.Err()
	}
	stream.next = wrapper
	return stream
}
func (stream *TokenStream) Scan() bool {
	stream.token, stream.err = stream.Next()
	return stream.token != nil && stream.err == nil
}