diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2021-07-16 08:09:42 -0700 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2021-07-16 08:28:56 -0700 |
commit | 44d26b77c45668c9b0c99894a4294cec004361fe (patch) | |
tree | 68a5dcd4971873efd4ce184e9bf9a531c2161813 /linux/factorial.mu | |
parent | ac45f097153afd3a89f43886e4124c5b2c26b98a (diff) | |
download | mu-44d26b77c45668c9b0c99894a4294cec004361fe.tar.gz |
.
Diffstat (limited to 'linux/factorial.mu')
-rw-r--r-- | linux/factorial.mu | 60 |
1 files changed, 0 insertions, 60 deletions
diff --git a/linux/factorial.mu b/linux/factorial.mu deleted file mode 100644 index 7eccc1ec..00000000 --- a/linux/factorial.mu +++ /dev/null @@ -1,60 +0,0 @@ -# compute the factorial of 5, and return the result in the exit code -# -# To run: -# $ ./translate factorial.mu -# $ ./a.elf -# $ echo $? -# 120 -# -# You can also run the automated test suite: -# $ ./a.elf test -# Expected output: -# ........ -# Every '.' indicates a passing test. Failing tests get a 'F'. -# There's only one test in this file, but you'll also see tests running from -# Mu's standard library. -# -# Compare factorial4.subx - -fn factorial n: int -> _/eax: int { - compare n, 1 - # if (n <= 1) return 1 - { - break-if-> - return 1 - } - # n > 1; return n * factorial(n-1) - var tmp/ecx: int <- copy n - tmp <- decrement - var result/eax: int <- factorial tmp - result <- multiply n - return result -} - -fn test-factorial { - var result/eax: int <- factorial 5 - check-ints-equal result, 0x78, "F - test-factorial" -} - -fn main args-on-stack: (addr array addr array byte) -> _/ebx: int { - var args/eax: (addr array addr array byte) <- copy args-on-stack - # len = length(args) - var len/ecx: int <- length args - # if (len <= 1) return factorial(5) - compare len, 1 - { - break-if-> - var exit-status/eax: int <- factorial 5 - return exit-status - } - # if (args[1] == "test") run-tests() - var tmp2/ecx: (addr addr array byte) <- index args, 1 - var tmp3/eax: boolean <- string-equal? *tmp2, "test" - compare tmp3, 0 - { - break-if-= - run-tests - # TODO: get at Num-test-failures somehow - } - return 0 -} |