@@ -13,6 +13,8 @@ fn main() -> Result<(), String> {
13
13
"iterative_fib(10) = {}" ,
14
14
run_iterative_fib_code( & mut jit, 10 ) ?
15
15
) ;
16
+ println ! ( "counting down from 5:" ) ;
17
+ run_countdown_code ( & mut jit, 5 ) ?;
16
18
run_hello ( & mut jit) ?;
17
19
Ok ( ( ) )
18
20
}
@@ -25,6 +27,10 @@ fn run_recursive_fib_code(jit: &mut jit::JIT, input: isize) -> Result<isize, Str
25
27
unsafe { run_code ( jit, RECURSIVE_FIB_CODE , input) }
26
28
}
27
29
30
+ fn run_countdown_code ( jit : & mut jit:: JIT , input : isize ) -> Result < isize , String > {
31
+ unsafe { run_code ( jit, COUNTDOWN_CODE , input) }
32
+ }
33
+
28
34
fn run_iterative_fib_code ( jit : & mut jit:: JIT , input : isize ) -> Result < isize , String > {
29
35
unsafe { run_code ( jit, ITERATIVE_FIB_CODE , input) }
30
36
}
@@ -89,6 +95,18 @@ const RECURSIVE_FIB_CODE: &str = r#"
89
95
}
90
96
"# ;
91
97
98
+ /// Another example: calling our builtin print functon.
99
+ const COUNTDOWN_CODE : & str = r#"
100
+ fn countdown(n) -> (r) {
101
+ r = if n == 0 {
102
+ 0
103
+ } else {
104
+ print(n)
105
+ countdown(n - 1)
106
+ }
107
+ }
108
+ "# ;
109
+
92
110
/// Another example: Iterative fibonacci.
93
111
const ITERATIVE_FIB_CODE : & str = r#"
94
112
fn iterative_fib(n) -> (r) {
0 commit comments