basic lexer with comment ignoring