# Copyright (c) PARRRATE T&V 2021. All rights reserved. from bu4.parsing.abstractparser import AbstractParser from bu4.parsing.states.parsestate import ParseState from bu4.parsing.states.psafter import PSAfter __all__ = ('Extension',) class Extension: code: int def __init_subclass__(cls, /, code: int = None, **kwargs): super().__init_subclass__(**kwargs) if code is None: raise TypeError cls.code = code def __init__(self, parser: AbstractParser): self.parser = parser def apply(self, state: PSAfter) -> ParseState: raise NotImplementedError