mod_ctx_base.py 656 B

123456789101112131415161718192021222324252627282930
  1. """"
  2. Базовый контекст языка.
  3. На нём строятся все контексты.
  4. """
  5. class CtxBase:
  6. """
  7. Контекст языка
  8. """
  9. def __init__(self, name: str, parent: "CtxBase"):
  10. assert name != "", "CtxBase.__init__(): name context is empty"
  11. self.__name = name
  12. self.__parent = parent
  13. @property
  14. def name(self) -> str:
  15. """
  16. Имя текущего контекста
  17. """
  18. return self.__name
  19. @property
  20. def parent(self) -> "CtxBase":
  21. """
  22. Родительский контекст
  23. """
  24. return self.__parent