(source)
| 287 | |
| 288 | @staticmethod |
| 289 | def from_pattern(source): |
| 290 | source = re.sub(r'([\[\]\(\)\|]|\.\.\.)', r' \1 ', source) |
| 291 | source = [s for s in re.split('\s+|(\S*<.*?>)', source) if s] |
| 292 | return Tokens(source, error=DocoptLanguageError) |
| 293 | |
| 294 | def move(self): |
| 295 | return self.pop(0) if len(self) else None |