summaryrefslogtreecommitdiff
path: root/boil/tests/Factorial.vapor
diff options
context:
space:
mode:
authorbd-912 <bdunahu@colostate.edu>2024-04-10 23:40:25 -0600
committerbd-912 <bdunahu@colostate.edu>2024-04-10 23:40:25 -0600
commit1080b37bbe40fe56b919d22804c159cccdca3c95 (patch)
tree8ddbb9528f575e537f925b266c8f366be6acc8b7 /boil/tests/Factorial.vapor
parent61a28b7f8e709d1884ccab15f0dc38ed19dfde70 (diff)
Library rename, created A4 directories
Diffstat (limited to 'boil/tests/Factorial.vapor')
-rw-r--r--boil/tests/Factorial.vapor30
1 files changed, 30 insertions, 0 deletions
diff --git a/boil/tests/Factorial.vapor b/boil/tests/Factorial.vapor
new file mode 100644
index 0000000..28e1126
--- /dev/null
+++ b/boil/tests/Factorial.vapor
@@ -0,0 +1,30 @@
+
+const vmt_Fac
+ :Fac.ComputeFac
+
+
+func Main()
+ t.0 = HeapAllocZ(4)
+ [t.0] = :vmt_Fac
+ if t.0 goto :null1
+ Error("null pointer")
+ null1:
+ t.1 = [t.0]
+ t.1 = [t.1+0]
+ t.2 = call t.1(t.0 10)
+ PrintIntS(t.2)
+ ret
+
+func Fac.ComputeFac(this num)
+ t.0 = LtS(num 1)
+ if0 t.0 goto :if1_else
+ num_aux = 1
+ goto :if1_end
+ if1_else:
+ t.1 = [this]
+ t.1 = [t.1+0]
+ t.2 = Sub(num 1)
+ t.3 = call t.1(this t.2)
+ num_aux = MulS(num t.3)
+ if1_end:
+ ret num_aux