From d15dbaf025df9265dce417faaa5ccf33ae04d4b5 Mon Sep 17 00:00:00 2001 From: Zuhaitz Méndez Fernández de Aránguiz Date: Sat, 17 Jan 2026 12:14:26 +0000 Subject: Fix for #31 --- examples/features/comptime_fib.zc | 25 ++++++++++ examples/features/showcase.zc | 98 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 123 insertions(+) create mode 100644 examples/features/comptime_fib.zc create mode 100644 examples/features/showcase.zc (limited to 'examples/features') diff --git a/examples/features/comptime_fib.zc b/examples/features/comptime_fib.zc new file mode 100644 index 0000000..1ad2898 --- /dev/null +++ b/examples/features/comptime_fib.zc @@ -0,0 +1,25 @@ + +fn main() { + comptime { + var N = 20; + var fib: long[20]; + fib[0] = (long)0; + fib[1] = (long)1; + for var i=2; i +include +include + +struct Point { + x: int, + y: int +} + +enum Event { + Quit, + Click(Point), + KeyPress(char) +} + +trait Drawable { + fn draw(self); +} + +struct Button { + label: char*, + width: int, + height: int +} + +impl Button { + fn draw(self) { + println "[Button: '{self.label}' size={self.width}x{self.height}]"; + } +} + +struct Container { + item: T +} + +impl Container { + fn get(self) -> T { + return self.item; + } +} + +fn run_op(a: int, b: int, op: fn(int, int) -> int) -> int { + return op(a, b); +} + +fn process_event(e: Event) { + match e { + Event::Quit => { + println "Event: Quit received. Shutting down..."; + }, + Event::Click(p) => { + println "Event: Mouse Clicked at ({p.x}, {p.y})"; + }, + Event::KeyPress(k) => { + println "Event: Key Pressed '{k}'"; + }, + _ => { + println "Event: Unknown"; + } + } +} + +fn main() { + defer { println "End of demo!"; } + defer { println "Cleaning up resources..."; } + + println "=> Generics and traits."; + var btn = Button { + label: "Submit", + width: 120, + height: 40 + }; + + var container = Container