# coding:utf8
"""
Модуль предоставляет тип ошибки.
Ошибки могут быть двух типов:
1. Внутренняя ошибка компилятора
2. Внешняя ошибка исходника.
"""

class тОшибка:
	__slots__ = ("__конс", "__бВнутр", "__бИсх", "__стрТип")
	def __init__(сам, пОберон, пТип:str):
		сам.__конс = пОберон.конс
		сам.__бВнутр = False
		сам.__бИсх = False
		сам.__стрТип = пТип

	def Внутр(сам, пВызов:str, пОш:str) -> None:
		'''
		пВызов - имя типа в котором ошибка
		пОш -- само текстовое сообщение
		'''
		сам.__бВнутр = True
		сам.__конс.ОшВнутр(сам.__стрТип + "."+ пВызов + ": ошибка компилятора. "+пОш)

	def Исх(сам, пВызов:str, пОш:str) -> None:
		'''
		пТип - имя типа в котором ошибка
		пОш -- само текстовое сообщение
		'''
		сам.__бИсх = True
		сам.__конс.Ошибка(сам.__стрТип + "."+ пВызов + ": ошибка исходника. "+пОш)

	@property
	def бВнутр(сам):
		return сам.__бВнутр

	@property
	def бИсх(сам):
		return сам.__бИсх
