From f21c96203eb3fbca5c389435f5ec927b4f621725 Mon Sep 17 00:00:00 2001 From: Kartik Agaram Date: Tue, 3 Nov 2020 15:42:58 -0800 Subject: 7166 --- apps/tile/main.mu | 82 +++++++++++++++++++++++++++---------------------------- 1 file changed, 40 insertions(+), 42 deletions(-) (limited to 'apps/tile/main.mu') diff --git a/apps/tile/main.mu b/apps/tile/main.mu index c4010c4b..1ef1e268 100644 --- a/apps/tile/main.mu +++ b/apps/tile/main.mu @@ -1,51 +1,49 @@ fn main args-on-stack: (addr array addr array byte) -> _/ebx: int { var args/eax: (addr array addr array byte) <- copy args-on-stack var len/ecx: int <- length args - $main-body: { - compare len, 2 + compare len, 2 + { + break-if-!= + # if single arg is 'test', run tests + var tmp/ecx: (addr addr array byte) <- index args, 1 + var tmp2/eax: boolean <- string-equal? *tmp, "test" + compare tmp2, 0 # false { - break-if-!= - # if single arg is 'test', run tests - var tmp/ecx: (addr addr array byte) <- index args, 1 - var tmp2/eax: boolean <- string-equal? *tmp, "test" - compare tmp2, 0 # false - { - break-if-= - run-tests - return 0 # TODO: get at Num-test-failures somehow - } - # if single arg is 'screen', run in full-screen mode - tmp2 <- string-equal? *tmp, "screen" - compare tmp2, 0 # false - { - break-if-= - interactive - return 0 - } - # if single arg is 'type', run in typewriter mode - tmp2 <- string-equal? *tmp, "type" - compare tmp2, 0 # false - { - break-if-= - repl - return 0 - } - # if single arg is 'test' ... - tmp2 <- string-equal? *tmp, "test2" - compare tmp2, 0 # false - { - break-if-= - test - return 0 - } + break-if-= + run-tests + return 0 # TODO: get at Num-test-failures somehow + } + # if single arg is 'screen', run in full-screen mode + tmp2 <- string-equal? *tmp, "screen" + compare tmp2, 0 # false + { + break-if-= + interactive + return 0 + } + # if single arg is 'type', run in typewriter mode + tmp2 <- string-equal? *tmp, "type" + compare tmp2, 0 # false + { + break-if-= + repl + return 0 + } + # if single arg is 'test' ... + tmp2 <- string-equal? *tmp, "test2" + compare tmp2, 0 # false + { + break-if-= + test + return 0 } - # otherwise error message - print-string-to-real-screen "usage:\n" - print-string-to-real-screen " to run tests: tile test\n" - print-string-to-real-screen " full-screen mode: tile screen\n" - print-string-to-real-screen " regular REPL: tile type\n" - return 1 } + # otherwise error message + print-string-to-real-screen "usage:\n" + print-string-to-real-screen " to run tests: tile test\n" + print-string-to-real-screen " full-screen mode: tile screen\n" + print-string-to-real-screen " regular REPL: tile type\n" + return 1 } fn interactive { -- cgit 1.4.1-2-gfad0