Files
compiler-the-translators/tests/programs/fib.alpha
Scarlett d340a05b61 fib
2025-05-06 19:10:18 -04:00

64 lines
1.0 KiB
Plaintext

#include "std.alpha"
function entry : string2integer
function fib : integer2integer
fib(i) := {
[ integer: a; integer: b; integer: count ]
a := 1;
b := 2;
if (i = 0) then {
return 0;
} else {
a := a;
}
if (i = 1) then {
return 1;
} else {
a := a;
}
if (i = 2) then {
return 2;
} else {
a := a;
}
count := 2;
while (count < i) {
count := count + 1;
}
return b;
}
entry (arg) := {
[ integer: result; integer: input; integer: fibValue]
result := printC('E');
result := printC('n');
result := printC('t');
result := printC('e');
result := printC('r');
result := printC(' ');
result := printC('N');
result := printC('u');
result := printC('m');
result := printC('b');
result := printC('e');
result := printC('r');
result := printC(':');
result := printC(' ');
input := inI(1);
fibValue := fib(input);
result := printI(fibValue);
return 0;
}