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/corpus/trait.txt
================================================================================
trait
================================================================================

trait ToStr =
  toStr() -> Str

trait Animal =
  speak() -> Str
  legs() -> Int
  walk()
  eat(food: FoodType) -> Unit

--------------------------------------------------------------------------------

(source
  (trait
    (type_identifier)
    (field
      (fn_identifier)
      (type
        (type_identifier))))
  (trait
    (type_identifier)
    (field
      (fn_identifier)
      (type
        (type_identifier)))
    (field
      (fn_identifier)
      (type
        (type_identifier)))
    (field
      (fn_identifier))
    (field
      (fn_identifier)
      (param
        (var_identifier)
        (type
          (type_identifier)))
      (type
        (type_identifier)))))