Allow empty macro arguments, with a warning

Fixes #739
This commit is contained in:
Rangi
2021-02-17 18:54:02 -05:00
committed by Rangi
parent 63d15ac8c9
commit 1dafc1c762
11 changed files with 106 additions and 23 deletions

View File

@@ -67,6 +67,7 @@ enum LexerMode {
};
void lexer_SetMode(enum LexerMode mode);
bool lexer_IsRawMode(void);
void lexer_ToggleStringExpansion(bool enable);
uint32_t lexer_GetIFDepth(void);

View File

@@ -10,6 +10,7 @@
#define RGBDS_MACRO_H
#include <stdint.h>
#include <stdbool.h>
#include <stdlib.h>
#include "asm/warning.h"
@@ -20,7 +21,7 @@ struct MacroArgs;
struct MacroArgs *macro_GetCurrentArgs(void);
struct MacroArgs *macro_NewArgs(void);
void macro_AppendArg(struct MacroArgs **args, char *s);
void macro_AppendArg(struct MacroArgs **args, char *s, bool isLastArg);
void macro_UseNewArgs(struct MacroArgs *args);
void macro_FreeArgs(struct MacroArgs *args);
char const *macro_GetArg(uint32_t i);

View File

@@ -20,6 +20,7 @@ enum WarningID {
WARNING_DIV, /* Division undefined behavior */
WARNING_EMPTY_DATA_DIRECTIVE, /* `db`, `dw` or `dl` directive without data in ROM */
WARNING_EMPTY_ENTRY, /* Empty entry in `db`, `dw` or `dl` */
WARNING_EMPTY_MACRO_ARG, /* Empty macro argument */
WARNING_EMPTY_STRRPL, /* Empty second argument in `STRRPL` */
WARNING_LARGE_CONSTANT, /* Constants too large */
WARNING_LONG_STR, /* String too long for internal buffers */