#include "error.h" const char *vm_strerror(int e) { switch (e) { case -ERR_IMAGE_MAGIC: return "Invalid image magic"; case -ERR_IMAGE_INDEX: return "Image indices are invalid"; case -ERR_IMAGE_IO: return "Image I/O error"; case -ERR_OPCODE_UNDEFINED: return "Undefined opcode"; case -ERR_RANGE: return "Range error"; case -ERR_SYMBOL_UNDEFINED: return "Undefined reference to a symbol"; case -ERR_OUT_OF_MEMORY: return "Out of memory"; case -ERR_OPERAND_TYPE: return "Operand type error"; case -ERR_STACK_UNDERFLOW: return "Stack underflow"; case -ERR_STACK_OVERFLOW: return "Stack overflow"; case -ERR_NOT_FOUND: return "Unit not found"; case -ERR_INVALID_STATE: return "Invalid VM state"; case -ERR_ERROR_EXIT: return "Program exited with an error"; default: return "Unknown error"; } }