builtup4/bu4/parsing/targets/apendswith.py

24 lines
732 B
Python

# Copyright (c) PARRRATE T&V 2021. All rights reserved.
from typing import TypeVar
from bu4.parsing.abstractparser import AbstractParser
from bu4.transform.states.transformfinished import TransformFinished
from bu4.transform.states.transformstate import TransformState
from bu4.transform.targets.attarget import ATTarget
__all__ = ('APEndsWith',)
T = TypeVar('T')
class APEndsWith(ATTarget[T]):
def __init__(self, parser: AbstractParser, expected: int, message: str):
self.parser = parser
self.expected = expected
self.message = message
def given(self, parsed: T) -> TransformState[T]:
assert self.parser.read() == self.expected, self.message
return TransformFinished(parsed)