# 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)