func NewLexer(src []byte) *Lexer {
	l := &Lexer{src: src}
	l.nextPos.Line = 1
	l.nextPos.Column = 1
	l.next()
	return l
}
NewLexer creates a new lexer that will tokenize the given source
code. See the module-level example for a working example.
package lexer
import (
	"fmt"
)
type Lexer struct {
	src      []byte
	offset   int
	ch       byte
	pos      Position
	nextPos  Position
	hadSpace bool
	lastTok  Token
}
type Position struct {
	Line int
	Column int
}