Files
compiler-the-translators/tests/programs/fib.alpha
2025-05-06 17:34:00 -04:00

40 lines
690 B
Plaintext

(* TEST: [-asc -tc -cg -ir] *)
#include "std.alpha"
function entry : string2integer
function Fib : integer2integer
Fib(i) := {
[integer: a; integer: b ; Boolean: d ; integer: c]
(*if( i = 0 ) then {
return 7;
} else {
i := i;
}*)
(*b := b | (a & c);
b := 2 < 3;*)
(* `if(i = 1) then { return 1; } else {
return Fib(i - 1) + Fib(i - 2);
}
*)
a := 0;
b := 1;
while(0 < i) {
c := a + b;
a := b;
b := c;
}
return c;
}
entry (arg) := {
[ integer: x; integer: y ]
x := 2;
(* x := Fib(2);*)
y := printInteger(Fib(3));
return 1;
}