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

fun main() =
  i = 0
  while i < 10
    i = i + 1
    printLn("{i}")

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

(source
  (fn
    (fn_identifier)
    (body
      (assign
        (var_identifier)
        (expression
          (primary_expression
            (integer))))
      (while
        (expression
          (comparison_operator
            (primary_expression
              (var_identifier))
            (primary_expression
              (integer))))
        (body
          (assign
            (var_identifier)
            (expression
              (primary_expression
                (binary_operator
                  (primary_expression
                    (var_identifier))
                  (primary_expression
                    (integer))))))
          (expression
            (primary_expression
              (fn_call
                (var_identifier)
                (fn_argument_list
                  (expression
                    (primary_expression
                      (string
                        (string_start)
                        (interpolation
                          (expression
                            (primary_expression
                              (var_identifier))))
                        (string_end)))))))))))))