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/if.txt
================================================================================
if
================================================================================
fun main() =
if a < b
printLn("a is less than b")
else if a > 9
printLn(a == 9)
else if a > 18
printLn(b == 0)
else
if a > 5
printLn(a)
else
printLn("None")
--------------------------------------------------------------------------------
(source
(fn
(fn_identifier)
(body
(if
(expression
(comparison_operator
(primary_expression
(var_identifier))
(primary_expression
(var_identifier))))
(body
(expression
(primary_expression
(fn_call
(var_identifier)
(fn_argument_list
(expression
(primary_expression
(string
(string_start)
(string_content)
(string_end)))))))))
(else_if
(expression
(comparison_operator
(primary_expression
(var_identifier))
(primary_expression
(integer))))
(body
(expression
(primary_expression
(fn_call
(var_identifier)
(fn_argument_list
(expression
(comparison_operator
(primary_expression
(var_identifier))
(primary_expression
(integer))))))))))
(else_if
(expression
(comparison_operator
(primary_expression
(var_identifier))
(primary_expression
(integer))))
(body
(expression
(primary_expression
(fn_call
(var_identifier)
(fn_argument_list
(expression
(comparison_operator
(primary_expression
(var_identifier))
(primary_expression
(integer))))))))))
(else
(body
(if
(expression
(comparison_operator
(primary_expression
(var_identifier))
(primary_expression
(integer))))
(body
(expression
(primary_expression
(fn_call
(var_identifier)
(fn_argument_list
(expression
(primary_expression
(var_identifier))))))))
(else
(body
(expression
(primary_expression
(fn_call
(var_identifier)
(fn_argument_list
(expression
(primary_expression
(string
(string_start)
(string_content)
(string_end)))))))))))))))))