Compare commits

..

4 Commits

Author SHA1 Message Date
88a34b87ab fix: исправил проверку выхода за границы памяти 2025-03-29 22:26:57 +03:00
6e3216d16c feat: добавлено выбрасывание исключений в некоторые места
так странно написано потому что я уверен, что будут еще другие исключительные случаи и корнеркейсы, которые я забыл
2025-03-29 22:26:57 +03:00
bdfdfe06da chore: убрал отладочный print в main.py 2025-03-29 22:26:57 +03:00
430db1c2ac fix: всем математические операции помечены как не имеющие доп поля 2025-03-29 22:26:57 +03:00

View File

@ -57,25 +57,25 @@ class VM:
def __init_callbacks__(self): def __init_callbacks__(self):
VM.instr_callbacks = { VM.instr_callbacks = {
# ariphmetic # ariphmetic
OpD(OpF(0), OpL.MATH, OpA.ADD): OpD(OpF.UNEXPANDED, OpL.MATH, OpA.ADD):
self._math_callback_gen(lambda lhs, rhs: lhs + rhs), self._math_callback_gen(lambda lhs, rhs: lhs + rhs),
OpD(OpF.QUICK, OpL.MATH, OpA.ADD): OpD(OpF.QUICK, OpL.MATH, OpA.ADD):
self._math_quick_callback_gen(lambda lhs, rhs: lhs + rhs), self._math_quick_callback_gen(lambda lhs, rhs: lhs + rhs),
OpD(OpF(0), OpL.MATH, OpA.SUB): OpD(OpF.UNEXPANDED, OpL.MATH, OpA.SUB):
self._math_callback_gen(lambda lhs, rhs: lhs - rhs), self._math_callback_gen(lambda lhs, rhs: lhs - rhs),
OpD(OpF.QUICK, OpL.MATH, OpA.SUB): OpD(OpF.QUICK, OpL.MATH, OpA.SUB):
self._math_quick_callback_gen(lambda lhs, rhs: lhs - rhs), self._math_quick_callback_gen(lambda lhs, rhs: lhs - rhs),
OpD(OpF(0), OpL.MATH, OpA.MUL): OpD(OpF.UNEXPANDED, OpL.MATH, OpA.MUL):
self._math_callback_gen(lambda lhs, rhs: lhs * rhs), self._math_callback_gen(lambda lhs, rhs: lhs * rhs),
OpD(OpF.QUICK, OpL.MATH, OpA.MUL): OpD(OpF.QUICK, OpL.MATH, OpA.MUL):
self._math_quick_callback_gen(lambda lhs, rhs: lhs * rhs), self._math_quick_callback_gen(lambda lhs, rhs: lhs * rhs),
OpD(OpF(0), OpL.MATH, OpA.DIV): OpD(OpF.UNEXPANDED, OpL.MATH, OpA.DIV):
self._math_callback_gen(lambda lhs, rhs: lhs // rhs), self._math_callback_gen(lambda lhs, rhs: lhs // rhs),
OpD(OpF.QUICK, OpL.MATH, OpA.DIV): OpD(OpF.QUICK, OpL.MATH, OpA.DIV):