mirror of
https://github.com/gbdev/rgbds.git
synced 2025-11-20 18:22:07 +00:00
Add test to demonstrate lack of expansions in skipIfBlock (#1516)
This commit is contained in:
31
test/asm/skip-expansions.asm
Normal file
31
test/asm/skip-expansions.asm
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
; skipping ahead to `elif`/`else`/`endc`/`endr`/`endm` disables expansions!
|
||||||
|
|
||||||
|
MACRO mac1
|
||||||
|
if _NARG != 2
|
||||||
|
println "args: \#"
|
||||||
|
elif (\2) == 42
|
||||||
|
println "forty-two!"
|
||||||
|
else
|
||||||
|
println "it's ", (\2)
|
||||||
|
endc
|
||||||
|
ENDM
|
||||||
|
|
||||||
|
mac1 elif, 6 * 7 ; this prints "forty-two!" because it takes the `elif`
|
||||||
|
mac1 elif, 6 * 9
|
||||||
|
mac1 elif
|
||||||
|
mac1
|
||||||
|
|
||||||
|
MACRO mac2
|
||||||
|
if _NARG != 2
|
||||||
|
println "args: \#"
|
||||||
|
\1 (\2) == 42 ; if the `if` is not taken, this is not expanded!
|
||||||
|
println "forty-two!"
|
||||||
|
else
|
||||||
|
println "it's ", (\2)
|
||||||
|
endc
|
||||||
|
ENDM
|
||||||
|
|
||||||
|
mac2 elif, 6 * 7 ; this prints "it's $2A" because it skips the `\1` line and takes the `else`
|
||||||
|
mac2 elif, 6 * 9
|
||||||
|
mac2 elif
|
||||||
|
mac2
|
||||||
5
test/asm/skip-expansions.err
Normal file
5
test/asm/skip-expansions.err
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
error: skip-expansions.asm(31) -> skip-expansions.asm::mac2(21):
|
||||||
|
Macro argument '\1' not defined
|
||||||
|
error: skip-expansions.asm(31) -> skip-expansions.asm::mac2(21):
|
||||||
|
syntax error, unexpected (
|
||||||
|
error: Assembly aborted (2 errors)!
|
||||||
8
test/asm/skip-expansions.out
Normal file
8
test/asm/skip-expansions.out
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
forty-two!
|
||||||
|
it's $36
|
||||||
|
args: elif
|
||||||
|
args:
|
||||||
|
it's $2A
|
||||||
|
it's $36
|
||||||
|
args: elif
|
||||||
|
args:
|
||||||
Reference in New Issue
Block a user