mirror of
https://github.com/gbdev/rgbds.git
synced 2025-11-20 10:12:06 +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