shithub: rgbds

Download patch

ref: b76819792d8a940cdfed3d07536bcde00c0b296c
parent: 3e945679ad615692c3e9c07f52a21922b561c9a6
author: Rangi <[email protected]>
date: Thu Nov 18 12:28:11 EST 2021

Deprecate `SET` in favor of `=`

`SET` is redundant with `=`, and is already the name of an instruction.

--- a/src/asm/parser.y
+++ b/src/asm/parser.y
@@ -897,12 +897,13 @@
 equ		: T_LABEL T_POP_EQU const { sym_AddEqu($1, $3); }
 ;
 
-set_or_equal	: T_POP_SET | T_POP_EQUAL
+set		: T_LABEL T_POP_EQUAL const { sym_AddSet($1, $3); }
+		| T_LABEL T_POP_SET const {
+			warning(WARNING_OBSOLETE, "`SET` is deprecated; use `=`\n");
+			sym_AddSet($1, $3);
+		}
 ;
 
-set		: T_LABEL set_or_equal const { sym_AddSet($1, $3); }
-;
-
 equs		: T_LABEL T_POP_EQUS string { sym_AddString($1, $3); }
 ;
 
@@ -1090,9 +1091,7 @@
 rsreset		: T_POP_RSRESET { sym_AddSet("_RS", 0); }
 ;
 
-rs_uconst	: %empty {
-			$$ = 1;
-		}
+rs_uconst	: %empty { $$ = 1; }
 		| uconst
 ;
 
@@ -1138,20 +1137,20 @@
 		| T_POP_DL constlist_32bit trailing_comma
 ;
 
-def_equ		: def_id T_POP_EQU const {
-			sym_AddEqu($1, $3);
-		}
+def_equ		: def_id T_POP_EQU const { sym_AddEqu($1, $3); }
 ;
 
-redef_equ	: redef_id T_POP_EQU const {
-			sym_RedefEqu($1, $3);
-		}
+redef_equ	: redef_id T_POP_EQU const { sym_RedefEqu($1, $3); }
 ;
 
-def_set		: def_id set_or_equal const {
+def_set		: def_id T_POP_EQUAL const { sym_AddSet($1, $3); }
+		| redef_id T_POP_EQUAL const { sym_AddSet($1, $3); }
+		| def_id T_POP_SET const {
+			warning(WARNING_OBSOLETE, "`SET` is deprecated; use `=`\n");
 			sym_AddSet($1, $3);
 		}
-		| redef_id set_or_equal const {
+		| redef_id T_POP_SET const {
+			warning(WARNING_OBSOLETE, "`SET` is deprecated; use `=`\n");
 			sym_AddSet($1, $3);
 		}
 ;
@@ -1174,14 +1173,10 @@
 		}
 ;
 
-def_equs	: def_id T_POP_EQUS string {
-			sym_AddString($1, $3);
-		}
+def_equs	: def_id T_POP_EQUS string { sym_AddString($1, $3); }
 ;
 
-redef_equs	: redef_id T_POP_EQUS string {
-			sym_RedefString($1, $3);
-		}
+redef_equs	: redef_id T_POP_EQUS string { sym_RedefString($1, $3); }
 ;
 
 purge		: T_POP_PURGE {
--- a/src/asm/rgbasm.5
+++ b/src/asm/rgbasm.5
@@ -101,7 +101,7 @@
 .Ql name
 will be expanded in all of
 .Ql DEF({name}) ,
-.Ql DEF {name} EQU/SET/EQUS/etc ... ,
+.Ql DEF {name} EQU/=/EQUS/etc ... ,
 .Ql PURGE {name} ,
 and
 .Ql MACRO {name} ,
@@ -987,7 +987,7 @@
 .Ic EQU
 is used to define numerical constant symbols.
 Unlike
-.Ic SET
+.Ic =
 below, constants defined this way cannot be redefined.
 These constants can be used for unchanging values such as properties of the hardware.
 .Bd -literal -offset indent
@@ -1019,9 +1019,7 @@
     assert ITEM_04 == 16
 .Ed
 .Ss Mutable constants
-.Ic SET ,
-or its synonym
-.Ic = ,
+.Ic =
 is used to define numerical symbols like
 .Ic EQU ,
 but these symbols can be redefined.
@@ -1028,9 +1026,9 @@
 This is useful for variables in macros, for counters, etc.
 .Bd -literal -offset indent
 DEF ARRAY_SIZE EQU 4
-DEF   COUNT SET 2
-DEF   COUNT SET 3
-REDEF COUNT SET ARRAY_SIZE+COUNT
+DEF COUNT = 2
+DEF COUNT = 3
+REDEF COUNT = ARRAY_SIZE + COUNT
 COUNT = COUNT*2
 ;\ COUNT now has the value 14
 .Ed
@@ -1085,7 +1083,7 @@
 .Fd #define .
 This expansion is disabled in a few contexts:
 .Ql DEF(name) ,
-.Ql DEF name EQU/SET/EQUS/etc ... ,
+.Ql DEF name EQU/=/EQUS/etc ... ,
 .Ql PURGE name ,
 and
 .Ql MACRO name
@@ -1149,8 +1147,6 @@
 .Pp
 The examples above for
 .Ql EQU ,
-.Ql SET
-or
 .Ql = ,
 .Ql RB ,
 .Ql RW ,
@@ -1159,9 +1155,7 @@
 .Ql EQUS
 all start with
 .Ql DEF .
-(A
-.Ql SET
-or
+(An
 .Ql =
 definition may start with
 .Ql REDEF
@@ -1316,7 +1310,7 @@
 .Bl -column -offset indent "EQUS" "__ISO_8601_LOCAL__"
 .It Sy Name Ta Sy Type Ta Sy Contents
 .It Dv @ Ta Ic EQU Ta PC value (essentially, the current memory address)
-.It Dv _RS Ta Ic SET Ta _RS Counter
+.It Dv _RS Ta Ic = Ta _RS Counter
 .It Dv _NARG Ta Ic EQU Ta Number of arguments passed to macro, updated by Ic SHIFT
 .It Dv __LINE__ Ta Ic EQU Ta The current line number
 .It Dv __FILE__ Ta Ic EQUS Ta The current filename
--- a/test/asm/def.asm
+++ b/test/asm/def.asm
@@ -1,10 +1,10 @@
 def variable = 1
 	println variable
-def variable set 2
+def variable = 2
 	println variable
 redef variable = 3
 	println variable
-redef variable set 4
+redef variable = 4
 	println variable
 
 DEF constant EQU 42
--- a/test/asm/symbol-override.asm
+++ b/test/asm/symbol-override.asm
@@ -1,14 +1,14 @@
-V set 0
-V set 1
+V = 0
+V = 1
     PRINTLN "V={V}"
 
 W equ 1
-W set 0
+W = 0
 
 rsset 1
 X rb 0
-X set 0
+X = 0
 
 SECTION "Test", ROM0[1]
 Y:
-Y set 0
+Y = 0
--- a/test/link/all-instructions.asm
+++ b/test/link/all-instructions.asm
@@ -57,7 +57,7 @@
     ; Bit Operations Instructions
 
 bitop_u3_instruction_list: MACRO
-NBIT SET 0
+NBIT = 0
     REPT 8
         \1 NBIT,a
         \1 NBIT,b
@@ -67,7 +67,7 @@
         \1 NBIT,h
         \1 NBIT,[hl]
         \1 NBIT,l
-NBIT SET NBIT + 1
+NBIT = NBIT + 1
     ENDR
 ENDM