aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAryadev Chavali <aryadev@aryadevchavali.com>2023-11-29 15:40:14 +0000
committerAryadev Chavali <aryadev@aryadevchavali.com>2023-11-29 15:40:14 +0000
commit4cee61fc9e196de6b19249b7fecc8905541a0495 (patch)
treed562169cd9f34255d6bce20ecf672f5e69ece5f5
parent9b8936ea0209f2ef371d48675334a427706e218f (diff)
downloadovm-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.c6
-rw-r--r--asm/parser.h3
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,