Skip to content

matcool/tack-lang

Repository files navigation

tack

very silly toy language

fn main(): i32 {
	return 42;
}

Roadmap

  • functions
  • variables
  • floats
  • if statements
  • else statements
  • else if
  • while statements
  • for loops
  • string
  • structs
  • structs as function args
  • pointers
  • import
  • arrays
  • struct literals
     struct Point {
     	x: i32;
     	y: i32;
     }
     fn main(): i32 {
     	let point: Point = Point { x: 10, y: 20 };
     	return point.x;
     }
  • struct methods
     struct Point {
     	x: i32;
     	y: i32;
    
     	fn dist_squared(self): i32 {
     		return self.x * self.x + self.y * self.y;
     	}
     }
    
     fn main(): i32 {
     	let point: Point = Point { x: 10, y: 20 };
     	return point.dist_squared();
     }
  • standard library
  • error handling (Result?, try expr?)
  • block expressions, yield statements
  • basic generics
     // not sure on syntax still
     fn add<T>(a: T, b: T): T {
     	return a + b;
     }
     fn main(): i32 {
     	// also not sure
     	return add<i32>(1, 2);
     }

About

toy language

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published