from bu4.parsing.abstractparser import AbstractParser from bu4.parsing.constructs.linked 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, c: int, msg: str): self.parser = parser self.c = c self.msg = msg def given(self, parsed: Parsed) -> ParseState: assert self.parser.read() == self.c, self.msg return PSFinal(parsed)