From dc06b1b6d80ba7819877f4bcd209c358597b76b7 Mon Sep 17 00:00:00 2001 From: Igor M Date: Sun, 17 Mar 2024 14:10:36 +0200 Subject: [PATCH] More specific error messages --- src/directive.c | 4 ++-- src/error.h | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/directive.c b/src/directive.c index 4e531ec..2f002b1 100644 --- a/src/directive.c +++ b/src/directive.c @@ -76,7 +76,7 @@ static AsmError push_data(char *input, size_t len, ByteVec *out, Token *tok, } out->len += tok->num; } else { - return ErrUnexpectedToken; + return ErrNeedsDataLiteral; } *tok = token(input, len, tok->start + tok->len); if (tok->kind == TokNewline || tok->kind == TokEOF) { @@ -85,7 +85,7 @@ static AsmError push_data(char *input, size_t len, ByteVec *out, Token *tok, if (tok->kind == TokComma) { continue; } - return ErrInvalidToken; + return ErrNeedCommaOrNewline; } } diff --git a/src/error.h b/src/error.h index 6dd2760..5c3ed13 100644 --- a/src/error.h +++ b/src/error.h @@ -26,6 +26,8 @@ typedef enum AsmError_e { ErrStringDataNotByte, ErrAlignNeedsNumber, ErrAlignNeedsPow2, + ErrNeedCommaOrNewline, + ErrNeedsDataLiteral, } AsmError; char *ERRORS[] = { "Success", @@ -55,4 +57,6 @@ char *ERRORS[] = { "String literals can be used only in .db directive", ".align requires a number", ".align requires a power of two as an argument", + "Need comma or newline after data literal", + "Data literal expects a number or a string", };