plum

#treesitter#compiler#wasm

git clone https://git.pyrossh.dev/plum

A statically typed, imperative programming language inspired by rust, python


plum-tooling/tree-sitter-plum/test/highlight/sample.plum
module std

enum Cat(ToStr) =
  | Cat(name: Str, age: Int)

  fun withName(name: Str) -> Cat =
    Cat(name: name, age: self.age)

  fun withAge(age: Int) -> Cat =
    Cat(name: self.name, age: age)

  fun toStr() -> Str =
    "Cat({self.name}, {self.age})"

fun main() =
  printLn("Hello world")