func NewLexer(name string, input []byte) *Lexer {
	l := &Lexer{
		name:   name,
		input:  input,
		state:  lexStart,
		tokens: make(chan Token, 2), // Two token sufficient.
	}
	return l
}
// NewLexer creates a new scanner for the input string.
NewLexer creates a new scanner for the input string.
// NewLexer creates a new scanner for the input string .
func NewLexer(name string, input []byte) *Lexer {
	l := &Lexer{
		name:   name,
		input:  input,
		state:  lexStart,
		tokens: make(chan Token, 2), 
	}
	return l
}
func NewLexer ( name string , input [ ] byte ) * Lexer { l := & Lexer { name : name , input : input , state : lexStart , tokens : make ( chan Token , 2 ) , } return l }
NewLexer creates a new scanner for the input string.
NewLexer creates a new scanner for the input string .
// Two token sufficient.