func New(input []byte) *Lexer {
	x := &Lexer{
		input: input,
		items: make(chan Item),
	}
	go x.run()
	return x
}
// New creates a new scanner for the input data.  This is the lexing half of the
// Lexer / parser.  Basic validation is done in the Lexer for a loose sense of
// correctness, but the rigid correctness is enforced in the parser.
New creates a new scanner for the input data.  This is the lexing half of the
Lexer / parser.  Basic validation is done in the Lexer for a loose sense of
correctness, but the rigid correctness is enforced in the parser.
// New creates a new scanner for the input data . This is the lexing half of the // Lexer / parser . Basic validation is done in the Lexer for a loose sense of // correctness but the rigid correctness is enforced in the parser .
func New(input []byte) *Lexer {
	x := &Lexer{
		input: input,
		items: make(chan Item),
	}
	go x.run()
	return x
}
func New ( input [ ] byte ) * Lexer { x := & Lexer { input : input , items : make ( chan Item ) , } go x . run ( ) return x }
New creates a new scanner for the input data.
New creates a new scanner for the input data .