diff --git a/test/asm/delayed-interpolation.asm b/test/asm/delayed-interpolation.asm index 8b60b685..7a4ff513 100644 --- a/test/asm/delayed-interpolation.asm +++ b/test/asm/delayed-interpolation.asm @@ -12,7 +12,9 @@ MACRO with_each endr ENDM -DEF with_each_stat EQUS "with_each HP, ATK, DEF," +MACRO with_each_stat + with_each HP, ATK, DEF, \1 +ENDM with_each_stat """ println STRFMT("Average ? is %d", (SLIME_? + MIMIC_?) / 2) diff --git a/test/asm/equs-macrodef.asm b/test/asm/equs-macrodef.asm index 849addc7..c5f8b8ca 100644 --- a/test/asm/equs-macrodef.asm +++ b/test/asm/equs-macrodef.asm @@ -1,3 +1,3 @@ def DEFINE equs "MACRO mac\nPRINTLN \"Hello :D\"\nENDM" -DEFINE +{DEFINE} mac diff --git a/test/asm/equs-nest.asm b/test/asm/equs-nest.asm index eebb73da..f3437512 100644 --- a/test/asm/equs-nest.asm +++ b/test/asm/equs-nest.asm @@ -1,3 +1,3 @@ def X equs "redef X equs \"\\\"Success!\\\\n\\\"\"" -X - print X +{X} + print {X} diff --git a/test/asm/equs-newline.asm b/test/asm/equs-newline.asm index 300a7706..4d85b311 100644 --- a/test/asm/equs-newline.asm +++ b/test/asm/equs-newline.asm @@ -1,4 +1,4 @@ def ACT equs "WARN \"First\"\nWARN \"Second\"" - ACT + {ACT} WARN "Third" diff --git a/test/asm/equs-purge.asm b/test/asm/equs-purge.asm index 83a6b7ed..12a23743 100644 --- a/test/asm/equs-purge.asm +++ b/test/asm/equs-purge.asm @@ -1,2 +1,2 @@ def BYE equs "PURGE BYE\nWARN \"Crash?\"\n \n" -BYE +{BYE} diff --git a/test/asm/expansions-change-context.asm b/test/asm/expansions-change-context.asm index 562ae48d..1e310f60 100644 --- a/test/asm/expansions-change-context.asm +++ b/test/asm/expansions-change-context.asm @@ -1,23 +1,23 @@ def string_start equs "println \"hello" -string_start world" +{string_start} world" def triple_string_start equs "println \"\"\"multi" -triple_string_start;ple +{triple_string_start};ple line strings""" def cond_start equs "if 0\nprintln \"false\"\nelif" -cond_start 1 +{cond_start} 1 println "true" else println "nan" endc def loop_start equs "rept 3\nprintln" -loop_start "lol" +{loop_start} "lol" endr def macro_start equs "macro foo\nprintln" -macro_start \1 +{macro_start} \1 endm foo 42 diff --git a/test/asm/interpolation.asm b/test/asm/interpolation.asm index fc21db07..5a4ecb3d 100644 --- a/test/asm/interpolation.asm +++ b/test/asm/interpolation.asm @@ -9,7 +9,7 @@ def INDEX = 1{ZERO_STR}{{FMT}:ZERO_NUM} ; Defines ITEM_100 as "\"hundredth\"" def {NAME}_{d:INDEX} equs "\"hundredth\"" ; Prints "ITEM_100 is hundredth" -PRINTLN STRCAT("{NAME}_{d:INDEX}", " is ", {NAME}_{d:INDEX}) +PRINTLN STRCAT("{NAME}_{d:INDEX}", " is ", {{NAME}_{d:INDEX}}) ; Purges ITEM_100 PURGE {NAME}_{d:INDEX} ASSERT !DEF({NAME}_{d:INDEX}) diff --git a/test/asm/label-macro-arg.asm b/test/asm/label-macro-arg.asm index 7cd5acdd..10ad6170 100644 --- a/test/asm/label-macro-arg.asm +++ b/test/asm/label-macro-arg.asm @@ -22,12 +22,12 @@ ENDM MACRO test_char DEF VAR_DEF equs "DEF sizeof_\1something = 0" -VAR_DEF +{VAR_DEF} DEF sizeof_\1something = 1 PURGE VAR_DEF DEF VAR_PRINT equs "println \"sizeof_\1something equals {sizeof_\1something}\"" - VAR_PRINT + {VAR_PRINT} PURGE VAR_PRINT ENDM diff --git a/test/asm/long-rpn-expression.asm b/test/asm/long-rpn-expression.asm index a3a6a620..79c1ed4f 100644 --- a/test/asm/long-rpn-expression.asm +++ b/test/asm/long-rpn-expression.asm @@ -14,20 +14,29 @@ ENDR ; string of 127 zeros separated by plus signs DEF X EQUS "{X7E}" - db x+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+\ - X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+\ - X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+\ - X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+\ - X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+\ - X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+\ - X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+\ - X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X + db x+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+\ + {X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+\ + {X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+\ + {X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+\ + {X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+\ + {X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+\ + {X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+\ + {X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+\ + {X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+\ + {X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+\ + {X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+\ + {X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+\ + {X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+\ + {X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+\ + {X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+\ + {X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+{X}+\ + {X}+{X}+{X}+{X}+{X}+{X}+{X} x: db 0 ; this tests long RPN expressions being used as the RHS, as this once triggered ; a realloc bug - db 1+(x+X) + db 1+(x+{X}) ; likewise, a long symbol could result in an insufficient *initial* allocation db A00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000+0+0 diff --git a/test/asm/nested-macrodef.asm b/test/asm/nested-macrodef.asm index eaf1d16a..02142c98 100644 --- a/test/asm/nested-macrodef.asm +++ b/test/asm/nested-macrodef.asm @@ -1,6 +1,6 @@ MACRO outer_ok def definition equs "MACRO inner_ok\nPRINTLN \"Hello!\"\nENDM" -definition +{definition} PURGE definition ENDM @@ -10,7 +10,7 @@ ENDM MACRO outer_arg def definition equs "MACRO inner_arg\nPRINTLN \"outer: \1\\ninner: \\1\"\nENDM" -definition +{definition} PURGE definition ENDM diff --git a/test/asm/rept-macro-fstack-trace.asm b/test/asm/rept-macro-fstack-trace.asm index df01a75b..79457a6e 100644 --- a/test/asm/rept-macro-fstack-trace.asm +++ b/test/asm/rept-macro-fstack-trace.asm @@ -7,7 +7,7 @@ MACRO outer PURGE inner ENDC DEF s EQUS "\nMACRO inner\nREPT 2\nREPT 2\nWARN \"round \{d:it\}\"\nDEF it += 1\nENDR\nENDR\nENDM" - s + {s} PURGE s ENDC inner diff --git a/test/asm/shift.asm b/test/asm/shift.asm index 7b782a2f..2ac4247c 100644 --- a/test/asm/shift.asm +++ b/test/asm/shift.asm @@ -1,7 +1,7 @@ macro test ; Test the rpn system, as well as the linker... DEF expr EQUS STRRPL(STRRPL("\1 + zero)", "<< ", "<< ("), ">> ", ">> (") - dl expr + dl {expr} PURGE expr ; ...as well as the constexpr system diff --git a/test/asm/strfmt.asm b/test/asm/strfmt.asm index d4263090..80a16f29 100644 --- a/test/asm/strfmt.asm +++ b/test/asm/strfmt.asm @@ -1,5 +1,5 @@ DEF VAL EQUS STRFMT("Hello %s! I am %d years old today!", "world", $f) -PRINTLN "{VAL}" +PRINTLN #VAL DEF N = -42 PRINTLN STRFMT("signed %010d == unsigned %010u", N, N) @@ -10,10 +10,10 @@ PRINTLN STRFMT("\tdb %#03{s:FMT} %% 26\t; %#03{FMT}", N, N % 26) PRINTLN STRFMT("%d = %#x = %#b = %#o != %f", 42, 42, 42, 42, 42.0) -DEF TEMPLATE EQUS "\"%s are %s\\n\"" -PRINT STRFMT(TEMPLATE, "roses", "red") -PRINT STRFMT(TEMPLATE, "violets", "blue") -PRINT STRFMT(TEMPLATE, "void", 0, "extra") +DEF TEMPLATE EQUS "%s are %s\n" +PRINT STRFMT(#TEMPLATE, "roses", "red") +PRINT STRFMT(#TEMPLATE, "violets", "blue") +PRINT STRFMT(#TEMPLATE, "void", 0, "extra") PRINTLN STRCAT(STRFMT(STRFMT("%%%s.%d%s", "", 9, "f"), 3.14159), \ STRFMT(" ~ %s", STRFMT("%s%x", "thr", 238))) diff --git a/test/asm/unique-id-nested.asm b/test/asm/unique-id-nested.asm index 94c55bf4..9dd2508c 100644 --- a/test/asm/unique-id-nested.asm +++ b/test/asm/unique-id-nested.asm @@ -4,7 +4,7 @@ MACRO m1 PRINTLN "Within nested MACRO: \\@" \n ENDM mm""" - nested + {nested} PURGE nested, mm PRINTLN "Within MACRO: \@" ENDM @@ -22,7 +22,7 @@ MACRO m2 PRINTLN "Within nested MACRO: \\@" \n ENDM mm""" - nested + {nested} PURGE nested, mm PRINTLN "Within MACRO: \@" ENDM diff --git a/test/asm/unique-id.asm b/test/asm/unique-id.asm index 6b69eecb..331ffa8a 100644 --- a/test/asm/unique-id.asm +++ b/test/asm/unique-id.asm @@ -1,15 +1,15 @@ DEF warn_unique EQUS "WARN \"\\@!\"" macro m - warn_unique + {warn_unique} REPT 2 - warn_unique + {warn_unique} ENDR - warn_unique + {warn_unique} endm - warn_unique + {warn_unique} m - warn_unique + {warn_unique} m - warn_unique + {warn_unique} diff --git a/test/link/patch-diagnostics.asm b/test/link/patch-diagnostics.asm index 63960c7f..21e1a0a8 100644 --- a/test/link/patch-diagnostics.asm +++ b/test/link/patch-diagnostics.asm @@ -1,14 +1,14 @@ def fzero equs "startof(\"test\")" section "test", rom0 -ld a, $8000_0000 / (fzero - 1) -ld a, $8000_0000 / (fzero - 2) -ld a, 1 << (fzero - 1) -ld a, 1 << (fzero + 32) -ld a, (fzero - 1) >> 1 -ld a, 1 >> (fzero - 1) -ld a, 1 >> (fzero + 32) -ld a, 1 >>> (fzero - 1) -ld a, 1 >>> (fzero + 32) +ld a, $8000_0000 / ({fzero} - 1) +ld a, $8000_0000 / ({fzero} - 2) +ld a, 1 << ({fzero} - 1) +ld a, 1 << ({fzero} + 32) +ld a, ({fzero} - 1) >> 1 +ld a, 1 >> ({fzero} - 1) +ld a, 1 >> ({fzero} + 32) +ld a, 1 >>> ({fzero} - 1) +ld a, 1 >>> ({fzero} + 32) ; We rely on this landing at address $0000, which isn't *guaranteed*... assert startof("test") == 0 diff --git a/test/link/section-union/align-conflict.asm b/test/link/section-union/align-conflict.asm index c5784e9b..5f3a9ebb 100644 --- a/test/link/section-union/align-conflict.asm +++ b/test/link/section-union/align-conflict.asm @@ -4,7 +4,7 @@ ELSE def ATTRS equs "[$CAFE]" ENDC -SECTION UNION "conflicting alignment", WRAM0 ATTRS +SECTION UNION "conflicting alignment", WRAM0 {ATTRS} db PURGE ATTRS diff --git a/test/link/section-union/align-ofs-conflict.asm b/test/link/section-union/align-ofs-conflict.asm index 1f321220..5537564e 100644 --- a/test/link/section-union/align-ofs-conflict.asm +++ b/test/link/section-union/align-ofs-conflict.asm @@ -4,7 +4,7 @@ ELSE def ATTRS equs ",ALIGN[4,14]" ENDC -SECTION UNION "conflicting alignment", WRAM0 ATTRS +SECTION UNION "conflicting alignment", WRAM0 {ATTRS} db PURGE ATTRS diff --git a/test/link/section-union/bad-types.asm b/test/link/section-union/bad-types.asm index efa914d8..23f4ca26 100644 --- a/test/link/section-union/bad-types.asm +++ b/test/link/section-union/bad-types.asm @@ -4,7 +4,7 @@ ELSE def TYPE equs "WRAM0" ENDC -SECTION UNION "conflicting types", TYPE +SECTION UNION "conflicting types", {TYPE} db PURGE TYPE diff --git a/test/link/section-union/bank-conflict.asm b/test/link/section-union/bank-conflict.asm index d14f834a..eb8ea255 100644 --- a/test/link/section-union/bank-conflict.asm +++ b/test/link/section-union/bank-conflict.asm @@ -2,7 +2,7 @@ IF !DEF(SECOND) def SECOND equs "4" ENDC -SECTION UNION "conflicting banks", WRAMX, BANK[SECOND] +SECTION UNION "conflicting banks", WRAMX, BANK[{SECOND}] db PURGE SECOND diff --git a/test/link/section-union/data-overlay.asm b/test/link/section-union/data-overlay.asm index 049c4f8d..81bf1077 100644 --- a/test/link/section-union/data-overlay.asm +++ b/test/link/section-union/data-overlay.asm @@ -5,6 +5,6 @@ ELSE ENDC SECTION UNION "overlaid data", ROM0 - DATA + {DATA} PURGE DATA diff --git a/test/link/section-union/different-ofs.asm b/test/link/section-union/different-ofs.asm index 29241e38..9a05c220 100644 --- a/test/link/section-union/different-ofs.asm +++ b/test/link/section-union/different-ofs.asm @@ -4,7 +4,7 @@ ELSE def ATTRS equs ",ALIGN[3,6]" ENDC -SECTION UNION "conflicting alignment", WRAM0 ATTRS +SECTION UNION "conflicting alignment", WRAM0 {ATTRS} db PURGE ATTRS diff --git a/test/link/section-union/different-syntaxes.asm b/test/link/section-union/different-syntaxes.asm index d139952d..54f5d089 100644 --- a/test/link/section-union/different-syntaxes.asm +++ b/test/link/section-union/different-syntaxes.asm @@ -5,6 +5,6 @@ ELSE ENDC SECTION UNION "different syntaxes", ROM0 - INSTR + {INSTR} PURGE INSTR diff --git a/test/link/section-union/split-data.asm b/test/link/section-union/split-data.asm index fc372fb7..cc5346a5 100644 --- a/test/link/section-union/split-data.asm +++ b/test/link/section-union/split-data.asm @@ -5,6 +5,6 @@ ELSE ENDC SECTION UNION "mutually-overlaid data", ROM0 - DATA + {DATA} PURGE DATA