very crude single-token lexer