plum
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
| 59e3de6 | 1 | ================================================================================ |
| 59e3de6 | 2 | trait |
| 59e3de6 | 3 | ================================================================================ |
| 59e3de6 | 4 | |
| 59e3de6 | 5 | trait ToStr = |
| 59e3de6 | 6 | toStr() -> Str |
| 59e3de6 | 7 | |
| 59e3de6 | 8 | trait Animal = |
| 59e3de6 | 9 | speak() -> Str |
| 59e3de6 | 10 | legs() -> Int |
| 59e3de6 | 11 | walk() |
| 59e3de6 | 12 | eat(food: FoodType) -> Unit |
| 59e3de6 | 13 | |
| 59e3de6 | 14 | -------------------------------------------------------------------------------- |
| 59e3de6 | 15 | |
| 59e3de6 | 16 | (source |
| 59e3de6 | 17 | (trait |
| 59e3de6 | 18 | (type_identifier) |
| 59e3de6 | 19 | (field |
| 59e3de6 | 20 | (fn_identifier) |
| 8f91d27 | 21 | (type |
| 59e3de6 | 22 | (type_identifier)))) |
| 59e3de6 | 23 | (trait |
| 59e3de6 | 24 | (type_identifier) |
| 59e3de6 | 25 | (field |
| 59e3de6 | 26 | (fn_identifier) |
| 8f91d27 | 27 | (type |
| 59e3de6 | 28 | (type_identifier))) |
| 59e3de6 | 29 | (field |
| 59e3de6 | 30 | (fn_identifier) |
| 8f91d27 | 31 | (type |
| 59e3de6 | 32 | (type_identifier))) |
| 59e3de6 | 33 | (field |
| 59e3de6 | 34 | (fn_identifier)) |
| 59e3de6 | 35 | (field |
| 59e3de6 | 36 | (fn_identifier) |
| 59e3de6 | 37 | (param |
| 59e3de6 | 38 | (var_identifier) |
| 59e3de6 | 39 | (type |
| 59e3de6 | 40 | (type_identifier))) |
| 8f91d27 | 41 | (type |
| 59e3de6 | 42 | (type_identifier))))) |