mod_lang.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. """
  2. Инструменты языка и вспомогательные инструменты.
  3. """
  4. from lev0 import Logger
  5. from lev1 import Context
  6. class Lang:
  7. """
  8. Главный класс языка
  9. """
  10. def __init__(self) -> None:
  11. self.__log = Logger("Lang")
  12. self.__log("start")
  13. self.__src: str = ""
  14. self.__lst_ctx: list[Context] = []
  15. def step(self) -> None:
  16. """
  17. Шаг выполнения
  18. """
  19. self.__log("step!")
  20. @property
  21. def start_file(self) -> str:
  22. """
  23. Содержимое стартового файла
  24. """
  25. try:
  26. f = open("./plt/main.plt", "r", encoding="utf-8")
  27. self.__src = f.read()
  28. f.close()
  29. except Exception as e:
  30. self.__log.error(msg=f"Ошибка при чтении файла, ош=\n\t{e}")
  31. return self.__src
  32. def parse_ctx(self) -> None:
  33. """
  34. Парсинг контекстов программы
  35. """
  36. self.__log("")
  37. src = self.__src
  38. while src != "":
  39. lit = src[0]
  40. if lit == "(":
  41. ctx = Context(src)
  42. self.__lst_ctx.append(ctx)