First version of the lexer