diff --git a/test/asm/code-after-endm-endr-endc.asm b/test/asm/code-after-endm-endr-endc.asm new file mode 100644 index 00000000..fa85efa5 --- /dev/null +++ b/test/asm/code-after-endm-endr-endc.asm @@ -0,0 +1,27 @@ +println "start" + +; will not define 'mac' +mac: MACRO + println \1 +ENDM println "<_<" + mac "argument" + +; will not repeat +REPT 3 + println "hey!" +ENDR println "<_<" + +IF 0 + println "skipped" + bad syntax!? +ELSE println "<_<" + println "else clause" +ENDC println "<_<" + +IF 1 + println "if clause" +ELSE println "<_<" + println "not skipped" +ENDC println "<_<" + +println "done" diff --git a/test/asm/code-after-endm-endr-endc.err b/test/asm/code-after-endm-endr-endc.err new file mode 100644 index 00000000..c0db4313 --- /dev/null +++ b/test/asm/code-after-endm-endr-endc.err @@ -0,0 +1,15 @@ +ERROR: code-after-endm-endr-endc.asm(6): + syntax error, unexpected PRINTLN, expecting newline +ERROR: code-after-endm-endr-endc.asm(7): + Macro "mac" not defined +ERROR: code-after-endm-endr-endc.asm(12): + syntax error, unexpected PRINTLN, expecting newline +ERROR: code-after-endm-endr-endc.asm(17): + syntax error, unexpected PRINTLN, expecting newline +ERROR: code-after-endm-endr-endc.asm(19): + syntax error, unexpected PRINTLN, expecting end of file or newline +ERROR: code-after-endm-endr-endc.asm(23): + syntax error, unexpected PRINTLN, expecting newline +ERROR: code-after-endm-endr-endc.asm(25): + syntax error, unexpected PRINTLN, expecting end of file or newline +error: Assembly aborted (7 errors)! diff --git a/test/asm/code-after-endm-endr-endc.out b/test/asm/code-after-endm-endr-endc.out new file mode 100644 index 00000000..793388ac --- /dev/null +++ b/test/asm/code-after-endm-endr-endc.out @@ -0,0 +1,5 @@ +start +else clause +if clause +not skipped +done diff --git a/test/asm/multiple-else.asm b/test/asm/multiple-else.asm new file mode 100644 index 00000000..0d450ea4 --- /dev/null +++ b/test/asm/multiple-else.asm @@ -0,0 +1,18 @@ +if 0 + println "zero" +else + println "one" + if 1 + println "A" + else + println "B" + else + println "C" + else + println "D" + endc +else + println "two" +else + println "three" +endc diff --git a/test/asm/multiple-else.err b/test/asm/multiple-else.err new file mode 100644 index 00000000..e69de29b diff --git a/test/asm/multiple-else.out b/test/asm/multiple-else.out new file mode 100644 index 00000000..2047852c --- /dev/null +++ b/test/asm/multiple-else.out @@ -0,0 +1,2 @@ +one +A