def forward_until(self, condition):
c = TokenWithPosition('<STR_LIT>', self.peek().position)<EOL>while self.hasNext() and not condition(self.peek()):<EOL><INDENT>c += self.forward(<NUM_LIT:1>)<EOL><DEDENT>return c<EOL>
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