a very simple lexer