From 1a544b641107b598632000fca764d74a4ece4d6a Mon Sep 17 00:00:00 2001 From: Max Wash Date: Fri, 7 Nov 2025 09:49:24 +0000 Subject: [PATCH] lang: add a diag for missing whitespace around a binary op --- lang/diag.c | 4 ++++ lang/include/ivy/lang/diag.h | 4 +++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lang/diag.c b/lang/diag.c index a95a8bb..7e2fc7b 100644 --- a/lang/diag.c +++ b/lang/diag.c @@ -8,6 +8,7 @@ static const struct ivy_diag_class diag_classes[] = { ERROR_CLASS(IVY_LANG_E_UNRECOGNISED_SYMBOL, "Unrecognised symbol"), + ERROR_CLASS(IVY_LANG_E_MISSING_WHITESPACE, "Missing whitespace"), ERROR_CLASS(IVY_LANG_E_UNDEFINED_VARIABLE, "Undefined variable"), ERROR_CLASS( IVY_LANG_E_INCORRECT_INLINE_FOR_LOOP, @@ -18,6 +19,9 @@ static const size_t nr_diag_classes = sizeof diag_classes / sizeof diag_classes[ static const struct ivy_diag_msg diag_msg[] = { MSG(IVY_LANG_MSG_UNKNOWN_SYMBOL_ENCOUNTERED, "encountered a symbol that is not part of the Ivy syntax."), + MSG(IVY_LANG_MSG_WHITESPACE_REQUIRED_AROUND_BINARY_OP, + "There must be a space between a binary operator and its " + "operands."), MSG(IVY_LANG_MSG_ASSIGN_TO_UNDEFINED_VARIABLE, "cannot use modify-and-assign operator on an undefined variable."), MSG(IVY_LANG_MSG_DO_UNEXPECTED_IN_INLINE_FOR, diff --git a/lang/include/ivy/lang/diag.h b/lang/include/ivy/lang/diag.h index e93dc8e..f26066e 100644 --- a/lang/include/ivy/lang/diag.h +++ b/lang/include/ivy/lang/diag.h @@ -8,14 +8,16 @@ struct ivy_diag_ctx; enum ivy_lang_diag_code { IVY_LANG_E_NONE = 0, IVY_LANG_E_UNRECOGNISED_SYMBOL, + IVY_LANG_E_MISSING_WHITESPACE, IVY_LANG_E_UNDEFINED_VARIABLE, IVY_LANG_E_INCORRECT_INLINE_FOR_LOOP, }; enum ivy_lang_diag_msg { IVY_LANG_MSG_NONE = 0, - IVY_LANG_MSG_ASSIGN_TO_UNDEFINED_VARIABLE, IVY_LANG_MSG_UNKNOWN_SYMBOL_ENCOUNTERED, + IVY_LANG_MSG_WHITESPACE_REQUIRED_AROUND_BINARY_OP, + IVY_LANG_MSG_ASSIGN_TO_UNDEFINED_VARIABLE, IVY_LANG_MSG_DO_UNEXPECTED_IN_INLINE_FOR, IVY_LANG_MSG_PREVIOUS_EXPRESSION_IS_FOR_BODY, IVY_LANG_MSG_DECLARE_GLOBAL_FOR_ASSIGNMENT,