21 lines
530 B
Python
21 lines
530 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.transformstate import TransformState
|
|
|
|
__all__ = ('ParsingRead',)
|
|
|
|
T = TypeVar('T')
|
|
|
|
|
|
class ParsingRead(TransformState[T]):
|
|
def __init__(self, parser: AbstractParser[T]):
|
|
self.parser = parser
|
|
|
|
def next(self) -> TransformState[T]:
|
|
code = self.parser.read()
|
|
extension = self.parser.extension_for(code)
|
|
return extension.apply()
|