import os import sys from Models.Interpreter.Error import Error, ErrorCodes from ServiceInitializer import ServiceInitializer class Main: def __init__(self) -> None: self.__services = ServiceInitializer() self.__utils = self.__services.utils self.__repo = self.__services.repo self.__interpreter = self.__services.interpreter self.__sly_cclang_interpreter = self.__services.sly_cclang_interpreter def console(self) -> None: """ Getting code from console input :return: """ i = 0 while self.__repo.error is None: self.__repo.line_number = i + 1 #self.__interpreter.interpret(input('> ')) self.__sly_cclang_interpreter.interpret(input('> ')) i += 1 def files(self, file: str) -> None: """ Getting input from file :param file: :return: """ if not os.path.isfile(file): self.__utils.runtime_error(Error(ErrorCodes.FileNotFound)) return if not file.endswith('.cc'): self.__utils.runtime_error(Error(ErrorCodes.WrongFileType)) return f = open(file, 'r', encoding='utf-8').readlines() for i in range(0, len(f)): self.__repo.line_number = i + 1 # self.__interpreter.interpret(f[i]) self.__sly_cclang_interpreter.interpret(f[i]) if __name__ == '__main__': main = Main() print(sys.argv) if len(sys.argv) == 2: main.files(sys.argv[1]) else: main.console()