From 45babd1afe3cac3a2981cf5e9465ce9e2e4de326 Mon Sep 17 00:00:00 2001 From: able Date: Thu, 7 Mar 2024 08:35:44 -0600 Subject: [PATCH] modulize error --- error.h | 41 +++++++++++++++++++++++++++++++++++++++++ hbas.c | 43 +------------------------------------------ 2 files changed, 42 insertions(+), 42 deletions(-) create mode 100644 error.h diff --git a/error.h b/error.h new file mode 100644 index 0000000..5f2dc4a --- /dev/null +++ b/error.h @@ -0,0 +1,41 @@ +typedef enum AsmError_e +{ + ErrOk = 0, + ErrBadRegister, + ErrImmediateOverflow, + ErrInvalidToken, + ErrBadArgumentMeta, + ErrNeedCommaAfterArgument, + ErrLabelImmediate, + ErrNumberImmediate, + ErrBadNumOverflow, + ErrBadNumDigit, + ErrBadNumNoDigit, + ErrLabelAfterLabel, + ErrOutOfMemory, + ErrDuplicateLabel, + ErrTrailingLine, + ErrNeedDirectiveAfterDot, + ErrDirectiveNotImplemented, + ErrUnexpectedToken, +} AsmError; +char *ERRORS[] = { + "Success", + "Bad register name", + "Immediate integer OR relative offset overflow", + "Invalid token", + "Bad argument char? (blame developer of this program)", + "Expected comma after the argument, got something else", + "Label immediate needs label or number", + "Immediate needs to be a number", + "Bad number: u64 overflow", + "Bad number: encountered bad gidit", + "Bad number: no digits presented after the suffix", + "Encountered label after label", + "Out of Memory", + "Duplicate label", + "Encountered trailing identifier after instruction", + "Expected directive after dot", + "Directive is not implemented", + "Unexpected token", +}; diff --git a/hbas.c b/hbas.c index 1fda60f..5e810fe 100644 --- a/hbas.c +++ b/hbas.c @@ -26,6 +26,7 @@ SOFTWARE. #include #include "op.h" +#include "error.h" #include "instructions.c" #include "hash.c" @@ -84,48 +85,6 @@ ArgMeta arg_meta(char arg) return ARGS[NARGS - 1]; } -typedef enum AsmError_e -{ - ErrOk = 0, - ErrBadRegister, - ErrImmediateOverflow, - ErrInvalidToken, - ErrBadArgumentMeta, - ErrNeedCommaAfterArgument, - ErrLabelImmediate, - ErrNumberImmediate, - ErrBadNumOverflow, - ErrBadNumDigit, - ErrBadNumNoDigit, - ErrLabelAfterLabel, - ErrOutOfMemory, - ErrDuplicateLabel, - ErrTrailingLine, - ErrNeedDirectiveAfterDot, - ErrDirectiveNotImplemented, - ErrUnexpectedToken, -} AsmError; -char *ERRORS[] = { - "Success", - "Bad register name", - "Immediate integer OR relative offset overflow", - "Invalid token", - "Bad argument char? (blame developer of this program)", - "Expected comma after the argument, got something else", - "Label immediate needs label or number", - "Immediate needs to be a number", - "Bad number: u64 overflow", - "Bad number: encountered bad gidit", - "Bad number: no digits presented after the suffix", - "Encountered label after label", - "Out of Memory", - "Duplicate label", - "Encountered trailing identifier after instruction", - "Expected directive after dot", - "Directive is not implemented", - "Unexpected token", -}; - typedef struct ByteVec_s { char *buf;