21 lines
686 B
Python
21 lines
686 B
Python
# 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)
|