# Copyright (c) PARRRATE T&V 2021. All rights reserved. from bu4.parsing.abstractparser import AbstractParser from bu4.parsing.constructs.parsed import Parsed from bu4.parsing.states.parsestate import ParseState from bu4.parsing.states.psfinal import PSFinal from bu4.parsing.targets.pstarget import PSTarget __all__ = ('PSEndsWith',) class PSEndsWith(PSTarget): def __init__(self, parser: AbstractParser, expected: int, message: str): self.parser = parser self.expected = expected self.message = message def given(self, parsed: Parsed) -> ParseState: assert self.parser.read() == self.expected, self.message return PSFinal(parsed)