Implement REDEF to allow redefining EQUS string equates

Fixes #677
This commit is contained in:
Rangi
2021-01-01 14:28:59 -05:00
committed by Eldred Habert
parent 18f3c8ff9a
commit 9d2d5cfcfe
8 changed files with 99 additions and 11 deletions

View File

@@ -425,6 +425,7 @@ static inline void failAssertMsg(enum AssertionType type, char const *msg)
%token T_POP_FATAL
%token T_POP_ASSERT T_POP_STATIC_ASSERT
%token T_POP_PURGE
%token T_POP_REDEF
%token T_POP_POPS
%token T_POP_PUSHS
%token T_POP_POPO
@@ -645,6 +646,7 @@ simple_pseudoop : include
| warn
| assert
| purge
| redef
| pops
| pushs
| popo
@@ -877,6 +879,15 @@ purge : T_POP_PURGE {
}
;
redef : T_POP_REDEF {
lexer_ToggleStringExpansion(false);
} scoped_id {
lexer_ToggleStringExpansion(true);
} T_POP_EQUS string {
sym_RedefString($3, $6);
}
;
purge_list : purge_list_entry
| purge_list T_COMMA purge_list_entry
;