Lexer written in Go