code: def endBy(p, sep):
      '''`endBy(p, sep)` parses zero or more occurrences of `p`, separated and
      ended by `sep`. Returns a list of values returned by `p`.'''
      return separated(p, sep, 0, maxt=float('inf'), end=Truef endBy(p, sep):
      '''`endBy(p, sep)` parses zero or more occurrences of `p`, separated and
      ended by `sep`. Returns a list of values returned by `p`.'''
      return separated(p, sep, 0, maxt=float('inf'), end=True)
docs: `endBy(p, sep)` parses zero or more occurrences of `p`, separated and
      ended by `sep`. Returns a list of values returned by `p`.