Allow trailing commas in bare lists

This applies to macro arguments, DB, DW, DL, DS,
PRINT, PRINTLN, EXPORT, PURGE, and OPT.

It also removes support for empty entries in DB/DW/DL.
(Deprecating it would require keeping parser support,
which is ambiguous with trailing commas.)

Fixes #753
This commit is contained in:
Rangi
2021-02-28 21:19:15 -05:00
committed by Eldred Habert
parent c637447d5d
commit 56071599e7
16 changed files with 155 additions and 153 deletions

View File

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

View File

@@ -21,7 +21,7 @@ struct MacroArgs;
struct MacroArgs *macro_GetCurrentArgs(void);
struct MacroArgs *macro_NewArgs(void);
void macro_AppendArg(struct MacroArgs **args, char *s, bool isLastArg);
void macro_AppendArg(struct MacroArgs **args, char *s);
void macro_UseNewArgs(struct MacroArgs *args);
void macro_FreeArgs(struct MacroArgs *args);
char const *macro_GetArg(uint32_t i);

View File

@@ -19,7 +19,6 @@ enum WarningID {
WARNING_CHARMAP_REDEF, /* Charmap entry re-definition */
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 */