code: public Parser<List<Token>> lexer(Parser<?> delim) {
      return delim.optional(null).next(token().sepEndBy(delim));
    }
docs: A {@link Parser} that greedily runs {@code this} repeatedly, and ignores the pattern recognized by {@code delim}
  before and after each occurrence. The result tokens are wrapped in {@link Token} and are collected and returned
  in a {@link List}.
  
  <p>It is normally not necessary to call this method explicitly. {@link #from(Parser, Parser)} is more convenient
  for simple uses that just need to connect a token level parser with a lexer that produces the tokens. When more
  flexible control over the token list is needed, for example, to parse indentation sensitive language, a
  pre-processor of the token list may be needed.
  
  <p> {@code this} must be a tokenizer that returns a token value.