diff options
author | Aryadev Chavali <aryadev@aryadevchavali.com> | 2023-11-29 15:40:14 +0000 |
---|---|---|
committer | Aryadev Chavali <aryadev@aryadevchavali.com> | 2023-11-29 15:40:14 +0000 |
commit | 4cee61fc9e196de6b19249b7fecc8905541a0495 (patch) | |
tree | d562169cd9f34255d6bce20ecf672f5e69ece5f5 | |
parent | 9b8936ea0209f2ef371d48675334a427706e218f (diff) | |
download | ovm-4cee61fc9e196de6b19249b7fecc8905541a0495.tar.gz ovm-4cee61fc9e196de6b19249b7fecc8905541a0495.tar.bz2 ovm-4cee61fc9e196de6b19249b7fecc8905541a0495.zip |
Added parse errors for %USE calls
So %USE <STRING> is the expected call pattern, so there's an error if
there isn't a string after %USE.
The other two errors are file I/O errors i.e. nonexistent files or
errors in parsing the other file. We don't report specifics about the
other file, that should be up to the user to check themselves.
-rw-r--r-- | asm/parser.c | 6 | ||||
-rw-r--r-- | asm/parser.h | 3 |
2 files changed, 9 insertions, 0 deletions
diff --git a/asm/parser.c b/asm/parser.c index 421c721..fbffd84 100644 --- a/asm/parser.c +++ b/asm/parser.c @@ -39,6 +39,12 @@ const char *perr_as_cstr(perr_t perr) return "EXPECTED_LABEL"; case PERR_EXPECTED_OPERAND: return "EXPECTED_OPERAND"; + case PERR_PREPROCESSOR_EXPECTED_STRING: + return "PREPROCESSOR_EXPECTED_STRING"; + case PERR_PREPROCESSOR_FILE_NONEXISTENT: + return "PREPROCESSOR_FILE_NONEXISTENT"; + case PERR_PREPROCESSOR_FILE_PARSE_ERROR: + return "PREPROCESSOR_FILE_PARSE_ERROR"; case PERR_PREPROCESSOR_EXPECTED_END: return "PREPROCESSOR_EXPECTED_END"; case PERR_PREPROCESSOR_EXPECTED_NAME: diff --git a/asm/parser.h b/asm/parser.h index a8748d0..c727eae 100644 --- a/asm/parser.h +++ b/asm/parser.h @@ -28,7 +28,10 @@ typedef enum PERR_EXPECTED_LABEL, PERR_EXPECTED_OPERAND, PERR_PREPROCESSOR_EXPECTED_NAME, + PERR_PREPROCESSOR_EXPECTED_STRING, PERR_PREPROCESSOR_EXPECTED_END, + PERR_PREPROCESSOR_FILE_NONEXISTENT, + PERR_PREPROCESSOR_FILE_PARSE_ERROR, PERR_PREPROCESSOR_UNKNOWN_NAME, PERR_INVALID_RELATIVE_ADDRESS, PERR_UNKNOWN_OPERATOR, |