24 lines
732 B
Python
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)
|