From fa92a157746ae17f295d31b7a047dfeb99624a13 Mon Sep 17 00:00:00 2001 From: Baitinq Date: Wed, 11 Jun 2025 00:16:17 +0200 Subject: Misc: Rename lang --- examples/-1.pry | 14 ++++++++++ examples/-1.src | 14 ---------- examples/0.pry | 19 ++++++++++++++ examples/0.src | 19 -------------- examples/1.5.pry | 25 ++++++++++++++++++ examples/1.5.src | 25 ------------------ examples/1.pry | 19 ++++++++++++++ examples/1.src | 19 -------------- examples/10.pry | 37 +++++++++++++++++++++++++++ examples/10.src | 37 --------------------------- examples/11.pry | 26 +++++++++++++++++++ examples/11.src | 26 ------------------- examples/12.pry | 51 ++++++++++++++++++++++++++++++++++++ examples/12.src | 51 ------------------------------------ examples/13.pry | 44 ++++++++++++++++++++++++++++++++ examples/13.src | 44 -------------------------------- examples/14.pry | 19 ++++++++++++++ examples/14.src | 19 -------------- examples/15.pry | 22 ++++++++++++++++ examples/15.src | 22 ---------------- examples/16.pry | 21 +++++++++++++++ examples/16.src | 21 --------------- examples/17.pry | 24 +++++++++++++++++ examples/17.src | 24 ----------------- examples/18.pry | 30 ++++++++++++++++++++++ examples/18.src | 30 ---------------------- examples/19.pry | 33 ++++++++++++++++++++++++ examples/19.src | 33 ------------------------ examples/2.pry | 21 +++++++++++++++ examples/2.src | 21 --------------- examples/20.pry | 49 +++++++++++++++++++++++++++++++++++ examples/20.src | 49 ----------------------------------- examples/21.pry | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ examples/21.src | 78 -------------------------------------------------------- examples/22.pry | 45 ++++++++++++++++++++++++++++++++ examples/22.src | 45 -------------------------------- examples/23.pry | 40 +++++++++++++++++++++++++++++ examples/23.src | 40 ----------------------------- examples/24.pry | 48 ++++++++++++++++++++++++++++++++++ examples/24.src | 48 ---------------------------------- examples/3.pry | 21 +++++++++++++++ examples/3.src | 21 --------------- examples/4.pry | 25 ++++++++++++++++++ examples/4.src | 25 ------------------ examples/5.pry | 31 ++++++++++++++++++++++ examples/5.src | 31 ---------------------- examples/6.5.pry | 19 ++++++++++++++ examples/6.5.src | 19 -------------- examples/6.pry | 25 ++++++++++++++++++ examples/6.src | 25 ------------------ examples/7.pry | 28 ++++++++++++++++++++ examples/7.src | 28 -------------------- examples/8.pry | 27 ++++++++++++++++++++ examples/8.src | 27 -------------------- examples/9.pry | 28 ++++++++++++++++++++ examples/9.src | 28 -------------------- 56 files changed, 869 insertions(+), 869 deletions(-) create mode 100644 examples/-1.pry delete mode 100644 examples/-1.src create mode 100644 examples/0.pry delete mode 100644 examples/0.src create mode 100644 examples/1.5.pry delete mode 100644 examples/1.5.src create mode 100644 examples/1.pry delete mode 100644 examples/1.src create mode 100644 examples/10.pry delete mode 100644 examples/10.src create mode 100644 examples/11.pry delete mode 100644 examples/11.src create mode 100644 examples/12.pry delete mode 100644 examples/12.src create mode 100644 examples/13.pry delete mode 100644 examples/13.src create mode 100644 examples/14.pry delete mode 100644 examples/14.src create mode 100644 examples/15.pry delete mode 100644 examples/15.src create mode 100644 examples/16.pry delete mode 100644 examples/16.src create mode 100644 examples/17.pry delete mode 100644 examples/17.src create mode 100644 examples/18.pry delete mode 100644 examples/18.src create mode 100644 examples/19.pry delete mode 100644 examples/19.src create mode 100644 examples/2.pry delete mode 100644 examples/2.src create mode 100644 examples/20.pry delete mode 100644 examples/20.src create mode 100644 examples/21.pry delete mode 100644 examples/21.src create mode 100644 examples/22.pry delete mode 100644 examples/22.src create mode 100644 examples/23.pry delete mode 100644 examples/23.src create mode 100644 examples/24.pry delete mode 100644 examples/24.src create mode 100644 examples/3.pry delete mode 100644 examples/3.src create mode 100644 examples/4.pry delete mode 100644 examples/4.src create mode 100644 examples/5.pry delete mode 100644 examples/5.src create mode 100644 examples/6.5.pry delete mode 100644 examples/6.5.src create mode 100644 examples/6.pry delete mode 100644 examples/6.src create mode 100644 examples/7.pry delete mode 100644 examples/7.src create mode 100644 examples/8.pry delete mode 100644 examples/8.src create mode 100644 examples/9.pry delete mode 100644 examples/9.src (limited to 'examples') diff --git a/examples/-1.pry b/examples/-1.pry new file mode 100644 index 0000000..4b77e10 --- /dev/null +++ b/examples/-1.pry @@ -0,0 +1,14 @@ +/* HELLO! Welcome to the unnamed language */ + +let main = () => i64 { + return 7; +}; + +/* + +Expected stdout: + +Expected return: 7 + +*/ + diff --git a/examples/-1.src b/examples/-1.src deleted file mode 100644 index 4b77e10..0000000 --- a/examples/-1.src +++ /dev/null @@ -1,14 +0,0 @@ -/* HELLO! Welcome to the unnamed language */ - -let main = () => i64 { - return 7; -}; - -/* - -Expected stdout: - -Expected return: 7 - -*/ - diff --git a/examples/0.pry b/examples/0.pry new file mode 100644 index 0000000..90a6861 --- /dev/null +++ b/examples/0.pry @@ -0,0 +1,19 @@ +/* HELLO! Welcome to the unnamed language */ + +import "!stdlib.pry"; + +let main = (argc: i64, argv: *i64) => i64 { + printf("%d\n", argc); + + return 2; +}; + +/* + +Expected stdout: + +1 + +Expected return: 2 + +*/ diff --git a/examples/0.src b/examples/0.src deleted file mode 100644 index 56b540e..0000000 --- a/examples/0.src +++ /dev/null @@ -1,19 +0,0 @@ -/* HELLO! Welcome to the unnamed language */ - -import "!stdlib.src"; - -let main = (argc: i64, argv: *i64) => i64 { - printf("%d\n", argc); - - return 2; -}; - -/* - -Expected stdout: - -1 - -Expected return: 2 - -*/ diff --git a/examples/1.5.pry b/examples/1.5.pry new file mode 100644 index 0000000..375e2d5 --- /dev/null +++ b/examples/1.5.pry @@ -0,0 +1,25 @@ +import "!stdlib.pry"; + +let x = () => i64 { + printf("%d\n", 22); + return 11; +}; + +let main = () => i64 { + let i = 4; + + printf("%d\n", i); + + return x(); +}; + +/* + +Expected stdout: + +4 +22 + +Expected return: 11 + +*/ diff --git a/examples/1.5.src b/examples/1.5.src deleted file mode 100644 index 6997d74..0000000 --- a/examples/1.5.src +++ /dev/null @@ -1,25 +0,0 @@ -import "!stdlib.src"; - -let x = () => i64 { - printf("%d\n", 22); - return 11; -}; - -let main = () => i64 { - let i = 4; - - printf("%d\n", i); - - return x(); -}; - -/* - -Expected stdout: - -4 -22 - -Expected return: 11 - -*/ diff --git a/examples/1.pry b/examples/1.pry new file mode 100644 index 0000000..c497dc4 --- /dev/null +++ b/examples/1.pry @@ -0,0 +1,19 @@ +import "!stdlib.pry"; + +let main = () => i64 { + let s = "hello"; + + printf("%s\n", s); + + return 0; +}; + +/* + +Expected stdout: + +hello + +Expected return: 0 + +*/ diff --git a/examples/1.src b/examples/1.src deleted file mode 100644 index 6fef25a..0000000 --- a/examples/1.src +++ /dev/null @@ -1,19 +0,0 @@ -import "!stdlib.src"; - -let main = () => i64 { - let s = "hello"; - - printf("%s\n", s); - - return 0; -}; - -/* - -Expected stdout: - -hello - -Expected return: 0 - -*/ diff --git a/examples/10.pry b/examples/10.pry new file mode 100644 index 0000000..a11608d --- /dev/null +++ b/examples/10.pry @@ -0,0 +1,37 @@ +import "!stdlib.pry"; + +let main = () => i64 { + let counter = 0; + + while counter < 10 { + printf("%d\n", counter); + counter = counter + 1; + }; + + while true { + if counter == 10 { + return counter; + }; + }; + + return 1; +}; + +/* + +Expected stdout: + +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 + +Expected return: 10 + +*/ diff --git a/examples/10.src b/examples/10.src deleted file mode 100644 index d8dde60..0000000 --- a/examples/10.src +++ /dev/null @@ -1,37 +0,0 @@ -import "!stdlib.src"; - -let main = () => i64 { - let counter = 0; - - while counter < 10 { - printf("%d\n", counter); - counter = counter + 1; - }; - - while true { - if counter == 10 { - return counter; - }; - }; - - return 1; -}; - -/* - -Expected stdout: - -0 -1 -2 -3 -4 -5 -6 -7 -8 -9 - -Expected return: 10 - -*/ diff --git a/examples/11.pry b/examples/11.pry new file mode 100644 index 0000000..2349f10 --- /dev/null +++ b/examples/11.pry @@ -0,0 +1,26 @@ +import "!stdlib.pry"; + +let id = (a: i64) => i64 { + printf("%d\n", a); + printf("%d\n", 12); + return a; +}; + +let main = () => i64 { + let y = (f: (i64) => i64, x: i64) => i64 { + return f(x); + }; + + return y(id, 2); +}; + +/* + +Expected stdout: + +2 +12 + +Expected return: 2 + +*/ diff --git a/examples/11.src b/examples/11.src deleted file mode 100644 index 5c2acad..0000000 --- a/examples/11.src +++ /dev/null @@ -1,26 +0,0 @@ -import "!stdlib.src"; - -let id = (a: i64) => i64 { - printf("%d\n", a); - printf("%d\n", 12); - return a; -}; - -let main = () => i64 { - let y = (f: (i64) => i64, x: i64) => i64 { - return f(x); - }; - - return y(id, 2); -}; - -/* - -Expected stdout: - -2 -12 - -Expected return: 2 - -*/ diff --git a/examples/12.pry b/examples/12.pry new file mode 100644 index 0000000..34519e6 --- /dev/null +++ b/examples/12.pry @@ -0,0 +1,51 @@ +import "!stdlib.pry"; + +let main = () => i64 { + let factorial = (n: i64) => i64 { + let f = (acc: i64, n: i64) => i64 { + if n == 0 { + return acc; + }; + return f(acc * n, n - 1); + }; + return f(1, n); + }; + + let is_even = (n: i64) => bool { + if n % 2 == 0 { + return true; + }; + return false; + }; + + let sum_if = (predicate: (i64) => bool, limit: i64) => i64 { + let sum = 0; + let i = 0; + while i < limit { + if predicate(i) { + sum = sum + i; + }; + i = i + 1; + }; + return sum; + }; + + let fact_val = factorial(6); + printf("%d\n", fact_val); + + let even_sum = sum_if(is_even, 20); + printf("%d\n", even_sum); + + return 0; +}; + +/* + +Expected stdout: + +720 +90 + +Expected return: 0 + +*/ diff --git a/examples/12.src b/examples/12.src deleted file mode 100644 index 1193e4c..0000000 --- a/examples/12.src +++ /dev/null @@ -1,51 +0,0 @@ -import "!stdlib.src"; - -let main = () => i64 { - let factorial = (n: i64) => i64 { - let f = (acc: i64, n: i64) => i64 { - if n == 0 { - return acc; - }; - return f(acc * n, n - 1); - }; - return f(1, n); - }; - - let is_even = (n: i64) => bool { - if n % 2 == 0 { - return true; - }; - return false; - }; - - let sum_if = (predicate: (i64) => bool, limit: i64) => i64 { - let sum = 0; - let i = 0; - while i < limit { - if predicate(i) { - sum = sum + i; - }; - i = i + 1; - }; - return sum; - }; - - let fact_val = factorial(6); - printf("%d\n", fact_val); - - let even_sum = sum_if(is_even, 20); - printf("%d\n", even_sum); - - return 0; -}; - -/* - -Expected stdout: - -720 -90 - -Expected return: 0 - -*/ diff --git a/examples/13.pry b/examples/13.pry new file mode 100644 index 0000000..839caef --- /dev/null +++ b/examples/13.pry @@ -0,0 +1,44 @@ +import "!stdlib.pry"; + +let main = () => i64 { + /* Iterative Fibonacci using while loop. */ + let fibonacci_iter = (n: i64) => i64 { + let a = 0; + let b = 1; + let i = 0; + while i < n { + let temp = b; + b = a + b; + a = temp; + i = i + 1; + }; + return a; + }; + + /* Recursive GCD using Euclid's algorithm. */ + let gcd = (a: i64, b: i64) => i64 { + if b == 0 { + return a; + }; + return gcd(b, a % b); + }; + + let fib_val = fibonacci_iter(10); + printf("%d\n", fib_val); + + let gcd_val = gcd(48, 18); + printf("%d\n", gcd_val); + + return 0; +}; + +/* + +Expected stdout: + +55 +6 + +Expected return: 0 + +*/ diff --git a/examples/13.src b/examples/13.src deleted file mode 100644 index 9de55ac..0000000 --- a/examples/13.src +++ /dev/null @@ -1,44 +0,0 @@ -import "!stdlib.src"; - -let main = () => i64 { - /* Iterative Fibonacci using while loop. */ - let fibonacci_iter = (n: i64) => i64 { - let a = 0; - let b = 1; - let i = 0; - while i < n { - let temp = b; - b = a + b; - a = temp; - i = i + 1; - }; - return a; - }; - - /* Recursive GCD using Euclid's algorithm. */ - let gcd = (a: i64, b: i64) => i64 { - if b == 0 { - return a; - }; - return gcd(b, a % b); - }; - - let fib_val = fibonacci_iter(10); - printf("%d\n", fib_val); - - let gcd_val = gcd(48, 18); - printf("%d\n", gcd_val); - - return 0; -}; - -/* - -Expected stdout: - -55 -6 - -Expected return: 0 - -*/ diff --git a/examples/14.pry b/examples/14.pry new file mode 100644 index 0000000..9792530 --- /dev/null +++ b/examples/14.pry @@ -0,0 +1,19 @@ +let main = () => i64 { + let fn = () => () => i64 { + return () => i64 { + return 4; + }; + }; + + let x = fn(); + + return x(); +}; + +/* + +Expected stdout: + +Expected return: 4 + +*/ diff --git a/examples/14.src b/examples/14.src deleted file mode 100644 index 9792530..0000000 --- a/examples/14.src +++ /dev/null @@ -1,19 +0,0 @@ -let main = () => i64 { - let fn = () => () => i64 { - return () => i64 { - return 4; - }; - }; - - let x = fn(); - - return x(); -}; - -/* - -Expected stdout: - -Expected return: 4 - -*/ diff --git a/examples/15.pry b/examples/15.pry new file mode 100644 index 0000000..a5aac79 --- /dev/null +++ b/examples/15.pry @@ -0,0 +1,22 @@ +extern putchar = (i64) => i64; + +let main = () => i64 { + putchar(72); + putchar(101); + putchar(108); + putchar(108); + putchar(111); + putchar(10); + return 0; +}; + +/* + +Expected stdout: + +Hello + +Expected return: 0 + +*/ + diff --git a/examples/15.src b/examples/15.src deleted file mode 100644 index a5aac79..0000000 --- a/examples/15.src +++ /dev/null @@ -1,22 +0,0 @@ -extern putchar = (i64) => i64; - -let main = () => i64 { - putchar(72); - putchar(101); - putchar(108); - putchar(108); - putchar(111); - putchar(10); - return 0; -}; - -/* - -Expected stdout: - -Hello - -Expected return: 0 - -*/ - diff --git a/examples/16.pry b/examples/16.pry new file mode 100644 index 0000000..3fb29f7 --- /dev/null +++ b/examples/16.pry @@ -0,0 +1,21 @@ +extern SDL_CreateWindow = (*i8, i64, i64, i64, i64, i64) => i64; +extern SDL_Init = (i64) => i64; + +let main = () => i64 { + SDL_Init(1); + SDL_CreateWindow("hello world!", 0, 0, 400, 400, 0); + + while true { + + }; + + return 0; +}; + +/* + +Expected stdout: + +Expected return: 0 + +*/ diff --git a/examples/16.src b/examples/16.src deleted file mode 100644 index 3fb29f7..0000000 --- a/examples/16.src +++ /dev/null @@ -1,21 +0,0 @@ -extern SDL_CreateWindow = (*i8, i64, i64, i64, i64, i64) => i64; -extern SDL_Init = (i64) => i64; - -let main = () => i64 { - SDL_Init(1); - SDL_CreateWindow("hello world!", 0, 0, 400, 400, 0); - - while true { - - }; - - return 0; -}; - -/* - -Expected stdout: - -Expected return: 0 - -*/ diff --git a/examples/17.pry b/examples/17.pry new file mode 100644 index 0000000..c320044 --- /dev/null +++ b/examples/17.pry @@ -0,0 +1,24 @@ +extern malloc = (i64) => *i64; +extern free = (*i64) => void; + +import "!stdlib.pry"; + +let main = () => i64 { + let x = malloc(8); + *x = 10; + printf("%p\n", x); + printf("%d\n", *x); + free(x); + return 0; +}; + +/* + +Expected stdout: + +${SOMEPOINTER} +10 + +Expected return: 0 + +*/ diff --git a/examples/17.src b/examples/17.src deleted file mode 100644 index 93a313f..0000000 --- a/examples/17.src +++ /dev/null @@ -1,24 +0,0 @@ -extern malloc = (i64) => *i64; -extern free = (*i64) => void; - -import "!stdlib.src"; - -let main = () => i64 { - let x = malloc(8); - *x = 10; - printf("%p\n", x); - printf("%d\n", *x); - free(x); - return 0; -}; - -/* - -Expected stdout: - -${SOMEPOINTER} -10 - -Expected return: 0 - -*/ diff --git a/examples/18.pry b/examples/18.pry new file mode 100644 index 0000000..32b2d1a --- /dev/null +++ b/examples/18.pry @@ -0,0 +1,30 @@ +extern malloc = (i64) => *void; +extern free = (*void) => void; + +import "!stdlib.pry"; + +let main = () => i64 { + let x = cast(*i8, malloc(24)); + (*(x+cast(*i8, 0))) = 10; + (*(x+cast(*i8, 1))) = 20; + (*(x+cast(*i8, 2))) = 40; + printf("%p\n", x); + printf("%d\n", *(x+cast(*i8, 0))); + printf("%d\n", *(x+cast(*i8, 1))); + printf("%d\n", *(x+cast(*i8, 2))); + free(cast(*void, x)); + return 0; +}; + +/* + +Expected stdout: + +${SOMEPOINTER} +10 +20 +40 + +Expected return: 0 + +*/ diff --git a/examples/18.src b/examples/18.src deleted file mode 100644 index 741a460..0000000 --- a/examples/18.src +++ /dev/null @@ -1,30 +0,0 @@ -extern malloc = (i64) => *void; -extern free = (*void) => void; - -import "!stdlib.src"; - -let main = () => i64 { - let x = cast(*i8, malloc(24)); - (*(x+cast(*i8, 0))) = 10; - (*(x+cast(*i8, 1))) = 20; - (*(x+cast(*i8, 2))) = 40; - printf("%p\n", x); - printf("%d\n", *(x+cast(*i8, 0))); - printf("%d\n", *(x+cast(*i8, 1))); - printf("%d\n", *(x+cast(*i8, 2))); - free(cast(*void, x)); - return 0; -}; - -/* - -Expected stdout: - -${SOMEPOINTER} -10 -20 -40 - -Expected return: 0 - -*/ diff --git a/examples/19.pry b/examples/19.pry new file mode 100644 index 0000000..2ae1973 --- /dev/null +++ b/examples/19.pry @@ -0,0 +1,33 @@ +extern printf = (*i8, varargs) => void; +extern malloc = (i64) => *void; +extern free = (*void) => void; + +let main = () => i64 { + let buf = cast(*i8, malloc(sizeof(i8) * 13)); + (*(buf+cast(*i8, 0))) = 'h'; + (*(buf+cast(*i8, 1))) = 'e'; + (*(buf+cast(*i8, 2))) = 'l'; + (*(buf+cast(*i8, 3))) = 'l'; + (*(buf+cast(*i8, 4))) = 'o'; + (*(buf+cast(*i8, 5))) = ' '; + (*(buf+cast(*i8, 6))) = 'w'; + (*(buf+cast(*i8, 7))) = 'o'; + (*(buf+cast(*i8, 8))) = 'r'; + (*(buf+cast(*i8, 9))) = 'l'; + (*(buf+cast(*i8, 10))) = 'd'; + (*(buf+cast(*i8, 11))) = '\n'; + (*(buf+cast(*i8, 12))) = '\0'; + printf("%s", buf); + free(cast(*void, buf)); + return 0; +}; + +/* + +Expected stdout: + +hello world! + +Expected return: 0 + +*/ diff --git a/examples/19.src b/examples/19.src deleted file mode 100644 index 2ae1973..0000000 --- a/examples/19.src +++ /dev/null @@ -1,33 +0,0 @@ -extern printf = (*i8, varargs) => void; -extern malloc = (i64) => *void; -extern free = (*void) => void; - -let main = () => i64 { - let buf = cast(*i8, malloc(sizeof(i8) * 13)); - (*(buf+cast(*i8, 0))) = 'h'; - (*(buf+cast(*i8, 1))) = 'e'; - (*(buf+cast(*i8, 2))) = 'l'; - (*(buf+cast(*i8, 3))) = 'l'; - (*(buf+cast(*i8, 4))) = 'o'; - (*(buf+cast(*i8, 5))) = ' '; - (*(buf+cast(*i8, 6))) = 'w'; - (*(buf+cast(*i8, 7))) = 'o'; - (*(buf+cast(*i8, 8))) = 'r'; - (*(buf+cast(*i8, 9))) = 'l'; - (*(buf+cast(*i8, 10))) = 'd'; - (*(buf+cast(*i8, 11))) = '\n'; - (*(buf+cast(*i8, 12))) = '\0'; - printf("%s", buf); - free(cast(*void, buf)); - return 0; -}; - -/* - -Expected stdout: - -hello world! - -Expected return: 0 - -*/ diff --git a/examples/2.pry b/examples/2.pry new file mode 100644 index 0000000..2367212 --- /dev/null +++ b/examples/2.pry @@ -0,0 +1,21 @@ +import "!stdlib.pry"; + +let main = () => i64 { + let test = 1922; + + let uwu = test; + + printf("%d\n", uwu); + + return 0; +}; + +/* + +Expected stdout: + +1922 + +Expected return: 0 + +*/ diff --git a/examples/2.src b/examples/2.src deleted file mode 100644 index d6a81b8..0000000 --- a/examples/2.src +++ /dev/null @@ -1,21 +0,0 @@ -import "!stdlib.src"; - -let main = () => i64 { - let test = 1922; - - let uwu = test; - - printf("%d\n", uwu); - - return 0; -}; - -/* - -Expected stdout: - -1922 - -Expected return: 0 - -*/ diff --git a/examples/20.pry b/examples/20.pry new file mode 100644 index 0000000..0cae122 --- /dev/null +++ b/examples/20.pry @@ -0,0 +1,49 @@ + +extern malloc = (i64) => *void; +extern free = (*void) => void; + +import "!stdlib.pry"; + +let init_array = (n: i64, arr: *i64) => i64 { + let i = 0; + while i < n { + (*(arr + cast(*i64, i))) = i; + i = i + 1; + }; + return 0; +}; + +let main = () => i64 { + let n = 10; + let arr = cast(*i64, malloc(n * 8)); + init_array(n, arr); + + let i = 0; + while i < n { + printf("%d\n", *(arr + cast(*i64, i))); + i = i + 1; + }; + + free(cast(*void, arr)); + + return 0; +}; + +/* + +Expected stdout: + +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 + +Expected return: 0 + +*/ diff --git a/examples/20.src b/examples/20.src deleted file mode 100644 index 6acabc8..0000000 --- a/examples/20.src +++ /dev/null @@ -1,49 +0,0 @@ - -extern malloc = (i64) => *void; -extern free = (*void) => void; - -import "!stdlib.src"; - -let init_array = (n: i64, arr: *i64) => i64 { - let i = 0; - while i < n { - (*(arr + cast(*i64, i))) = i; - i = i + 1; - }; - return 0; -}; - -let main = () => i64 { - let n = 10; - let arr = cast(*i64, malloc(n * 8)); - init_array(n, arr); - - let i = 0; - while i < n { - printf("%d\n", *(arr + cast(*i64, i))); - i = i + 1; - }; - - free(cast(*void, arr)); - - return 0; -}; - -/* - -Expected stdout: - -0 -1 -2 -3 -4 -5 -6 -7 -8 -9 - -Expected return: 0 - -*/ diff --git a/examples/21.pry b/examples/21.pry new file mode 100644 index 0000000..fb30960 --- /dev/null +++ b/examples/21.pry @@ -0,0 +1,78 @@ +extern rand = () => i64; +extern malloc = (i64) => *void; +extern free = (*void) => void; + +import "!stdlib.pry"; + +let init_array = (n: i64, arr: *i64) => void { + let i = 0; + while i < n { + (*(arr + cast(*i64, i))) = rand(); + i = i + 1; + }; + return; +}; + +let print_array = (n: i64, arr: *i64) => void { + let i = 0; + while i < n { + printf("%d\n", *(arr + cast(*i64, i))); + i = i + 1; + }; + return; +}; + +let sort_array = (n: i64, arr: *i64) => void { + let i = 0; + let j = 0; + + while i < n { + j = i + 1; + while j < n { + let x = *(arr + cast(*i64, i)); + let y = *(arr + cast(*i64, j)); + + if x > y { + let tmp = *(arr + cast(*i64, i)); + (*(arr + cast(*i64, i))) = *(arr + cast(*i64, j)); + (*(arr + cast(*i64, j))) = tmp; + }; + + j = j + 1; + }; + i = i + 1; + }; + + return; +}; + +let main = () => i64 { + let n = 10; + let arr = cast(*i64, malloc(n * 8)); + init_array(n, arr); + + printf("Pre-sorted:\n"); + print_array(n, arr); + + sort_array(n, arr); + + printf("Sorted:\n"); + print_array(n, arr); + + free(cast(*void, arr)); + + return 0; +}; + +/* + +Expected stdout: + +Pre-sorted: +${UNSORTED_LIST} +Sorted: +${SORTED_LIST} + +Expected return: 0 + +*/ diff --git a/examples/21.src b/examples/21.src deleted file mode 100644 index 804b242..0000000 --- a/examples/21.src +++ /dev/null @@ -1,78 +0,0 @@ -extern rand = () => i64; -extern malloc = (i64) => *void; -extern free = (*void) => void; - -import "!stdlib.src"; - -let init_array = (n: i64, arr: *i64) => void { - let i = 0; - while i < n { - (*(arr + cast(*i64, i))) = rand(); - i = i + 1; - }; - return; -}; - -let print_array = (n: i64, arr: *i64) => void { - let i = 0; - while i < n { - printf("%d\n", *(arr + cast(*i64, i))); - i = i + 1; - }; - return; -}; - -let sort_array = (n: i64, arr: *i64) => void { - let i = 0; - let j = 0; - - while i < n { - j = i + 1; - while j < n { - let x = *(arr + cast(*i64, i)); - let y = *(arr + cast(*i64, j)); - - if x > y { - let tmp = *(arr + cast(*i64, i)); - (*(arr + cast(*i64, i))) = *(arr + cast(*i64, j)); - (*(arr + cast(*i64, j))) = tmp; - }; - - j = j + 1; - }; - i = i + 1; - }; - - return; -}; - -let main = () => i64 { - let n = 10; - let arr = cast(*i64, malloc(n * 8)); - init_array(n, arr); - - printf("Pre-sorted:\n"); - print_array(n, arr); - - sort_array(n, arr); - - printf("Sorted:\n"); - print_array(n, arr); - - free(cast(*void, arr)); - - return 0; -}; - -/* - -Expected stdout: - -Pre-sorted: -${UNSORTED_LIST} -Sorted: -${SORTED_LIST} - -Expected return: 0 - -*/ diff --git a/examples/22.pry b/examples/22.pry new file mode 100644 index 0000000..b57d7c9 --- /dev/null +++ b/examples/22.pry @@ -0,0 +1,45 @@ +extern malloc = (i64) => *void; + +import "!stdlib.pry"; + +/* declare new struct type */ +let test = struct { + x: i64, + y: *i8, + z: bool +}; + +let main = () => i64 { + /* instanciate new struct. instanciating fields isn't supported here */ + let inst = test{}; + + inst.x = 2; + inst.z = true; + inst.y = malloc(1); + (*(inst.y)) = 5; + + let x = 0; + + printf("Inst x: %d\n", inst.x); + printf("Inst y: %d\n", *(inst.y)); + + if inst.z { + x = 1; + }; + + printf("Test: %d\n", x); + + return 0; +}; + +/* + +Expected stdout: + +Inst x: 2 +Inst y: 5 +Test: 1 + +Expected return: 0 + +*/ diff --git a/examples/22.src b/examples/22.src deleted file mode 100644 index cc367bf..0000000 --- a/examples/22.src +++ /dev/null @@ -1,45 +0,0 @@ -extern malloc = (i64) => *void; - -import "!stdlib.src"; - -/* declare new struct type */ -let test = struct { - x: i64, - y: *i8, - z: bool -}; - -let main = () => i64 { - /* instanciate new struct. instanciating fields isn't supported here */ - let inst = test{}; - - inst.x = 2; - inst.z = true; - inst.y = malloc(1); - (*(inst.y)) = 5; - - let x = 0; - - printf("Inst x: %d\n", inst.x); - printf("Inst y: %d\n", *(inst.y)); - - if inst.z { - x = 1; - }; - - printf("Test: %d\n", x); - - return 0; -}; - -/* - -Expected stdout: - -Inst x: 2 -Inst y: 5 -Test: 1 - -Expected return: 0 - -*/ diff --git a/examples/23.pry b/examples/23.pry new file mode 100644 index 0000000..65b3279 --- /dev/null +++ b/examples/23.pry @@ -0,0 +1,40 @@ +extern malloc = (i64) => *void; + +import "!stdlib.pry"; + +let test = struct { + x: i64, + y: *i8, +}; + +let print_struct = (s: test) => void { + printf("X: %d\n", s.x); + printf("Y: %s\n", s.y); + return; +}; + +let main = () => i64 { + let inst = cast(*test, malloc(sizeof(test))); + + print_struct(*inst); + + (*inst).x = 4; + (*inst).y = "hi"; + + print_struct(*inst); + + return 0; +}; + +/* + +Expected stdout: + +X: 0 +Y: (null) +X: 4 +Y: hi + +Expected return: 0 + +*/ diff --git a/examples/23.src b/examples/23.src deleted file mode 100644 index 31277c9..0000000 --- a/examples/23.src +++ /dev/null @@ -1,40 +0,0 @@ -extern malloc = (i64) => *void; - -import "!stdlib.src"; - -let test = struct { - x: i64, - y: *i8, -}; - -let print_struct = (s: test) => void { - printf("X: %d\n", s.x); - printf("Y: %s\n", s.y); - return; -}; - -let main = () => i64 { - let inst = cast(*test, malloc(sizeof(test))); - - print_struct(*inst); - - (*inst).x = 4; - (*inst).y = "hi"; - - print_struct(*inst); - - return 0; -}; - -/* - -Expected stdout: - -X: 0 -Y: (null) -X: 4 -Y: hi - -Expected return: 0 - -*/ diff --git a/examples/24.pry b/examples/24.pry new file mode 100644 index 0000000..f30a7fc --- /dev/null +++ b/examples/24.pry @@ -0,0 +1,48 @@ +extern malloc = (i64) => *void; + +import "!stdlib.pry"; + +let test = struct { + x: i64, + y: *i8, + z: *test, +}; + +let print_struct = (s: *test) => void { + printf("X: %d\n", (*s).x); + printf("Y: %s\n", (*s).y); + if (*s).z != cast(*test, null) { + print_struct((*s).z); + }; + return; +}; + +let main = () => i64 { + let inst = cast(*test, malloc(sizeof(test))); + let inst2 = cast(*test, malloc(sizeof(test))); + + print_struct(inst); + + (*inst).x = 4; + (*inst).y = "hi"; + (*inst).z = inst2; + + (*inst2).y = "bye"; + + print_struct(inst); + + return 0; +}; + +/* + +Expected stdout: + +X: 0 +Y: (null) +X: 4 +Y: hi + +Expected return: 0 + +*/ diff --git a/examples/24.src b/examples/24.src deleted file mode 100644 index 7349906..0000000 --- a/examples/24.src +++ /dev/null @@ -1,48 +0,0 @@ -extern malloc = (i64) => *void; - -import "!stdlib.src"; - -let test = struct { - x: i64, - y: *i8, - z: *test, -}; - -let print_struct = (s: *test) => void { - printf("X: %d\n", (*s).x); - printf("Y: %s\n", (*s).y); - if (*s).z != cast(*test, null) { - print_struct((*s).z); - }; - return; -}; - -let main = () => i64 { - let inst = cast(*test, malloc(sizeof(test))); - let inst2 = cast(*test, malloc(sizeof(test))); - - print_struct(inst); - - (*inst).x = 4; - (*inst).y = "hi"; - (*inst).z = inst2; - - (*inst2).y = "bye"; - - print_struct(inst); - - return 0; -}; - -/* - -Expected stdout: - -X: 0 -Y: (null) -X: 4 -Y: hi - -Expected return: 0 - -*/ diff --git a/examples/3.pry b/examples/3.pry new file mode 100644 index 0000000..c7b2347 --- /dev/null +++ b/examples/3.pry @@ -0,0 +1,21 @@ +import "!stdlib.pry"; + +let main = () => i64 { + let seventeen = 10 + 2 + 4; + + seventeen = seventeen + 1; + + printf("%d\n", seventeen); + + return seventeen; +}; + +/* + +Expected stdout: + +17 + +Expected return: 17 + +*/ diff --git a/examples/3.src b/examples/3.src deleted file mode 100644 index f10f05c..0000000 --- a/examples/3.src +++ /dev/null @@ -1,21 +0,0 @@ -import "!stdlib.src"; - -let main = () => i64 { - let seventeen = 10 + 2 + 4; - - seventeen = seventeen + 1; - - printf("%d\n", seventeen); - - return seventeen; -}; - -/* - -Expected stdout: - -17 - -Expected return: 17 - -*/ diff --git a/examples/4.pry b/examples/4.pry new file mode 100644 index 0000000..b8c48d2 --- /dev/null +++ b/examples/4.pry @@ -0,0 +1,25 @@ +import "!stdlib.pry"; + +let main = () => i64 { + let print_one = () => i64 { + printf("%d\n", 1); + return 4; + }; + + let y = print_one() + 2; + + printf("%d\n", y); + + return y; +}; + +/* + +Expected stdout: + +1 +6 + +Expected return: 6 + +*/ diff --git a/examples/4.src b/examples/4.src deleted file mode 100644 index 7787593..0000000 --- a/examples/4.src +++ /dev/null @@ -1,25 +0,0 @@ -import "!stdlib.src"; - -let main = () => i64 { - let print_one = () => i64 { - printf("%d\n", 1); - return 4; - }; - - let y = print_one() + 2; - - printf("%d\n", y); - - return y; -}; - -/* - -Expected stdout: - -1 -6 - -Expected return: 6 - -*/ diff --git a/examples/5.pry b/examples/5.pry new file mode 100644 index 0000000..f12fbae --- /dev/null +++ b/examples/5.pry @@ -0,0 +1,31 @@ +/* As you see, the language supports variable scopes */ + +import "!stdlib.pry"; + +let x = 18; + +let foo = () => i64 { + let x = 1; + printf("%d\n", x); + return x; +}; + +let main = () => i64 { + printf("%d\n", x); + let x = 2; + let y = foo(); + printf("%d\n", x); + return x + y; +}; + +/* + +Expected stdout: + +18 +1 +2 + +Expected return: 3 + +*/ diff --git a/examples/5.src b/examples/5.src deleted file mode 100644 index f6b2e62..0000000 --- a/examples/5.src +++ /dev/null @@ -1,31 +0,0 @@ -/* As you see, the language supports variable scopes */ - -import "!stdlib.src"; - -let x = 18; - -let foo = () => i64 { - let x = 1; - printf("%d\n", x); - return x; -}; - -let main = () => i64 { - printf("%d\n", x); - let x = 2; - let y = foo(); - printf("%d\n", x); - return x + y; -}; - -/* - -Expected stdout: - -18 -1 -2 - -Expected return: 3 - -*/ diff --git a/examples/6.5.pry b/examples/6.5.pry new file mode 100644 index 0000000..057181f --- /dev/null +++ b/examples/6.5.pry @@ -0,0 +1,19 @@ +import "!stdlib.pry"; + +let main = () => i64 { + let x = !(1 == 1); + if !x { + printf("Condition\n"); + }; + return 0; +}; + +/* + +Expected stdout: + +Condition + +Expected return: 0 + +*/ diff --git a/examples/6.5.src b/examples/6.5.src deleted file mode 100644 index f7d6229..0000000 --- a/examples/6.5.src +++ /dev/null @@ -1,19 +0,0 @@ -import "!stdlib.src"; - -let main = () => i64 { - let x = !(1 == 1); - if !x { - printf("Condition\n"); - }; - return 0; -}; - -/* - -Expected stdout: - -Condition - -Expected return: 0 - -*/ diff --git a/examples/6.pry b/examples/6.pry new file mode 100644 index 0000000..008ecd9 --- /dev/null +++ b/examples/6.pry @@ -0,0 +1,25 @@ +import "!stdlib.pry"; + +let print_input = (input_a: i64, input_b: i64) => i64 { + printf("%d\n", input_a); + printf("%d\n", input_b); + return input_a + input_b; +}; + +let main = () => i64 { + let i = print_input(1,4); + return print_input(7, 2) + i; +}; + +/* + +Expected stdout: + +1 +4 +7 +2 + +Expected return: 14 + +*/ diff --git a/examples/6.src b/examples/6.src deleted file mode 100644 index 3793f24..0000000 --- a/examples/6.src +++ /dev/null @@ -1,25 +0,0 @@ -import "!stdlib.src"; - -let print_input = (input_a: i64, input_b: i64) => i64 { - printf("%d\n", input_a); - printf("%d\n", input_b); - return input_a + input_b; -}; - -let main = () => i64 { - let i = print_input(1,4); - return print_input(7, 2) + i; -}; - -/* - -Expected stdout: - -1 -4 -7 -2 - -Expected return: 14 - -*/ diff --git a/examples/7.pry b/examples/7.pry new file mode 100644 index 0000000..5867c4e --- /dev/null +++ b/examples/7.pry @@ -0,0 +1,28 @@ +import "!stdlib.pry"; + +let ten = () => i64 { + return () => i64 { + return 10; + }(); +}; + +let main = () => i64 { + let i = 4; + + if (1 - -1 * 2) == 5 - (-1 + 1 + ten() / 2) + 3 { + printf("%d\n", i); + return i; + }; + + return 1; +}; + +/* + +Expected stdout: + +4 + +Expected return: 4 + +*/ diff --git a/examples/7.src b/examples/7.src deleted file mode 100644 index a94891d..0000000 --- a/examples/7.src +++ /dev/null @@ -1,28 +0,0 @@ -import "!stdlib.src"; - -let ten = () => i64 { - return () => i64 { - return 10; - }(); -}; - -let main = () => i64 { - let i = 4; - - if (1 - -1 * 2) == 5 - (-1 + 1 + ten() / 2) + 3 { - printf("%d\n", i); - return i; - }; - - return 1; -}; - -/* - -Expected stdout: - -4 - -Expected return: 4 - -*/ diff --git a/examples/8.pry b/examples/8.pry new file mode 100644 index 0000000..51953d0 --- /dev/null +++ b/examples/8.pry @@ -0,0 +1,27 @@ +import "!stdlib.pry"; + +let main = () => i64 { + let fib = (n: i64) => i64 { + if n == 0 { + return 0; + }; + if n == 1 { + return 1; + }; + return fib(n-2) + fib(n-1); + }; + + let result = fib(30); + printf("%d\n", result); + return result; +}; + +/* + +Expected stdout: + +832040 + +Expected return: 832040 + +*/ diff --git a/examples/8.src b/examples/8.src deleted file mode 100644 index 671640b..0000000 --- a/examples/8.src +++ /dev/null @@ -1,27 +0,0 @@ -import "!stdlib.src"; - -let main = () => i64 { - let fib = (n: i64) => i64 { - if n == 0 { - return 0; - }; - if n == 1 { - return 1; - }; - return fib(n-2) + fib(n-1); - }; - - let result = fib(30); - printf("%d\n", result); - return result; -}; - -/* - -Expected stdout: - -832040 - -Expected return: 832040 - -*/ diff --git a/examples/9.pry b/examples/9.pry new file mode 100644 index 0000000..bbe4b50 --- /dev/null +++ b/examples/9.pry @@ -0,0 +1,28 @@ +import "!stdlib.pry"; + +let print_boolean = (b: bool) => i64 { + printf("%d\n", b); + return 0; +}; + +let main = () => i64 { + let i = true; + i = !i; + + if !i { + print_boolean(!i); + return 1; + }; + + return 0; +}; + +/* + +Expected stdout: + +1 + +Expected return: 1 + +*/ diff --git a/examples/9.src b/examples/9.src deleted file mode 100644 index ae586c2..0000000 --- a/examples/9.src +++ /dev/null @@ -1,28 +0,0 @@ -import "!stdlib.src"; - -let print_boolean = (b: bool) => i64 { - printf("%d\n", b); - return 0; -}; - -let main = () => i64 { - let i = true; - i = !i; - - if !i { - print_boolean(!i); - return 1; - }; - - return 0; -}; - -/* - -Expected stdout: - -1 - -Expected return: 1 - -*/ -- cgit 1.4.1