cclang/old/src/cclang.py

57 lines
1.6 KiB
Python

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()