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
| 2634d00 | 1 | ================================================================================ |
| f997bee | 2 | if |
| 2634d00 | 3 | ================================================================================ |
| 2634d00 | 4 | |
| c06ddba | 5 | fun main() = |
| f997bee | 6 | if a < b |
| f997bee | 7 | printLn("a is less than b") |
| f997bee | 8 | else if a > 9 |
| 2634d00 | 9 | printLn(a == 9) |
| f997bee | 10 | else if a > 18 |
| 2634d00 | 11 | printLn(b == 0) |
| f997bee | 12 | else |
| f997bee | 13 | if a > 5 |
| f997bee | 14 | printLn(a) |
| f997bee | 15 | else |
| f997bee | 16 | printLn("None") |
| 2634d00 | 17 | |
| 2634d00 | 18 | -------------------------------------------------------------------------------- |
| 2634d00 | 19 | |
| 2634d00 | 20 | (source |
| 2634d00 | 21 | (fn |
| 9e7927c | 22 | (fn_identifier) |
| 2634d00 | 23 | (body |
| f997bee | 24 | (if |
| 2634d00 | 25 | (expression |
| 2634d00 | 26 | (comparison_operator |
| 2634d00 | 27 | (primary_expression |
| 9e7927c | 28 | (var_identifier)) |
| 2634d00 | 29 | (primary_expression |
| 9e7927c | 30 | (var_identifier)))) |
| f997bee | 31 | (body |
| aeaba6f | 32 | (expression |
| aeaba6f | 33 | (primary_expression |
| aeaba6f | 34 | (fn_call |
| aeaba6f | 35 | (var_identifier) |
| aeaba6f | 36 | (fn_argument_list |
| aeaba6f | 37 | (expression |
| aeaba6f | 38 | (primary_expression |
| aeaba6f | 39 | (string |
| aeaba6f | 40 | (string_start) |
| aeaba6f | 41 | (string_content) |
| aeaba6f | 42 | (string_end))))))))) |
| f997bee | 43 | (else_if |
| f997bee | 44 | (expression |
| f997bee | 45 | (comparison_operator |
| f997bee | 46 | (primary_expression |
| 9e7927c | 47 | (var_identifier)) |
| f997bee | 48 | (primary_expression |
| f997bee | 49 | (integer)))) |
| f997bee | 50 | (body |
| aeaba6f | 51 | (expression |
| aeaba6f | 52 | (primary_expression |
| aeaba6f | 53 | (fn_call |
| aeaba6f | 54 | (var_identifier) |
| aeaba6f | 55 | (fn_argument_list |
| aeaba6f | 56 | (expression |
| aeaba6f | 57 | (comparison_operator |
| aeaba6f | 58 | (primary_expression |
| aeaba6f | 59 | (var_identifier)) |
| aeaba6f | 60 | (primary_expression |
| aeaba6f | 61 | (integer)))))))))) |
| f997bee | 62 | (else_if |
| f997bee | 63 | (expression |
| f997bee | 64 | (comparison_operator |
| f997bee | 65 | (primary_expression |
| 9e7927c | 66 | (var_identifier)) |
| f997bee | 67 | (primary_expression |
| f997bee | 68 | (integer)))) |
| f997bee | 69 | (body |
| aeaba6f | 70 | (expression |
| aeaba6f | 71 | (primary_expression |
| aeaba6f | 72 | (fn_call |
| aeaba6f | 73 | (var_identifier) |
| aeaba6f | 74 | (fn_argument_list |
| aeaba6f | 75 | (expression |
| aeaba6f | 76 | (comparison_operator |
| aeaba6f | 77 | (primary_expression |
| aeaba6f | 78 | (var_identifier)) |
| aeaba6f | 79 | (primary_expression |
| aeaba6f | 80 | (integer)))))))))) |
| f997bee | 81 | (else |
| f997bee | 82 | (body |
| f997bee | 83 | (if |
| f997bee | 84 | (expression |
| f997bee | 85 | (comparison_operator |
| f997bee | 86 | (primary_expression |
| 9e7927c | 87 | (var_identifier)) |
| f997bee | 88 | (primary_expression |
| f997bee | 89 | (integer)))) |
| f997bee | 90 | (body |
| aeaba6f | 91 | (expression |
| f997bee | 92 | (primary_expression |
| f997bee | 93 | (fn_call |
| f502d22 | 94 | (var_identifier) |
| f502d22 | 95 | (fn_argument_list |
| f997bee | 96 | (expression |
| f997bee | 97 | (primary_expression |
| aeaba6f | 98 | (var_identifier)))))))) |
| aeaba6f | 99 | (else |
| aeaba6f | 100 | (body |
| aeaba6f | 101 | (expression |
| aeaba6f | 102 | (primary_expression |
| aeaba6f | 103 | (fn_call |
| aeaba6f | 104 | (var_identifier) |
| aeaba6f | 105 | (fn_argument_list |
| aeaba6f | 106 | (expression |
| aeaba6f | 107 | (primary_expression |
| aeaba6f | 108 | (string |
| aeaba6f | 109 | (string_start) |
| aeaba6f | 110 | (string_content) |
| aeaba6f | 111 | (string_end))))))))))))))))) |