GAL / Backend /semantic /errors.py
Clarkoer's picture
add comments ehehe
e6b283b
raw
history blame contribute delete
760 Bytes
# AUTO: Imports a module used by this file.
import re
# AUTO: Sets `_REDUNDANT_PREFIX`.
_REDUNDANT_PREFIX = re.compile(r'^(Semantic Error|Syntax Error|Type Mismatch|Runtime Error)\s*:?\s*', re.IGNORECASE)
# AUTO: Defines class `SemanticError`.
class SemanticError(Exception):
# AUTO: Defines function `__init__`.
def __init__(self, message, line):
# AUTO: Calls `super`.
super().__init__(message)
# AUTO: Sets `clean`.
clean = _REDUNDANT_PREFIX.sub('', str(message)).strip()
# AUTO: Sets `self.message`.
self.message = f"SEMANTIC error line {line}: {clean}"
# AUTO: Defines function `__str__`.
def __str__(self):
# AUTO: Returns this result to the caller.
return self.message