code: def forward_until(self, condition):
          
          c = TokenWithPosition('', self.peek().position)
          while self.hasNext() and not condition(self.peek()):
              c += self.forward(1)
          return c
docs: Forward until one of the provided matches is found.
  
          The returned string contains all characters found *before the condition
          was met. In other words, the condition will be true for the remainder
          of the buffer.
  
          :param condition: set of valid strings