24 lines
620 B
Python
24 lines
620 B
Python
# 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
|