#  Copyright (c) PARRRATE T&V 2021. All rights reserved.

from bu4.parsing.constructs.parsed import Parsed
from bu4.parsing.states.parsestate import ParseState
from bu4.parsing.states.psafter import PSAfter
from bu4.parsing.targets.pstarget import PSTarget

__all__ = ('PSChain',)


class PSChain(PSTarget):
    def __init__(self, target: PSTarget, aftertarget: PSTarget):
        self.target = target
        self.aftertarget = aftertarget

    def given(self, parsed: Parsed) -> ParseState:
        return PSAfter(self.target.given(parsed), self.aftertarget)