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/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)))))))