diff --git a/examples/factorial.bux b/examples/factorial.bux new file mode 100644 index 0000000..03d59f1 --- /dev/null +++ b/examples/factorial.bux @@ -0,0 +1,26 @@ +// Factorial - Recursive function +extern func Std_Io_PrintLine(s: String); +extern func Std_Io_PrintInt(n: int); + +func Factorial(n: int) -> int { + if n <= 1 { + return 1; + } + return n * Factorial(n - 1); +} + +func Main() -> int { + Std_Io_PrintLine("Factorials:"); + + var i: int = 1; + while i <= 10 { + let fact: int = Factorial(i); + Std_Io_PrintInt(i); + Std_Io_PrintLine("! = "); + Std_Io_PrintInt(fact); + Std_Io_PrintLine(""); + i = i + 1; + } + + return 0; +} diff --git a/examples/fibonacci.bux b/examples/fibonacci.bux new file mode 100644 index 0000000..f30886e --- /dev/null +++ b/examples/fibonacci.bux @@ -0,0 +1,24 @@ +// Fibonacci - Recursive function with while loop +extern func Std_Io_PrintLine(s: String); +extern func Std_Io_PrintInt(n: int); + +func Fibonacci(n: int) -> int { + if n <= 1 { + return n; + } + return Fibonacci(n - 1) + Fibonacci(n - 2); +} + +func Main() -> int { + Std_Io_PrintLine("Fibonacci sequence:"); + + var i: int = 0; + while i < 10 { + let fib: int = Fibonacci(i); + Std_Io_PrintInt(fib); + Std_Io_PrintLine(""); + i = i + 1; + } + + return 0; +} diff --git a/examples/hello.bux b/examples/hello.bux new file mode 100644 index 0000000..e539cae --- /dev/null +++ b/examples/hello.bux @@ -0,0 +1,7 @@ +// Hello World - Basic Bux program +extern func Std_Io_PrintLine(s: String); + +func Main() -> int { + Std_Io_PrintLine("Hello, Bux!"); + return 0; +} diff --git a/examples/structs.bux b/examples/structs.bux new file mode 100644 index 0000000..2d02d30 --- /dev/null +++ b/examples/structs.bux @@ -0,0 +1,29 @@ +// Structs - Basic struct usage +extern func Std_Io_PrintLine(s: String); +extern func Std_Io_PrintInt(n: int); + +struct Point { + x: int; + y: int; +} + +func AddPoints(a: Point, b: Point) -> Point { + let result: Point = Point { x: a.x + b.x, y: a.y + b.y }; + return result; +} + +func Main() -> int { + let p1: Point = Point { x: 10, y: 20 }; + let p2: Point = Point { x: 5, y: 15 }; + let sum: Point = AddPoints(p1, p2); + + Std_Io_PrintLine("Point sum:"); + Std_Io_PrintLine("x = "); + Std_Io_PrintInt(sum.x); + Std_Io_PrintLine(""); + Std_Io_PrintLine("y = "); + Std_Io_PrintInt(sum.y); + Std_Io_PrintLine(""); + + return 0; +}