コード例 #1
0
ファイル: context.py プロジェクト: saurav-chakravorty/lambdex
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)
コード例 #2
0
 def __iter__(self):
     logger = getLogger(__name__)
     for token in super().__iter__():
         yield token
         logger.debug(token)