From 0852417019c6129dc356d84d3bd6cb61d78ba7db Mon Sep 17 00:00:00 2001 From: Baitinq Date: Mon, 24 Mar 2025 00:57:07 +0100 Subject: Feature: Add initial support for pointers --- examples/1.src | 2 ++ examples/10.src | 2 ++ examples/11.src | 6 ++++-- examples/12.src | 2 ++ examples/13.src | 2 ++ examples/2.src | 2 ++ examples/3.src | 2 ++ examples/4.src | 2 ++ examples/5.src | 1 + examples/6.5.src | 2 ++ examples/6.src | 2 ++ examples/7.src | 2 ++ examples/8.src | 2 ++ examples/9.src | 2 ++ 14 files changed, 29 insertions(+), 2 deletions(-) (limited to 'examples') diff --git a/examples/1.src b/examples/1.src index d3c8482..5a6da78 100644 --- a/examples/1.src +++ b/examples/1.src @@ -1,3 +1,5 @@ +extern printf = (ptr, i64) => i64; + let main = () => i64 { let s = "hello"; diff --git a/examples/10.src b/examples/10.src index c0bb704..5e1f6b3 100644 --- a/examples/10.src +++ b/examples/10.src @@ -1,3 +1,5 @@ +extern printf = (ptr, i64) => i64; + let main = () => i64 { let counter = 0; diff --git a/examples/11.src b/examples/11.src index 5289f9a..8c45c35 100644 --- a/examples/11.src +++ b/examples/11.src @@ -1,11 +1,13 @@ +extern printf = (ptr, i64) => i64; + let main = () => i64 { let y = (f: (i64) => i64, x: i64) => i64 { return f(x); }; let id = (a: i64) => i64 { - print(a); - print(12); + printf("%d", a); + printf("%d", 12); return a; }; diff --git a/examples/12.src b/examples/12.src index 941682a..c54cfa7 100644 --- a/examples/12.src +++ b/examples/12.src @@ -1,3 +1,5 @@ +extern printf = (ptr, i64) => i64; + let main = () => i64 { let factorial = (n: i64) => i64 { let f = (acc: i64, n: i64) => i64 { diff --git a/examples/13.src b/examples/13.src index c1f2fcb..a2c96e9 100644 --- a/examples/13.src +++ b/examples/13.src @@ -1,3 +1,5 @@ +extern printf = (ptr, i64) => i64; + let main = () => i64 { /* Iterative Fibonacci using while loop. */ let fibonacci_iter = (n: i64) => i64 { diff --git a/examples/2.src b/examples/2.src index 766086d..feeed3f 100644 --- a/examples/2.src +++ b/examples/2.src @@ -1,3 +1,5 @@ +extern printf = (ptr, i64) => i64; + let main = () => i64 { let test = 1922; diff --git a/examples/3.src b/examples/3.src index 8ff1920..70d7ecc 100644 --- a/examples/3.src +++ b/examples/3.src @@ -1,3 +1,5 @@ +extern printf = (ptr, i64) => i64; + let main = () => i64 { let seventeen = 10 + 2 + 4; diff --git a/examples/4.src b/examples/4.src index d1ae454..1718eed 100644 --- a/examples/4.src +++ b/examples/4.src @@ -1,3 +1,5 @@ +extern printf = (ptr, i64) => i64; + let main = () => i64 { let print_one = () => i64 { printf("%d", 1); diff --git a/examples/5.src b/examples/5.src index 7c767ea..954470d 100644 --- a/examples/5.src +++ b/examples/5.src @@ -1,4 +1,5 @@ /* As you see, the language supports variable scopes */ +extern printf = (ptr, i64) => i64; let x = 18; diff --git a/examples/6.5.src b/examples/6.5.src index e82393a..42cfd72 100644 --- a/examples/6.5.src +++ b/examples/6.5.src @@ -1,3 +1,5 @@ +extern printf = (ptr, i64) => i64; + let main = () => i64 { let x = !(1 == 1); if !x { diff --git a/examples/6.src b/examples/6.src index 2492e76..c000bd2 100644 --- a/examples/6.src +++ b/examples/6.src @@ -1,3 +1,5 @@ +extern printf = (ptr, i64) => i64; + let print_input = (input_a: i64, input_b: i64) => i64 { printf("%d", input_a); printf("%d", input_b); diff --git a/examples/7.src b/examples/7.src index fbb8d06..fccf61b 100644 --- a/examples/7.src +++ b/examples/7.src @@ -1,3 +1,5 @@ +extern printf = (ptr, i64) => i64; + let ten = () => i64 { return () => i64 { return 10; diff --git a/examples/8.src b/examples/8.src index f2d1b97..68d2581 100644 --- a/examples/8.src +++ b/examples/8.src @@ -1,3 +1,5 @@ +extern printf = (ptr, i64) => i64; + let main = () => i64 { let fib = (n: i64) => i64 { if n == 0 { diff --git a/examples/9.src b/examples/9.src index f36e92c..e0f919b 100644 --- a/examples/9.src +++ b/examples/9.src @@ -1,3 +1,5 @@ +extern printf = (ptr, i64) => i64; + let print_boolean = (b: bool) => i64 { printf("%d", b); return 0; -- cgit 1.4.1