from typing import Tuple from lambdex.fmt.utils.logger import getLogger from .state import State from .token_info import TokenInfo logger = getLogger(__name__) class Context: def __init__(self): self.ret = [] self.op_stack = [] self.state_stack = [State.UNKNOWN] self.cache = None @property def last_op(self) -> TokenInfo: return self.op_stack[-1] @property def last_state(self) -> State: return self.state_stack[-1] def debug(self, text): if not logger.is_debug: return import sys frame = sys._getframe(2)
def __iter__(self): logger = getLogger(__name__) for token in super().__iter__(): yield token logger.debug(token)