From a6d844a9a5bc0c52a6bd4a97d0d15e9ce0a5acaf Mon Sep 17 00:00:00 2001 From: Rangi <35663410+Rangi42@users.noreply.github.com> Date: Fri, 19 Feb 2021 16:34:21 -0800 Subject: [PATCH] Add more test cases for IF, REPT, and MACRO (#748) --- test/asm/code-after-endm-endr-endc.asm | 27 ++++++++++++++++++++++++++ test/asm/code-after-endm-endr-endc.err | 15 ++++++++++++++ test/asm/code-after-endm-endr-endc.out | 5 +++++ test/asm/multiple-else.asm | 18 +++++++++++++++++ test/asm/multiple-else.err | 0 test/asm/multiple-else.out | 2 ++ 6 files changed, 67 insertions(+) create mode 100644 test/asm/code-after-endm-endr-endc.asm create mode 100644 test/asm/code-after-endm-endr-endc.err create mode 100644 test/asm/code-after-endm-endr-endc.out create mode 100644 test/asm/multiple-else.asm create mode 100644 test/asm/multiple-else.err create mode 100644 test/asm/multiple-else.out 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