import re import sys from .utils import get_regexp_width Py36 = (sys.version_info[:2] >= (3, 6)) ###{standalone ###} class LexerConf: def __init__(self, tokens, ignore=(), postlex=None, callbacks=None): self.tokens = tokens self.ignore = ignore self.postlex = postlex self.callbacks = callbacks or {} class ParserConf: def __init__(self, rules, callback, start): self.rules = rules self.callback = callback self.start = start class Pattern(object): def __init__(self, value, flags=()): self.value = value self.flags = frozenset(flags) def __repr__(self): return repr(self.to_regexp()) # Pattern Hashing assumes all subclasses have a differe