From f2a85cf03777bc4c6b9219a5484f8653f58bc1e4 Mon Sep 17 00:00:00 2001 From: ElectronixTM Date: Sat, 29 Mar 2025 21:30:56 +0300 Subject: [PATCH] =?UTF-8?q?feat:=20=D0=9A=D0=BB=D0=B0=D1=81=D1=81=D1=8B=20?= =?UTF-8?q?=D0=B8=D1=81=D0=BA=D0=BB=D1=8E=D1=87=D0=B5=D0=BD=D0=B8=D0=B9=20?= =?UTF-8?q?=D0=B2=D0=B8=D1=80=D1=82=D1=83=D0=B0=D0=BB=D1=8C=D0=BD=D0=BE?= =?UTF-8?q?=D0=B9=20=D0=BC=D0=B0=D1=88=D0=B8=D0=BD=D1=8B=20=D0=BD=D0=B0?= =?UTF-8?q?=D0=BF=D0=B8=D1=81=D0=B0=D0=BD=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/vm.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/vm.py b/src/vm.py index 77eb1f9..99a4135 100644 --- a/src/vm.py +++ b/src/vm.py @@ -21,9 +21,19 @@ class VMCC(IntFlag): NEGATIVE = 1 << 1 ZERO = 1 << 0 +@dataclass class Breakpoint(Exception): address: int +class VMExceptionType(Enum): + END_OF_MEM = auto() + INVALID_OPCODE = auto() + +@dataclass +class VMException(Exception): + cause: VMExceptionType + pc: int + @dataclass class VM: instr_callbacks: ClassVar[dict[OpcodeDescription, Callable]]