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/assign.txt
| efe15db | 1 | ================================================================================ |
| 1910cfc | 2 | assign |
| efe15db | 3 | ================================================================================ |
| efe15db | 4 | |
| c06ddba | 5 | fun main() = |
| 1910cfc | 6 | sum = 1 + {{2 * 3} / 4} |
| 1910cfc | 7 | enabled = !False |
| 1910cfc | 8 | open = {count > 10} && {enabled == True} || {debug == False} |
| 1910cfc | 9 | countries_list = listOf("US", "INDIA", "CANADA") |
| 1910cfc | 10 | list_ints = listOf(1, 2, 3) |
| 1910cfc | 11 | nested_list_ints = listOf(listOf(1), listOf(2), listOf(3)) |
| 1910cfc | 12 | country_codes = mapOf( |
| 1910cfc | 13 | "in" => "INDIA", |
| 1910cfc | 14 | "us" => "United States", |
| 1910cfc | 15 | "ca" => "Canada" |
| 1910cfc | 16 | ) |
| 1910cfc | 17 | map_ints = mapOf("a" => 1, "b" => 2) |
| 1910cfc | 18 | nested_map_ints = mapOf("a" => 1, "b" => mapOf("c" => 3, "d" => 4)) |
| efe15db | 19 | |
| efe15db | 20 | -------------------------------------------------------------------------------- |
| efe15db | 21 | |
| efe15db | 22 | (source |
| 1910cfc | 23 | (fn |
| 1910cfc | 24 | (fn_identifier) |
| 1910cfc | 25 | (body |
| 1910cfc | 26 | (assign |
| 1910cfc | 27 | (var_identifier) |
| 1910cfc | 28 | (expression |
| fc68ba7 | 29 | (primary_expression |
| 1910cfc | 30 | (binary_operator |
| 1910cfc | 31 | (primary_expression |
| 1910cfc | 32 | (integer)) |
| 1910cfc | 33 | (primary_expression |
| 1910cfc | 34 | (parenthesized_expression |
| 1910cfc | 35 | (expression |
| fc68ba7 | 36 | (primary_expression |
| 1910cfc | 37 | (binary_operator |
| 1910cfc | 38 | (primary_expression |
| 1910cfc | 39 | (parenthesized_expression |
| 1910cfc | 40 | (expression |
| fc68ba7 | 41 | (primary_expression |
| 1910cfc | 42 | (binary_operator |
| 1910cfc | 43 | (primary_expression |
| 1910cfc | 44 | (integer)) |
| 1910cfc | 45 | (primary_expression |
| 1910cfc | 46 | (integer))))))) |
| 1910cfc | 47 | (primary_expression |
| 1910cfc | 48 | (integer))))))))))) |
| 1910cfc | 49 | (assign |
| 1910cfc | 50 | (var_identifier) |
| fc68ba7 | 51 | (expression |
| 1910cfc | 52 | (not_operator |
| 1910cfc | 53 | (expression |
| 1910cfc | 54 | (primary_expression |
| 1910cfc | 55 | (type_identifier)))))) |
| 1910cfc | 56 | (assign |
| 1910cfc | 57 | (var_identifier) |
| fc68ba7 | 58 | (expression |
| fc68ba7 | 59 | (boolean_operator |
| fc68ba7 | 60 | (expression |
| 1910cfc | 61 | (boolean_operator |
| 1910cfc | 62 | (expression |
| 1910cfc | 63 | (primary_expression |
| 1910cfc | 64 | (parenthesized_expression |
| 1910cfc | 65 | (expression |
| 1910cfc | 66 | (comparison_operator |
| 1910cfc | 67 | (primary_expression |
| 1910cfc | 68 | (var_identifier)) |
| 1910cfc | 69 | (primary_expression |
| 1910cfc | 70 | (integer))))))) |
| 1910cfc | 71 | (expression |
| 1910cfc | 72 | (primary_expression |
| 1910cfc | 73 | (parenthesized_expression |
| 1910cfc | 74 | (expression |
| 1910cfc | 75 | (comparison_operator |
| 1910cfc | 76 | (primary_expression |
| 1910cfc | 77 | (var_identifier)) |
| 1910cfc | 78 | (primary_expression |
| 1910cfc | 79 | (type_identifier))))))))) |
| fc68ba7 | 80 | (expression |
| fc68ba7 | 81 | (primary_expression |
| fc68ba7 | 82 | (parenthesized_expression |
| fc68ba7 | 83 | (expression |
| fc68ba7 | 84 | (comparison_operator |
| fc68ba7 | 85 | (primary_expression |
| 5b84889 | 86 | (var_identifier)) |
| fc68ba7 | 87 | (primary_expression |
| 1910cfc | 88 | (type_identifier)))))))))) |
| 1910cfc | 89 | (assign |
| 1910cfc | 90 | (var_identifier) |
| fc68ba7 | 91 | (expression |
| fc68ba7 | 92 | (primary_expression |
| 1910cfc | 93 | (fn_call |
| f502d22 | 94 | (var_identifier) |
| f502d22 | 95 | (fn_argument_list |
| 1910cfc | 96 | (expression |
| fc68ba7 | 97 | (primary_expression |
| 1910cfc | 98 | (string |
| 1910cfc | 99 | (string_start) |
| 1910cfc | 100 | (string_content) |
| 1910cfc | 101 | (string_end)))) |
| 1910cfc | 102 | (expression |
| fc68ba7 | 103 | (primary_expression |
| 1910cfc | 104 | (string |
| 1910cfc | 105 | (string_start) |
| 1910cfc | 106 | (string_content) |
| 1910cfc | 107 | (string_end)))) |
| 1910cfc | 108 | (expression |
| 1910cfc | 109 | (primary_expression |
| 1910cfc | 110 | (string |
| 1910cfc | 111 | (string_start) |
| 1910cfc | 112 | (string_content) |
| 1910cfc | 113 | (string_end))))))))) |
| 1910cfc | 114 | (assign |
| 1910cfc | 115 | (var_identifier) |
| 1910cfc | 116 | (expression |
| 1910cfc | 117 | (primary_expression |
| 1910cfc | 118 | (fn_call |
| f502d22 | 119 | (var_identifier) |
| f502d22 | 120 | (fn_argument_list |
| 1910cfc | 121 | (expression |
| 1910cfc | 122 | (primary_expression |
| 1910cfc | 123 | (integer))) |
| 1910cfc | 124 | (expression |
| 1910cfc | 125 | (primary_expression |
| 1910cfc | 126 | (integer))) |
| 1910cfc | 127 | (expression |
| 1910cfc | 128 | (primary_expression |
| 1910cfc | 129 | (integer)))))))) |
| 1910cfc | 130 | (assign |
| 1910cfc | 131 | (var_identifier) |
| 1910cfc | 132 | (expression |
| 1910cfc | 133 | (primary_expression |
| 1910cfc | 134 | (fn_call |
| f502d22 | 135 | (var_identifier) |
| f502d22 | 136 | (fn_argument_list |
| 1910cfc | 137 | (expression |
| 1910cfc | 138 | (primary_expression |
| 1910cfc | 139 | (fn_call |
| f502d22 | 140 | (var_identifier) |
| f502d22 | 141 | (fn_argument_list |
| 1910cfc | 142 | (expression |
| 1910cfc | 143 | (primary_expression |
| 1910cfc | 144 | (integer))))))) |
| 1910cfc | 145 | (expression |
| 1910cfc | 146 | (primary_expression |
| 1910cfc | 147 | (fn_call |
| f502d22 | 148 | (var_identifier) |
| f502d22 | 149 | (fn_argument_list |
| 1910cfc | 150 | (expression |
| 1910cfc | 151 | (primary_expression |
| 1910cfc | 152 | (integer))))))) |
| 1910cfc | 153 | (expression |
| 1910cfc | 154 | (primary_expression |
| 1910cfc | 155 | (fn_call |
| f502d22 | 156 | (var_identifier) |
| f502d22 | 157 | (fn_argument_list |
| 1910cfc | 158 | (expression |
| 1910cfc | 159 | (primary_expression |
| 1910cfc | 160 | (integer)))))))))))) |
| 1910cfc | 161 | (assign |
| 1910cfc | 162 | (var_identifier) |
| 1910cfc | 163 | (expression |
| 1910cfc | 164 | (primary_expression |
| 1910cfc | 165 | (fn_call |
| f502d22 | 166 | (var_identifier) |
| f502d22 | 167 | (fn_argument_list |
| 1910cfc | 168 | (pair_argument |
| fc68ba7 | 169 | (string |
| f997bee | 170 | (string_start) |
| f997bee | 171 | (string_content) |
| 1910cfc | 172 | (string_end)) |
| 1910cfc | 173 | (expression |
| 1910cfc | 174 | (primary_expression |
| 1910cfc | 175 | (string |
| 1910cfc | 176 | (string_start) |
| 1910cfc | 177 | (string_content) |
| 1910cfc | 178 | (string_end))))) |
| 1910cfc | 179 | (pair_argument |
| fc68ba7 | 180 | (string |
| f997bee | 181 | (string_start) |
| f997bee | 182 | (string_content) |
| 1910cfc | 183 | (string_end)) |
| 1910cfc | 184 | (expression |
| 1910cfc | 185 | (primary_expression |
| 1910cfc | 186 | (string |
| 1910cfc | 187 | (string_start) |
| 1910cfc | 188 | (string_content) |
| 1910cfc | 189 | (string_end))))) |
| 1910cfc | 190 | (pair_argument |
| fc68ba7 | 191 | (string |
| f997bee | 192 | (string_start) |
| f997bee | 193 | (string_content) |
| 1910cfc | 194 | (string_end)) |
| 1910cfc | 195 | (expression |
| 1910cfc | 196 | (primary_expression |
| 1910cfc | 197 | (string |
| 1910cfc | 198 | (string_start) |
| 1910cfc | 199 | (string_content) |
| 1910cfc | 200 | (string_end)))))))))) |
| 1910cfc | 201 | (assign |
| 1910cfc | 202 | (var_identifier) |
| 1910cfc | 203 | (expression |
| 1910cfc | 204 | (primary_expression |
| 1910cfc | 205 | (fn_call |
| f502d22 | 206 | (var_identifier) |
| f502d22 | 207 | (fn_argument_list |
| 1910cfc | 208 | (pair_argument |
| 1910cfc | 209 | (string |
| 1910cfc | 210 | (string_start) |
| 1910cfc | 211 | (string_content) |
| 1910cfc | 212 | (string_end)) |
| 1910cfc | 213 | (expression |
| 1910cfc | 214 | (primary_expression |
| 1910cfc | 215 | (integer)))) |
| 1910cfc | 216 | (pair_argument |
| 1910cfc | 217 | (string |
| 1910cfc | 218 | (string_start) |
| 1910cfc | 219 | (string_content) |
| 1910cfc | 220 | (string_end)) |
| 1910cfc | 221 | (expression |
| 1910cfc | 222 | (primary_expression |
| 1910cfc | 223 | (integer))))))))) |
| 1910cfc | 224 | (assign |
| 1910cfc | 225 | (var_identifier) |
| 1910cfc | 226 | (expression |
| 1910cfc | 227 | (primary_expression |
| 1910cfc | 228 | (fn_call |
| f502d22 | 229 | (var_identifier) |
| f502d22 | 230 | (fn_argument_list |
| 1910cfc | 231 | (pair_argument |
| 1910cfc | 232 | (string |
| 1910cfc | 233 | (string_start) |
| 1910cfc | 234 | (string_content) |
| 1910cfc | 235 | (string_end)) |
| 1910cfc | 236 | (expression |
| 1910cfc | 237 | (primary_expression |
| 1910cfc | 238 | (integer)))) |
| 1910cfc | 239 | (pair_argument |
| 1910cfc | 240 | (string |
| 1910cfc | 241 | (string_start) |
| 1910cfc | 242 | (string_content) |
| 1910cfc | 243 | (string_end)) |
| 1910cfc | 244 | (expression |
| 1910cfc | 245 | (primary_expression |
| 1910cfc | 246 | (fn_call |
| f502d22 | 247 | (var_identifier) |
| f502d22 | 248 | (fn_argument_list |
| 1910cfc | 249 | (pair_argument |
| 1910cfc | 250 | (string |
| 1910cfc | 251 | (string_start) |
| 1910cfc | 252 | (string_content) |
| 1910cfc | 253 | (string_end)) |
| 1910cfc | 254 | (expression |
| 1910cfc | 255 | (primary_expression |
| 1910cfc | 256 | (integer)))) |
| 1910cfc | 257 | (pair_argument |
| 1910cfc | 258 | (string |
| 1910cfc | 259 | (string_start) |
| 1910cfc | 260 | (string_content) |
| 1910cfc | 261 | (string_end)) |
| 1910cfc | 262 | (expression |
| 1910cfc | 263 | (primary_expression |
| 1910cfc | 264 | (integer))))))))))))))))) |
| 391c8e4 | 265 | |
| 391c8e4 | 266 | ================================================================================ |
| 391c8e4 | 267 | field assignment target |
| 391c8e4 | 268 | ================================================================================ |
| 391c8e4 | 269 | |
| c06ddba | 270 | fun main() = |
| 391c8e4 | 271 | self.head = value |
| 391c8e4 | 272 | self.head.value = x |
| 391c8e4 | 273 | a, self.field = 1, 2 |
| 391c8e4 | 274 | |
| 391c8e4 | 275 | -------------------------------------------------------------------------------- |
| 391c8e4 | 276 | |
| 391c8e4 | 277 | (source |
| 391c8e4 | 278 | (fn |
| 391c8e4 | 279 | (fn_identifier) |
| 391c8e4 | 280 | (body |
| 391c8e4 | 281 | (assign |
| 391c8e4 | 282 | (field_target |
| 391c8e4 | 283 | (primary_expression |
| 391c8e4 | 284 | (self)) |
| 391c8e4 | 285 | (fn_identifier)) |
| 391c8e4 | 286 | (expression |
| 391c8e4 | 287 | (primary_expression |
| 391c8e4 | 288 | (var_identifier)))) |
| 391c8e4 | 289 | (assign |
| 391c8e4 | 290 | (field_target |
| 391c8e4 | 291 | (primary_expression |
| 391c8e4 | 292 | (attribute |
| 391c8e4 | 293 | (primary_expression |
| 391c8e4 | 294 | (self)) |
| 391c8e4 | 295 | (fn_identifier))) |
| 391c8e4 | 296 | (fn_identifier)) |
| 391c8e4 | 297 | (expression |
| 391c8e4 | 298 | (primary_expression |
| 391c8e4 | 299 | (var_identifier)))) |
| 391c8e4 | 300 | (assign |
| 391c8e4 | 301 | (var_identifier) |
| 391c8e4 | 302 | (field_target |
| 391c8e4 | 303 | (primary_expression |
| 391c8e4 | 304 | (self)) |
| 391c8e4 | 305 | (fn_identifier)) |
| 391c8e4 | 306 | (expression |
| 391c8e4 | 307 | (primary_expression |
| 391c8e4 | 308 | (integer))) |
| 391c8e4 | 309 | (expression |
| 391c8e4 | 310 | (primary_expression |
| 391c8e4 | 311 | (integer))))))) |