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/src/node-types.json
4bd2c1c 1
[
4bd2c1c 2
  {
5d12d71 3
    "type": "assert",
4bd2c1c 4
    "named": true,
4bd2c1c 5
    "fields": {},
4bd2c1c 6
    "children": {
f997bee 7
      "multiple": false,
4bd2c1c 8
      "required": true,
4bd2c1c 9
      "types": [
4bd2c1c 10
        {
4bd2c1c 11
          "type": "expression",
4bd2c1c 12
          "named": true
4bd2c1c 13
        }
4bd2c1c 14
      ]
4bd2c1c 15
    }
4bd2c1c 16
  },
4bd2c1c 17
  {
5d12d71 18
    "type": "assign",
4bd2c1c 19
    "named": true,
a271f34 20
    "fields": {
a271f34 21
      "op": {
a271f34 22
        "multiple": false,
a271f34 23
        "required": true,
a271f34 24
        "types": [
a271f34 25
          {
a271f34 26
            "type": ":=",
a271f34 27
            "named": false
a271f34 28
          },
a271f34 29
          {
a271f34 30
            "type": "=",
a271f34 31
            "named": false
a271f34 32
          }
a271f34 33
        ]
a271f34 34
      }
a271f34 35
    },
e9b4405 36
    "children": {
e9b4405 37
      "multiple": true,
e9b4405 38
      "required": true,
e9b4405 39
      "types": [
e9b4405 40
        {
e9b4405 41
          "type": "expression",
e9b4405 42
          "named": true
e9b4405 43
        },
391c8e4 44
        {
391c8e4 45
          "type": "field_target",
391c8e4 46
          "named": true
391c8e4 47
        },
e9b4405 48
        {
e9b4405 49
          "type": "var_identifier",
e9b4405 50
          "named": true
e9b4405 51
        }
e9b4405 52
      ]
4bd2c1c 53
    }
4bd2c1c 54
  },
4bd2c1c 55
  {
4bd2c1c 56
    "type": "attribute",
4bd2c1c 57
    "named": true,
4bd2c1c 58
    "fields": {
f502d22 59
      "arguments": {
f502d22 60
        "multiple": false,
f502d22 61
        "required": false,
f502d22 62
        "types": [
f502d22 63
          {
f502d22 64
            "type": "fn_argument_list",
f502d22 65
            "named": true
f502d22 66
          }
f502d22 67
        ]
f502d22 68
      },
f502d22 69
      "member": {
f502d22 70
        "multiple": false,
f502d22 71
        "required": true,
f502d22 72
        "types": [
f502d22 73
          {
f502d22 74
            "type": "fn_identifier",
f502d22 75
            "named": true
f502d22 76
          }
f502d22 77
        ]
f502d22 78
      },
4bd2c1c 79
      "object": {
4bd2c1c 80
        "multiple": false,
4bd2c1c 81
        "required": true,
4bd2c1c 82
        "types": [
4bd2c1c 83
          {
4bd2c1c 84
            "type": "primary_expression",
4bd2c1c 85
            "named": true
4bd2c1c 86
          }
4bd2c1c 87
        ]
4bd2c1c 88
      }
4bd2c1c 89
    }
4bd2c1c 90
  },
4bd2c1c 91
  {
4bd2c1c 92
    "type": "binary_operator",
4bd2c1c 93
    "named": true,
4bd2c1c 94
    "fields": {
4bd2c1c 95
      "left": {
4bd2c1c 96
        "multiple": false,
4bd2c1c 97
        "required": true,
4bd2c1c 98
        "types": [
4bd2c1c 99
          {
4bd2c1c 100
            "type": "primary_expression",
4bd2c1c 101
            "named": true
4bd2c1c 102
          }
4bd2c1c 103
        ]
4bd2c1c 104
      },
4bd2c1c 105
      "operator": {
4bd2c1c 106
        "multiple": false,
4bd2c1c 107
        "required": true,
4bd2c1c 108
        "types": [
4bd2c1c 109
          {
4bd2c1c 110
            "type": "%",
4bd2c1c 111
            "named": false
4bd2c1c 112
          },
4bd2c1c 113
          {
4bd2c1c 114
            "type": "&",
4bd2c1c 115
            "named": false
4bd2c1c 116
          },
4bd2c1c 117
          {
4bd2c1c 118
            "type": "*",
4bd2c1c 119
            "named": false
4bd2c1c 120
          },
4bd2c1c 121
          {
4bd2c1c 122
            "type": "+",
4bd2c1c 123
            "named": false
4bd2c1c 124
          },
4bd2c1c 125
          {
4bd2c1c 126
            "type": "-",
4bd2c1c 127
            "named": false
4bd2c1c 128
          },
4bd2c1c 129
          {
4bd2c1c 130
            "type": "/",
4bd2c1c 131
            "named": false
4bd2c1c 132
          },
4bd2c1c 133
          {
4bd2c1c 134
            "type": "<<",
4bd2c1c 135
            "named": false
4bd2c1c 136
          },
4bd2c1c 137
          {
4bd2c1c 138
            "type": ">>",
4bd2c1c 139
            "named": false
4bd2c1c 140
          },
4bd2c1c 141
          {
4bd2c1c 142
            "type": "^",
4bd2c1c 143
            "named": false
4bd2c1c 144
          },
4bd2c1c 145
          {
4bd2c1c 146
            "type": "|",
4bd2c1c 147
            "named": false
4bd2c1c 148
          }
4bd2c1c 149
        ]
4bd2c1c 150
      },
4bd2c1c 151
      "right": {
4bd2c1c 152
        "multiple": false,
4bd2c1c 153
        "required": true,
4bd2c1c 154
        "types": [
4bd2c1c 155
          {
4bd2c1c 156
            "type": "primary_expression",
4bd2c1c 157
            "named": true
4bd2c1c 158
          }
4bd2c1c 159
        ]
4bd2c1c 160
      }
4bd2c1c 161
    }
4bd2c1c 162
  },
4bd2c1c 163
  {
4bd2c1c 164
    "type": "body",
4bd2c1c 165
    "named": true,
4bd2c1c 166
    "fields": {},
4bd2c1c 167
    "children": {
4bd2c1c 168
      "multiple": true,
4bd2c1c 169
      "required": false,
4bd2c1c 170
      "types": [
4bd2c1c 171
        {
5d12d71 172
          "type": "assert",
4bd2c1c 173
          "named": true
4bd2c1c 174
        },
4bd2c1c 175
        {
5d12d71 176
          "type": "assign",
4bd2c1c 177
          "named": true
4bd2c1c 178
        },
4bd2c1c 179
        {
5d12d71 180
          "type": "break",
5d12d71 181
          "named": true
5d12d71 182
        },
5d12d71 183
        {
5d12d71 184
          "type": "continue",
5d12d71 185
          "named": true
5d12d71 186
        },
5d12d71 187
        {
aeaba6f 188
          "type": "expression",
5d12d71 189
          "named": true
5d12d71 190
        },
5d12d71 191
        {
aeaba6f 192
          "type": "for",
fc68ba7 193
          "named": true
fc68ba7 194
        },
fc68ba7 195
        {
aeaba6f 196
          "type": "if",
fc68ba7 197
          "named": true
fc68ba7 198
        },
f997bee 199
        {
aeaba6f 200
          "type": "match",
f997bee 201
          "named": true
f997bee 202
        },
fc68ba7 203
        {
fc68ba7 204
          "type": "return",
5d12d71 205
          "named": true
5d12d71 206
        },
f997bee 207
        {
f997bee 208
          "type": "todo",
f997bee 209
          "named": true
f997bee 210
        },
5d12d71 211
        {
5d12d71 212
          "type": "while",
4bd2c1c 213
          "named": true
4bd2c1c 214
        }
4bd2c1c 215
      ]
4bd2c1c 216
    }
4bd2c1c 217
  },
4bd2c1c 218
  {
4bd2c1c 219
    "type": "boolean_operator",
4bd2c1c 220
    "named": true,
4bd2c1c 221
    "fields": {
4bd2c1c 222
      "left": {
4bd2c1c 223
        "multiple": false,
4bd2c1c 224
        "required": true,
4bd2c1c 225
        "types": [
4bd2c1c 226
          {
4bd2c1c 227
            "type": "expression",
4bd2c1c 228
            "named": true
4bd2c1c 229
          }
4bd2c1c 230
        ]
4bd2c1c 231
      },
4bd2c1c 232
      "operator": {
4bd2c1c 233
        "multiple": false,
4bd2c1c 234
        "required": true,
4bd2c1c 235
        "types": [
4bd2c1c 236
          {
4bd2c1c 237
            "type": "&&",
4bd2c1c 238
            "named": false
4bd2c1c 239
          },
4bd2c1c 240
          {
4bd2c1c 241
            "type": "||",
4bd2c1c 242
            "named": false
4bd2c1c 243
          }
4bd2c1c 244
        ]
4bd2c1c 245
      },
4bd2c1c 246
      "right": {
4bd2c1c 247
        "multiple": false,
4bd2c1c 248
        "required": true,
4bd2c1c 249
        "types": [
4bd2c1c 250
          {
4bd2c1c 251
            "type": "expression",
4bd2c1c 252
            "named": true
4bd2c1c 253
          }
4bd2c1c 254
        ]
4bd2c1c 255
      }
4bd2c1c 256
    }
4bd2c1c 257
  },
4bd2c1c 258
  {
5d12d71 259
    "type": "break",
4bd2c1c 260
    "named": true,
4bd2c1c 261
    "fields": {}
4bd2c1c 262
  },
4bd2c1c 263
  {
fc68ba7 264
    "type": "case",
4bd2c1c 265
    "named": true,
4bd2c1c 266
    "fields": {
5d12d71 267
      "body": {
4bd2c1c 268
        "multiple": false,
4bd2c1c 269
        "required": true,
4bd2c1c 270
        "types": [
4bd2c1c 271
          {
5d12d71 272
            "type": "body",
4bd2c1c 273
            "named": true
660674c 274
          },
660674c 275
          {
660674c 276
            "type": "expression",
660674c 277
            "named": true
4bd2c1c 278
          }
4bd2c1c 279
        ]
4a2384c 280
      },
4a2384c 281
      "guard": {
4a2384c 282
        "multiple": false,
4a2384c 283
        "required": false,
4a2384c 284
        "types": [
4a2384c 285
          {
4a2384c 286
            "type": "expression",
4a2384c 287
            "named": true
4a2384c 288
          }
4a2384c 289
        ]
4bd2c1c 290
      }
4bd2c1c 291
    },
4bd2c1c 292
    "children": {
4bd2c1c 293
      "multiple": true,
4bd2c1c 294
      "required": true,
4bd2c1c 295
      "types": [
4bd2c1c 296
        {
4bd2c1c 297
          "type": "case_pattern",
4bd2c1c 298
          "named": true
4bd2c1c 299
        }
4bd2c1c 300
      ]
4bd2c1c 301
    }
4bd2c1c 302
  },
4bd2c1c 303
  {
4bd2c1c 304
    "type": "case_pattern",
4bd2c1c 305
    "named": true,
4bd2c1c 306
    "fields": {},
4bd2c1c 307
    "children": {
4bd2c1c 308
      "multiple": false,
4bd2c1c 309
      "required": false,
4bd2c1c 310
      "types": [
4bd2c1c 311
        {
4bd2c1c 312
          "type": "class_pattern",
4bd2c1c 313
          "named": true
4bd2c1c 314
        },
4bd2c1c 315
        {
4bd2c1c 316
          "type": "dotted_name",
4bd2c1c 317
          "named": true
4bd2c1c 318
        },
4bd2c1c 319
        {
4bd2c1c 320
          "type": "float",
4bd2c1c 321
          "named": true
4bd2c1c 322
        },
4bd2c1c 323
        {
4bd2c1c 324
          "type": "integer",
4bd2c1c 325
          "named": true
4bd2c1c 326
        },
4bd2c1c 327
        {
4bd2c1c 328
          "type": "string",
4bd2c1c 329
          "named": true
f502d22 330
        },
f502d22 331
        {
f502d22 332
          "type": "type_identifier",
f502d22 333
          "named": true
4bd2c1c 334
        }
4bd2c1c 335
      ]
4bd2c1c 336
    }
4bd2c1c 337
  },
d322d05 338
  {
d322d05 339
    "type": "class_argument_list",
d322d05 340
    "named": true,
13507fa 341
    "fields": {},
13507fa 342
    "children": {
13507fa 343
      "multiple": true,
13507fa 344
      "required": false,
13507fa 345
      "types": [
13507fa 346
        {
13507fa 347
          "type": "field_argument",
13507fa 348
          "named": true
13507fa 349
        },
13507fa 350
        {
13507fa 351
          "type": "spread_argument",
13507fa 352
          "named": true
13507fa 353
        }
13507fa 354
      ]
d322d05 355
    }
d322d05 356
  },
d322d05 357
  {
d322d05 358
    "type": "class_call",
d322d05 359
    "named": true,
d322d05 360
    "fields": {
d322d05 361
      "arguments": {
d322d05 362
        "multiple": false,
d322d05 363
        "required": true,
d322d05 364
        "types": [
d322d05 365
          {
d322d05 366
            "type": "class_argument_list",
d322d05 367
            "named": true
d322d05 368
          }
d322d05 369
        ]
d322d05 370
      },
a271f34 371
      "generics": {
a271f34 372
        "multiple": true,
a271f34 373
        "required": false,
a271f34 374
        "types": [
a271f34 375
          {
a271f34 376
            "type": ",",
a271f34 377
            "named": false
a271f34 378
          },
a271f34 379
          {
a271f34 380
            "type": "[",
a271f34 381
            "named": false
a271f34 382
          },
a271f34 383
          {
a271f34 384
            "type": "]",
a271f34 385
            "named": false
a271f34 386
          },
a271f34 387
          {
a271f34 388
            "type": "type",
a271f34 389
            "named": true
a271f34 390
          }
a271f34 391
        ]
a271f34 392
      },
d322d05 393
      "type": {
d322d05 394
        "multiple": false,
d322d05 395
        "required": true,
d322d05 396
        "types": [
d322d05 397
          {
d322d05 398
            "type": "type_identifier",
d322d05 399
            "named": true
d322d05 400
          }
d322d05 401
        ]
d322d05 402
      }
d322d05 403
    }
d322d05 404
  },
4bd2c1c 405
  {
4bd2c1c 406
    "type": "class_pattern",
4bd2c1c 407
    "named": true,
4bd2c1c 408
    "fields": {},
4bd2c1c 409
    "children": {
4bd2c1c 410
      "multiple": true,
4bd2c1c 411
      "required": true,
4bd2c1c 412
      "types": [
4bd2c1c 413
        {
4bd2c1c 414
          "type": "case_pattern",
4bd2c1c 415
          "named": true
4bd2c1c 416
        },
4bd2c1c 417
        {
f502d22 418
          "type": "type_identifier",
4bd2c1c 419
          "named": true
4bd2c1c 420
        }
4bd2c1c 421
      ]
4bd2c1c 422
    }
4bd2c1c 423
  },
906b92e 424
  {
906b92e 425
    "type": "closure",
906b92e 426
    "named": true,
906b92e 427
    "fields": {
906b92e 428
      "body": {
906b92e 429
        "multiple": false,
906b92e 430
        "required": true,
906b92e 431
        "types": [
906b92e 432
          {
906b92e 433
            "type": "body",
906b92e 434
            "named": true
4ba0db3 435
          },
4ba0db3 436
          {
4ba0db3 437
            "type": "expression",
4ba0db3 438
            "named": true
906b92e 439
          }
906b92e 440
        ]
906b92e 441
      },
906b92e 442
      "parameters": {
906b92e 443
        "multiple": true,
906b92e 444
        "required": false,
906b92e 445
        "types": [
906b92e 446
          {
906b92e 447
            "type": ",",
906b92e 448
            "named": false
906b92e 449
          },
906b92e 450
          {
906b92e 451
            "type": "var_identifier",
906b92e 452
            "named": true
906b92e 453
          }
906b92e 454
        ]
906b92e 455
      }
906b92e 456
    }
906b92e 457
  },
5d12d71 458
  {
5d12d71 459
    "type": "comparison_operator",
5d12d71 460
    "named": true,
5d12d71 461
    "fields": {
5d12d71 462
      "operator": {
5d12d71 463
        "multiple": false,
4bd2c1c 464
        "required": true,
4bd2c1c 465
        "types": [
4bd2c1c 466
          {
4bd2c1c 467
            "type": "!=",
4bd2c1c 468
            "named": false
4bd2c1c 469
          },
4bd2c1c 470
          {
4bd2c1c 471
            "type": "<",
4bd2c1c 472
            "named": false
4bd2c1c 473
          },
4bd2c1c 474
          {
4bd2c1c 475
            "type": "<=",
4bd2c1c 476
            "named": false
4bd2c1c 477
          },
4bd2c1c 478
          {
4bd2c1c 479
            "type": "<>",
4bd2c1c 480
            "named": false
4bd2c1c 481
          },
4bd2c1c 482
          {
4bd2c1c 483
            "type": "==",
4bd2c1c 484
            "named": false
4bd2c1c 485
          },
4bd2c1c 486
          {
4bd2c1c 487
            "type": ">",
4bd2c1c 488
            "named": false
4bd2c1c 489
          },
4bd2c1c 490
          {
4bd2c1c 491
            "type": ">=",
4bd2c1c 492
            "named": false
4bd2c1c 493
          }
4bd2c1c 494
        ]
4bd2c1c 495
      }
4bd2c1c 496
    },
4bd2c1c 497
    "children": {
4bd2c1c 498
      "multiple": true,
4bd2c1c 499
      "required": true,
4bd2c1c 500
      "types": [
4bd2c1c 501
        {
4bd2c1c 502
          "type": "primary_expression",
4bd2c1c 503
          "named": true
4bd2c1c 504
        }
4bd2c1c 505
      ]
4bd2c1c 506
    }
4bd2c1c 507
  },
58cc293 508
  {
58cc293 509
    "type": "const",
58cc293 510
    "named": true,
e9b4405 511
    "fields": {},
e9b4405 512
    "children": {
e9b4405 513
      "multiple": true,
e9b4405 514
      "required": true,
e9b4405 515
      "types": [
e9b4405 516
        {
e9b4405 517
          "type": "const_identifier",
e9b4405 518
          "named": true
e9b4405 519
        },
e9b4405 520
        {
e9b4405 521
          "type": "expression",
e9b4405 522
          "named": true
e9b4405 523
        }
e9b4405 524
      ]
58cc293 525
    }
58cc293 526
  },
4bd2c1c 527
  {
5d12d71 528
    "type": "continue",
4bd2c1c 529
    "named": true,
4bd2c1c 530
    "fields": {}
4bd2c1c 531
  },
4bd2c1c 532
  {
4bd2c1c 533
    "type": "dotted_name",
4bd2c1c 534
    "named": true,
4bd2c1c 535
    "fields": {},
4bd2c1c 536
    "children": {
4bd2c1c 537
      "multiple": true,
4bd2c1c 538
      "required": true,
4bd2c1c 539
      "types": [
4bd2c1c 540
        {
9e7927c 541
          "type": "var_identifier",
4bd2c1c 542
          "named": true
4bd2c1c 543
        }
4bd2c1c 544
      ]
4bd2c1c 545
    }
4bd2c1c 546
  },
4bd2c1c 547
  {
fc68ba7 548
    "type": "else",
4bd2c1c 549
    "named": true,
4bd2c1c 550
    "fields": {
4bd2c1c 551
      "body": {
4bd2c1c 552
        "multiple": false,
4bd2c1c 553
        "required": true,
4bd2c1c 554
        "types": [
4bd2c1c 555
          {
5d12d71 556
            "type": "body",
4bd2c1c 557
            "named": true
4bd2c1c 558
          }
4bd2c1c 559
        ]
4bd2c1c 560
      }
4bd2c1c 561
    }
4bd2c1c 562
  },
4bd2c1c 563
  {
fc68ba7 564
    "type": "else_if",
4bd2c1c 565
    "named": true,
4bd2c1c 566
    "fields": {
5d12d71 567
      "body": {
4bd2c1c 568
        "multiple": false,
4bd2c1c 569
        "required": true,
4bd2c1c 570
        "types": [
4bd2c1c 571
          {
5d12d71 572
            "type": "body",
4bd2c1c 573
            "named": true
4bd2c1c 574
          }
4bd2c1c 575
        ]
4bd2c1c 576
      },
5d12d71 577
      "condition": {
4bd2c1c 578
        "multiple": false,
4bd2c1c 579
        "required": true,
4bd2c1c 580
        "types": [
4bd2c1c 581
          {
5d12d71 582
            "type": "expression",
4bd2c1c 583
            "named": true
4bd2c1c 584
          }
4bd2c1c 585
        ]
4bd2c1c 586
      }
4bd2c1c 587
    }
4bd2c1c 588
  },
ec5336f 589
  {
ec5336f 590
    "type": "elvis_expression",
ec5336f 591
    "named": true,
ec5336f 592
    "fields": {},
ec5336f 593
    "children": {
ec5336f 594
      "multiple": true,
ec5336f 595
      "required": true,
ec5336f 596
      "types": [
ec5336f 597
        {
ec5336f 598
          "type": "expression",
ec5336f 599
          "named": true
ec5336f 600
        }
ec5336f 601
      ]
ec5336f 602
    }
ec5336f 603
  },
4bd2c1c 604
  {
4bd2c1c 605
    "type": "enum",
4bd2c1c 606
    "named": true,
4bd2c1c 607
    "fields": {
287b97c 608
      "generics": {
287b97c 609
        "multiple": false,
287b97c 610
        "required": false,
287b97c 611
        "types": [
287b97c 612
          {
287b97c 613
            "type": "generics",
287b97c 614
            "named": true
287b97c 615
          }
287b97c 616
        ]
287b97c 617
      },
5f2f962 618
      "implements": {
5f2f962 619
        "multiple": true,
5f2f962 620
        "required": false,
5f2f962 621
        "types": [
5f2f962 622
          {
5f2f962 623
            "type": "(",
5f2f962 624
            "named": false
5f2f962 625
          },
5f2f962 626
          {
5f2f962 627
            "type": ")",
5f2f962 628
            "named": false
5f2f962 629
          },
5f2f962 630
          {
5f2f962 631
            "type": ",",
5f2f962 632
            "named": false
5f2f962 633
          },
5f2f962 634
          {
5f2f962 635
            "type": "type_identifier",
5f2f962 636
            "named": true
5f2f962 637
          }
5f2f962 638
        ]
5f2f962 639
      },
f047082 640
      "methods": {
f047082 641
        "multiple": true,
f047082 642
        "required": false,
f047082 643
        "types": [
f047082 644
          {
f047082 645
            "type": "fn",
f047082 646
            "named": true
f047082 647
          }
f047082 648
        ]
f047082 649
      },
4bd2c1c 650
      "name": {
4bd2c1c 651
        "multiple": false,
4bd2c1c 652
        "required": true,
4bd2c1c 653
        "types": [
4bd2c1c 654
          {
f997bee 655
            "type": "type_identifier",
4bd2c1c 656
            "named": true
4bd2c1c 657
          }
4bd2c1c 658
        ]
8554271 659
      },
8554271 660
      "params": {
8554271 661
        "multiple": true,
8554271 662
        "required": false,
8554271 663
        "types": [
8554271 664
          {
8554271 665
            "type": "(",
8554271 666
            "named": false
8554271 667
          },
8554271 668
          {
8554271 669
            "type": ")",
8554271 670
            "named": false
8554271 671
          },
8554271 672
          {
8554271 673
            "type": ",",
8554271 674
            "named": false
8554271 675
          },
8554271 676
          {
8554271 677
            "type": "enum_param",
8554271 678
            "named": true
8554271 679
          }
8554271 680
        ]
4bd2c1c 681
      }
fd085d9 682
    },
fd085d9 683
    "children": {
fd085d9 684
      "multiple": true,
fd085d9 685
      "required": false,
fd085d9 686
      "types": [
fd085d9 687
        {
5de508e 688
          "type": "field",
fd085d9 689
          "named": true
fd085d9 690
        }
fd085d9 691
      ]
4bd2c1c 692
    }
4bd2c1c 693
  },
3a2119e 694
  {
3a2119e 695
    "type": "enum_named_field",
3a2119e 696
    "named": true,
3a2119e 697
    "fields": {
3a2119e 698
      "name": {
3a2119e 699
        "multiple": false,
3a2119e 700
        "required": true,
3a2119e 701
        "types": [
3a2119e 702
          {
3a2119e 703
            "type": "var_identifier",
3a2119e 704
            "named": true
3a2119e 705
          }
3a2119e 706
        ]
3a2119e 707
      },
3a2119e 708
      "type": {
3a2119e 709
        "multiple": false,
3a2119e 710
        "required": true,
3a2119e 711
        "types": [
3a2119e 712
          {
3a2119e 713
            "type": "type",
3a2119e 714
            "named": true
3a2119e 715
          }
3a2119e 716
        ]
3a2119e 717
      }
3a2119e 718
    }
3a2119e 719
  },
8554271 720
  {
8554271 721
    "type": "enum_param",
8554271 722
    "named": true,
8554271 723
    "fields": {
8554271 724
      "name": {
8554271 725
        "multiple": false,
8554271 726
        "required": true,
8554271 727
        "types": [
8554271 728
          {
8554271 729
            "type": "var_identifier",
8554271 730
            "named": true
8554271 731
          }
8554271 732
        ]
8554271 733
      },
8554271 734
      "type": {
8554271 735
        "multiple": false,
8554271 736
        "required": true,
8554271 737
        "types": [
8554271 738
          {
8554271 739
            "type": "type",
8554271 740
            "named": true
8554271 741
          }
8554271 742
        ]
8554271 743
      }
8554271 744
    }
8554271 745
  },
4bd2c1c 746
  {
5de508e 747
    "type": "expression",
5de508e 748
    "named": true,
5de508e 749
    "fields": {},
5de508e 750
    "children": {
5de508e 751
      "multiple": false,
5de508e 752
      "required": true,
5de508e 753
      "types": [
5de508e 754
        {
5de508e 755
          "type": "boolean_operator",
5de508e 756
          "named": true
5de508e 757
        },
906b92e 758
        {
906b92e 759
          "type": "closure",
906b92e 760
          "named": true
906b92e 761
        },
5de508e 762
        {
5de508e 763
          "type": "comparison_operator",
5de508e 764
          "named": true
5de508e 765
        },
ec5336f 766
        {
ec5336f 767
          "type": "elvis_expression",
ec5336f 768
          "named": true
ec5336f 769
        },
5de508e 770
        {
5de508e 771
          "type": "not_operator",
5de508e 772
          "named": true
5de508e 773
        },
5de508e 774
        {
5de508e 775
          "type": "primary_expression",
5de508e 776
          "named": true
5de508e 777
        },
5de508e 778
        {
5de508e 779
          "type": "ternary_expression",
5de508e 780
          "named": true
5de508e 781
        }
5de508e 782
      ]
5de508e 783
    }
5de508e 784
  },
5de508e 785
  {
5de508e 786
    "type": "field",
4bd2c1c 787
    "named": true,
4bd2c1c 788
    "fields": {
4bd2c1c 789
      "name": {
4bd2c1c 790
        "multiple": false,
4bd2c1c 791
        "required": true,
4bd2c1c 792
        "types": [
59e3de6 793
          {
59e3de6 794
            "type": "fn_identifier",
59e3de6 795
            "named": true
59e3de6 796
          },
5de508e 797
          {
9e7927c 798
            "type": "type_identifier",
5de508e 799
            "named": true
f997bee 800
          }
f997bee 801
        ]
f997bee 802
      },
f997bee 803
      "parameters": {
f997bee 804
        "multiple": true,
f997bee 805
        "required": false,
f997bee 806
        "types": [
8554271 807
          {
8554271 808
            "type": "(",
8554271 809
            "named": false
8554271 810
          },
8554271 811
          {
8554271 812
            "type": ")",
8554271 813
            "named": false
8554271 814
          },
f997bee 815
          {
8f91d27 816
            "type": ",",
f997bee 817
            "named": false
f997bee 818
          },
3a2119e 819
          {
3a2119e 820
            "type": "enum_named_field",
3a2119e 821
            "named": true
3a2119e 822
          },
8554271 823
          {
8554271 824
            "type": "expression",
8554271 825
            "named": true
8554271 826
          },
c273ea5 827
          {
a43f3af 828
            "type": "type",
4bd2c1c 829
            "named": true
4bd2c1c 830
          }
4bd2c1c 831
        ]
5de508e 832
      },
59e3de6 833
      "params": {
59e3de6 834
        "multiple": true,
59e3de6 835
        "required": false,
59e3de6 836
        "types": [
59e3de6 837
          {
59e3de6 838
            "type": "(",
59e3de6 839
            "named": false
59e3de6 840
          },
59e3de6 841
          {
59e3de6 842
            "type": ")",
59e3de6 843
            "named": false
59e3de6 844
          },
59e3de6 845
          {
59e3de6 846
            "type": ",",
59e3de6 847
            "named": false
59e3de6 848
          },
59e3de6 849
          {
59e3de6 850
            "type": "param",
59e3de6 851
            "named": true
141de54 852
          },
141de54 853
          {
141de54 854
            "type": "self",
141de54 855
            "named": true
59e3de6 856
          }
59e3de6 857
        ]
59e3de6 858
      },
59e3de6 859
      "returns": {
59e3de6 860
        "multiple": true,
59e3de6 861
        "required": false,
59e3de6 862
        "types": [
59e3de6 863
          {
59e3de6 864
            "type": "->",
59e3de6 865
            "named": false
59e3de6 866
          },
59e3de6 867
          {
8f91d27 868
            "type": "type",
59e3de6 869
            "named": true
59e3de6 870
          }
59e3de6 871
        ]
4bd2c1c 872
      }
5d12d71 873
    }
5d12d71 874
  },
13507fa 875
  {
13507fa 876
    "type": "field_argument",
13507fa 877
    "named": true,
13507fa 878
    "fields": {
13507fa 879
      "name": {
13507fa 880
        "multiple": false,
13507fa 881
        "required": true,
13507fa 882
        "types": [
13507fa 883
          {
13507fa 884
            "type": "var_identifier",
13507fa 885
            "named": true
13507fa 886
          }
13507fa 887
        ]
13507fa 888
      },
13507fa 889
      "value": {
13507fa 890
        "multiple": false,
13507fa 891
        "required": true,
13507fa 892
        "types": [
13507fa 893
          {
13507fa 894
            "type": "expression",
13507fa 895
            "named": true
13507fa 896
          }
13507fa 897
        ]
13507fa 898
      }
13507fa 899
    }
13507fa 900
  },
391c8e4 901
  {
391c8e4 902
    "type": "field_target",
391c8e4 903
    "named": true,
391c8e4 904
    "fields": {
391c8e4 905
      "member": {
391c8e4 906
        "multiple": false,
391c8e4 907
        "required": true,
391c8e4 908
        "types": [
391c8e4 909
          {
391c8e4 910
            "type": "fn_identifier",
391c8e4 911
            "named": true
391c8e4 912
          }
391c8e4 913
        ]
391c8e4 914
      },
391c8e4 915
      "object": {
391c8e4 916
        "multiple": false,
391c8e4 917
        "required": true,
391c8e4 918
        "types": [
391c8e4 919
          {
391c8e4 920
            "type": "primary_expression",
391c8e4 921
            "named": true
391c8e4 922
          }
391c8e4 923
        ]
391c8e4 924
      }
391c8e4 925
    }
391c8e4 926
  },
4bd2c1c 927
  {
4bd2c1c 928
    "type": "fn",
4bd2c1c 929
    "named": true,
4bd2c1c 930
    "fields": {
5d12d71 931
      "body": {
efe15db 932
        "multiple": true,
a271f34 933
        "required": false,
5d12d71 934
        "types": [
efe15db 935
          {
efe15db 936
            "type": "=",
efe15db 937
            "named": false
efe15db 938
          },
5d12d71 939
          {
5d12d71 940
            "type": "body",
5d12d71 941
            "named": true
fd085d9 942
          },
fd085d9 943
          {
fd085d9 944
            "type": "expression",
fd085d9 945
            "named": true
5d12d71 946
          }
5d12d71 947
        ]
5d12d71 948
      },
a271f34 949
      "externKw": {
a271f34 950
        "multiple": false,
a271f34 951
        "required": false,
a271f34 952
        "types": [
a271f34 953
          {
a271f34 954
            "type": "extern",
a271f34 955
            "named": false
a271f34 956
          }
a271f34 957
        ]
a271f34 958
      },
f997bee 959
      "name": {
4bd2c1c 960
        "multiple": false,
f997bee 961
        "required": true,
4bd2c1c 962
        "types": [
4bd2c1c 963
          {
9e7927c 964
            "type": "fn_identifier",
efe15db 965
            "named": true
4bd2c1c 966
          }
4bd2c1c 967
        ]
4bd2c1c 968
      },
4bd2c1c 969
      "params": {
4bd2c1c 970
        "multiple": true,
4bd2c1c 971
        "required": true,
4bd2c1c 972
        "types": [
4bd2c1c 973
          {
4bd2c1c 974
            "type": "(",
4bd2c1c 975
            "named": false
4bd2c1c 976
          },
4bd2c1c 977
          {
4bd2c1c 978
            "type": ")",
4bd2c1c 979
            "named": false
4bd2c1c 980
          },
4bd2c1c 981
          {
4bd2c1c 982
            "type": ",",
4bd2c1c 983
            "named": false
4bd2c1c 984
          },
4bd2c1c 985
          {
4bd2c1c 986
            "type": "param",
4bd2c1c 987
            "named": true
141de54 988
          },
141de54 989
          {
141de54 990
            "type": "self",
141de54 991
            "named": true
4bd2c1c 992
          }
4bd2c1c 993
        ]
4bd2c1c 994
      },
4bd2c1c 995
      "returns": {
efe15db 996
        "multiple": true,
4bd2c1c 997
        "required": false,
4bd2c1c 998
        "types": [
efe15db 999
          {
2634d00 1000
            "type": "->",
efe15db 1001
            "named": false
efe15db 1002
          },
4bd2c1c 1003
          {
8f91d27 1004
            "type": "type",
4bd2c1c 1005
            "named": true
4bd2c1c 1006
          }
4bd2c1c 1007
        ]
4bd2c1c 1008
      }
4bd2c1c 1009
    }
4bd2c1c 1010
  },
0d8e2ab 1011
  {
0d8e2ab 1012
    "type": "fn_argument_list",
0d8e2ab 1013
    "named": true,
0d8e2ab 1014
    "fields": {},
0d8e2ab 1015
    "children": {
0d8e2ab 1016
      "multiple": true,
0d8e2ab 1017
      "required": false,
0d8e2ab 1018
      "types": [
0d8e2ab 1019
        {
0d8e2ab 1020
          "type": "expression",
0d8e2ab 1021
          "named": true
0d8e2ab 1022
        },
0d8e2ab 1023
        {
0d8e2ab 1024
          "type": "keyword_argument",
0d8e2ab 1025
          "named": true
0d8e2ab 1026
        },
0d8e2ab 1027
        {
0d8e2ab 1028
          "type": "pair_argument",
0d8e2ab 1029
          "named": true
0d8e2ab 1030
        }
0d8e2ab 1031
      ]
0d8e2ab 1032
    }
0d8e2ab 1033
  },
efe15db 1034
  {
f997bee 1035
    "type": "fn_call",
efe15db 1036
    "named": true,
f997bee 1037
    "fields": {
f997bee 1038
      "arguments": {
f997bee 1039
        "multiple": false,
f997bee 1040
        "required": true,
f997bee 1041
        "types": [
f997bee 1042
          {
0d8e2ab 1043
            "type": "fn_argument_list",
f997bee 1044
            "named": true
f997bee 1045
          }
f997bee 1046
        ]
f997bee 1047
      },
f997bee 1048
      "function": {
f997bee 1049
        "multiple": false,
f997bee 1050
        "required": true,
f997bee 1051
        "types": [
96ec67f 1052
          {
96ec67f 1053
            "type": "type_identifier",
96ec67f 1054
            "named": true
96ec67f 1055
          },
f997bee 1056
          {
f502d22 1057
            "type": "var_identifier",
f997bee 1058
            "named": true
f997bee 1059
          }
f997bee 1060
        ]
f997bee 1061
      }
f997bee 1062
    }
efe15db 1063
  },
906b92e 1064
  {
906b92e 1065
    "type": "fn_value_type",
906b92e 1066
    "named": true,
906b92e 1067
    "fields": {
906b92e 1068
      "params": {
906b92e 1069
        "multiple": true,
906b92e 1070
        "required": false,
906b92e 1071
        "types": [
906b92e 1072
          {
906b92e 1073
            "type": ",",
906b92e 1074
            "named": false
906b92e 1075
          },
906b92e 1076
          {
906b92e 1077
            "type": "type",
906b92e 1078
            "named": true
906b92e 1079
          }
906b92e 1080
        ]
906b92e 1081
      },
906b92e 1082
      "returns": {
906b92e 1083
        "multiple": false,
906b92e 1084
        "required": false,
906b92e 1085
        "types": [
906b92e 1086
          {
906b92e 1087
            "type": "type",
906b92e 1088
            "named": true
906b92e 1089
          }
906b92e 1090
        ]
906b92e 1091
      }
906b92e 1092
    }
906b92e 1093
  },
4bd2c1c 1094
  {
5d12d71 1095
    "type": "for",
4bd2c1c 1096
    "named": true,
4bd2c1c 1097
    "fields": {
5d12d71 1098
      "body": {
4bd2c1c 1099
        "multiple": false,
4bd2c1c 1100
        "required": true,
4bd2c1c 1101
        "types": [
4bd2c1c 1102
          {
5d12d71 1103
            "type": "body",
4bd2c1c 1104
            "named": true
4bd2c1c 1105
          }
4bd2c1c 1106
        ]
4bd2c1c 1107
      },
5d12d71 1108
      "left": {
5d12d71 1109
        "multiple": true,
5d12d71 1110
        "required": true,
4bd2c1c 1111
        "types": [
4bd2c1c 1112
          {
5d12d71 1113
            "type": ",",
5d12d71 1114
            "named": false
5d12d71 1115
          },
5d12d71 1116
          {
9e7927c 1117
            "type": "var_identifier",
4bd2c1c 1118
            "named": true
4bd2c1c 1119
          }
4bd2c1c 1120
        ]
4bd2c1c 1121
      },
5d12d71 1122
      "right": {
4bd2c1c 1123
        "multiple": false,
5d12d71 1124
        "required": true,
4bd2c1c 1125
        "types": [
4bd2c1c 1126
          {
5d12d71 1127
            "type": "primary_expression",
4bd2c1c 1128
            "named": true
4bd2c1c 1129
          }
4bd2c1c 1130
        ]
4bd2c1c 1131
      }
4bd2c1c 1132
    }
4bd2c1c 1133
  },
4bd2c1c 1134
  {
f997bee 1135
    "type": "generics",
4bd2c1c 1136
    "named": true,
4bd2c1c 1137
    "fields": {},
4bd2c1c 1138
    "children": {
4bd2c1c 1139
      "multiple": true,
4bd2c1c 1140
      "required": true,
4bd2c1c 1141
      "types": [
4bd2c1c 1142
        {
8f91d27 1143
          "type": "generic",
f997bee 1144
          "named": true
f997bee 1145
        },
f997bee 1146
        {
f997bee 1147
          "type": "type_identifier",
4bd2c1c 1148
          "named": true
4bd2c1c 1149
        }
4bd2c1c 1150
      ]
4bd2c1c 1151
    }
4bd2c1c 1152
  },
608d862 1153
  {
608d862 1154
    "type": "guard_case",
608d862 1155
    "named": true,
608d862 1156
    "fields": {
608d862 1157
      "body": {
608d862 1158
        "multiple": false,
608d862 1159
        "required": true,
608d862 1160
        "types": [
608d862 1161
          {
608d862 1162
            "type": "body",
608d862 1163
            "named": true
608d862 1164
          },
608d862 1165
          {
608d862 1166
            "type": "expression",
608d862 1167
            "named": true
608d862 1168
          }
608d862 1169
        ]
608d862 1170
      },
608d862 1171
      "guard": {
608d862 1172
        "multiple": false,
608d862 1173
        "required": true,
608d862 1174
        "types": [
608d862 1175
          {
608d862 1176
            "type": "_",
608d862 1177
            "named": false
608d862 1178
          },
608d862 1179
          {
608d862 1180
            "type": "expression",
608d862 1181
            "named": true
608d862 1182
          }
608d862 1183
        ]
608d862 1184
      }
608d862 1185
    }
608d862 1186
  },
4bd2c1c 1187
  {
fc68ba7 1188
    "type": "if",
4bd2c1c 1189
    "named": true,
4bd2c1c 1190
    "fields": {
4bd2c1c 1191
      "alternative": {
4bd2c1c 1192
        "multiple": true,
4bd2c1c 1193
        "required": false,
4bd2c1c 1194
        "types": [
4bd2c1c 1195
          {
fc68ba7 1196
            "type": "else_if",
4bd2c1c 1197
            "named": true
4bd2c1c 1198
          }
4bd2c1c 1199
        ]
4bd2c1c 1200
      },
5d12d71 1201
      "body": {
4bd2c1c 1202
        "multiple": false,
4bd2c1c 1203
        "required": true,
4bd2c1c 1204
        "types": [
4bd2c1c 1205
          {
5d12d71 1206
            "type": "body",
4bd2c1c 1207
            "named": true
4bd2c1c 1208
          }
4bd2c1c 1209
        ]
4bd2c1c 1210
      },
5d12d71 1211
      "condition": {
4bd2c1c 1212
        "multiple": false,
4bd2c1c 1213
        "required": true,
4bd2c1c 1214
        "types": [
4bd2c1c 1215
          {
5d12d71 1216
            "type": "expression",
4bd2c1c 1217
            "named": true
4bd2c1c 1218
          }
4bd2c1c 1219
        ]
9e7927c 1220
      },
9e7927c 1221
      "otherwise": {
9e7927c 1222
        "multiple": false,
9e7927c 1223
        "required": false,
9e7927c 1224
        "types": [
9e7927c 1225
          {
9e7927c 1226
            "type": "else",
9e7927c 1227
            "named": true
9e7927c 1228
          }
9e7927c 1229
        ]
4bd2c1c 1230
      }
4bd2c1c 1231
    }
4bd2c1c 1232
  },
4bd2c1c 1233
  {
4bd2c1c 1234
    "type": "import",
4bd2c1c 1235
    "named": true,
4bd2c1c 1236
    "fields": {},
4bd2c1c 1237
    "children": {
4bd2c1c 1238
      "multiple": false,
4bd2c1c 1239
      "required": true,
4bd2c1c 1240
      "types": [
4bd2c1c 1241
        {
4bd2c1c 1242
          "type": "url",
4bd2c1c 1243
          "named": true
4bd2c1c 1244
        }
4bd2c1c 1245
      ]
4bd2c1c 1246
    }
4bd2c1c 1247
  },
4bd2c1c 1248
  {
4bd2c1c 1249
    "type": "integer",
4bd2c1c 1250
    "named": true,
4bd2c1c 1251
    "fields": {}
4bd2c1c 1252
  },
4bd2c1c 1253
  {
f997bee 1254
    "type": "interpolation",
4bd2c1c 1255
    "named": true,
0d43379 1256
    "fields": {},
0d43379 1257
    "children": {
0d43379 1258
      "multiple": false,
0d43379 1259
      "required": true,
0d43379 1260
      "types": [
0d43379 1261
        {
2ec05c8 1262
          "type": "expression",
0d43379 1263
          "named": true
0d43379 1264
        }
0d43379 1265
      ]
f997bee 1266
    }
f997bee 1267
  },
f997bee 1268
  {
f997bee 1269
    "type": "keyword_argument",
f997bee 1270
    "named": true,
f997bee 1271
    "fields": {
f997bee 1272
      "name": {
f997bee 1273
        "multiple": false,
f997bee 1274
        "required": true,
f997bee 1275
        "types": [
f997bee 1276
          {
9e7927c 1277
            "type": "var_identifier",
f997bee 1278
            "named": true
f997bee 1279
          }
f997bee 1280
        ]
f997bee 1281
      },
f997bee 1282
      "value": {
f997bee 1283
        "multiple": false,
f997bee 1284
        "required": true,
f997bee 1285
        "types": [
f997bee 1286
          {
f997bee 1287
            "type": "expression",
f997bee 1288
            "named": true
f997bee 1289
          }
f997bee 1290
        ]
f997bee 1291
      }
2634d00 1292
    }
2634d00 1293
  },
fc68ba7 1294
  {
fc68ba7 1295
    "type": "match",
fc68ba7 1296
    "named": true,
fc68ba7 1297
    "fields": {
fc68ba7 1298
      "case": {
fc68ba7 1299
        "multiple": true,
fc68ba7 1300
        "required": false,
fc68ba7 1301
        "types": [
fc68ba7 1302
          {
fc68ba7 1303
            "type": "case",
fc68ba7 1304
            "named": true
608d862 1305
          },
608d862 1306
          {
608d862 1307
            "type": "guard_case",
608d862 1308
            "named": true
fc68ba7 1309
          }
fc68ba7 1310
        ]
fc68ba7 1311
      },
fc68ba7 1312
      "subject": {
fc68ba7 1313
        "multiple": true,
608d862 1314
        "required": false,
fc68ba7 1315
        "types": [
fc68ba7 1316
          {
fc68ba7 1317
            "type": "expression",
fc68ba7 1318
            "named": true
fc68ba7 1319
          }
fc68ba7 1320
        ]
fc68ba7 1321
      }
fc68ba7 1322
    }
fc68ba7 1323
  },
fd085d9 1324
  {
fd085d9 1325
    "type": "module",
fd085d9 1326
    "named": true,
fd085d9 1327
    "fields": {},
fd085d9 1328
    "children": {
fd085d9 1329
      "multiple": false,
fd085d9 1330
      "required": true,
fd085d9 1331
      "types": [
fd085d9 1332
        {
58cc293 1333
          "type": "mod_identifier",
fd085d9 1334
          "named": true
fd085d9 1335
        }
fd085d9 1336
      ]
fd085d9 1337
    }
fd085d9 1338
  },
fd085d9 1339
  {
fd085d9 1340
    "type": "not_operator",
fd085d9 1341
    "named": true,
fd085d9 1342
    "fields": {
fd085d9 1343
      "argument": {
efe15db 1344
        "multiple": false,
efe15db 1345
        "required": true,
efe15db 1346
        "types": [
efe15db 1347
          {
fd085d9 1348
            "type": "expression",
efe15db 1349
            "named": true
efe15db 1350
          }
efe15db 1351
        ]
efe15db 1352
      }
efe15db 1353
    }
efe15db 1354
  },
4bd2c1c 1355
  {
4bd2c1c 1356
    "type": "pair_argument",
4bd2c1c 1357
    "named": true,
4bd2c1c 1358
    "fields": {
4bd2c1c 1359
      "name": {
4bd2c1c 1360
        "multiple": false,
4bd2c1c 1361
        "required": true,
4bd2c1c 1362
        "types": [
4bd2c1c 1363
          {
4bd2c1c 1364
            "type": "string",
4bd2c1c 1365
            "named": true
4bd2c1c 1366
          }
4bd2c1c 1367
        ]
4bd2c1c 1368
      },
4bd2c1c 1369
      "value": {
4bd2c1c 1370
        "multiple": false,
4bd2c1c 1371
        "required": true,
4bd2c1c 1372
        "types": [
4bd2c1c 1373
          {
4bd2c1c 1374
            "type": "expression",
4bd2c1c 1375
            "named": true
4bd2c1c 1376
          }
4bd2c1c 1377
        ]
4bd2c1c 1378
      }
4bd2c1c 1379
    }
4bd2c1c 1380
  },
4bd2c1c 1381
  {
4bd2c1c 1382
    "type": "param",
4bd2c1c 1383
    "named": true,
4bd2c1c 1384
    "fields": {
4bd2c1c 1385
      "name": {
4bd2c1c 1386
        "multiple": false,
419a88f 1387
        "required": true,
4bd2c1c 1388
        "types": [
4bd2c1c 1389
          {
9e7927c 1390
            "type": "var_identifier",
4bd2c1c 1391
            "named": true
4bd2c1c 1392
          }
4bd2c1c 1393
        ]
4bd2c1c 1394
      },
4bd2c1c 1395
      "type": {
4bd2c1c 1396
        "multiple": false,
419a88f 1397
        "required": true,
4bd2c1c 1398
        "types": [
906b92e 1399
          {
906b92e 1400
            "type": "fn_value_type",
906b92e 1401
            "named": true
906b92e 1402
          },
4bd2c1c 1403
          {
4bd2c1c 1404
            "type": "type",
4bd2c1c 1405
            "named": true
f997bee 1406
          },
f997bee 1407
          {
f997bee 1408
            "type": "variadic_type",
f997bee 1409
            "named": true
4bd2c1c 1410
          }
4bd2c1c 1411
        ]
4bd2c1c 1412
      },
4bd2c1c 1413
      "value": {
4bd2c1c 1414
        "multiple": false,
4bd2c1c 1415
        "required": false,
4bd2c1c 1416
        "types": [
4bd2c1c 1417
          {
4bd2c1c 1418
            "type": "expression",
4bd2c1c 1419
            "named": true
4bd2c1c 1420
          }
4bd2c1c 1421
        ]
4bd2c1c 1422
      }
4bd2c1c 1423
    }
4bd2c1c 1424
  },
4bd2c1c 1425
  {
4bd2c1c 1426
    "type": "parenthesized_expression",
4bd2c1c 1427
    "named": true,
4bd2c1c 1428
    "fields": {},
4bd2c1c 1429
    "children": {
4bd2c1c 1430
      "multiple": false,
4bd2c1c 1431
      "required": true,
4bd2c1c 1432
      "types": [
4bd2c1c 1433
        {
4bd2c1c 1434
          "type": "expression",
4bd2c1c 1435
          "named": true
4bd2c1c 1436
        }
4bd2c1c 1437
      ]
4bd2c1c 1438
    }
4bd2c1c 1439
  },
4bd2c1c 1440
  {
5d12d71 1441
    "type": "primary_expression",
4bd2c1c 1442
    "named": true,
5d12d71 1443
    "fields": {},
5d12d71 1444
    "children": {
5d12d71 1445
      "multiple": false,
5d12d71 1446
      "required": true,
5d12d71 1447
      "types": [
5d12d71 1448
        {
5d12d71 1449
          "type": "attribute",
5d12d71 1450
          "named": true
5d12d71 1451
        },
5d12d71 1452
        {
5d12d71 1453
          "type": "binary_operator",
5d12d71 1454
          "named": true
5d12d71 1455
        },
d322d05 1456
        {
d322d05 1457
          "type": "class_call",
d322d05 1458
          "named": true
d322d05 1459
        },
a271f34 1460
        {
a271f34 1461
          "type": "const_identifier",
a271f34 1462
          "named": true
a271f34 1463
        },
5d12d71 1464
        {
f997bee 1465
          "type": "float",
5d12d71 1466
          "named": true
5d12d71 1467
        },
5d12d71 1468
        {
f997bee 1469
          "type": "fn_call",
5d12d71 1470
          "named": true
5d12d71 1471
        },
5d12d71 1472
        {
5d12d71 1473
          "type": "integer",
5d12d71 1474
          "named": true
5d12d71 1475
        },
5d12d71 1476
        {
5d12d71 1477
          "type": "parenthesized_expression",
5d12d71 1478
          "named": true
5d12d71 1479
        },
43e5250 1480
        {
43e5250 1481
          "type": "safe_attribute",
43e5250 1482
          "named": true
43e5250 1483
        },
efe15db 1484
        {
c05610c 1485
          "type": "self",
f997bee 1486
          "named": true
f997bee 1487
        },
f997bee 1488
        {
c05610c 1489
          "type": "string",
efe15db 1490
          "named": true
efe15db 1491
        },
af1776b 1492
        {
af1776b 1493
          "type": "try_expression",
af1776b 1494
          "named": true
af1776b 1495
        },
5d12d71 1496
        {
f997bee 1497
          "type": "type_identifier",
5d12d71 1498
          "named": true
5d12d71 1499
        },
5d12d71 1500
        {
5d12d71 1501
          "type": "unary_operator",
5d12d71 1502
          "named": true
9e7927c 1503
        },
9e7927c 1504
        {
9e7927c 1505
          "type": "var_identifier",
9e7927c 1506
          "named": true
5d12d71 1507
        }
5d12d71 1508
      ]
5d12d71 1509
    }
4bd2c1c 1510
  },
fc68ba7 1511
  {
fc68ba7 1512
    "type": "return",
fc68ba7 1513
    "named": true,
fc68ba7 1514
    "fields": {},
fc68ba7 1515
    "children": {
fc68ba7 1516
      "multiple": false,
fc68ba7 1517
      "required": false,
fc68ba7 1518
      "types": [
fc68ba7 1519
        {
fc68ba7 1520
          "type": "expression",
fc68ba7 1521
          "named": true
fc68ba7 1522
        }
fc68ba7 1523
      ]
fc68ba7 1524
    }
fc68ba7 1525
  },
43e5250 1526
  {
43e5250 1527
    "type": "safe_attribute",
43e5250 1528
    "named": true,
43e5250 1529
    "fields": {
43e5250 1530
      "arguments": {
43e5250 1531
        "multiple": false,
43e5250 1532
        "required": false,
43e5250 1533
        "types": [
43e5250 1534
          {
43e5250 1535
            "type": "fn_argument_list",
43e5250 1536
            "named": true
43e5250 1537
          }
43e5250 1538
        ]
43e5250 1539
      },
43e5250 1540
      "member": {
43e5250 1541
        "multiple": false,
43e5250 1542
        "required": true,
43e5250 1543
        "types": [
43e5250 1544
          {
43e5250 1545
            "type": "fn_identifier",
43e5250 1546
            "named": true
43e5250 1547
          }
43e5250 1548
        ]
43e5250 1549
      },
43e5250 1550
      "object": {
43e5250 1551
        "multiple": false,
43e5250 1552
        "required": true,
43e5250 1553
        "types": [
43e5250 1554
          {
43e5250 1555
            "type": "primary_expression",
43e5250 1556
            "named": true
43e5250 1557
          }
43e5250 1558
        ]
43e5250 1559
      }
43e5250 1560
    }
43e5250 1561
  },
4bd2c1c 1562
  {
4bd2c1c 1563
    "type": "source",
4bd2c1c 1564
    "named": true,
0d43379 1565
    "root": true,
4bd2c1c 1566
    "fields": {},
4bd2c1c 1567
    "children": {
4bd2c1c 1568
      "multiple": true,
4bd2c1c 1569
      "required": false,
4bd2c1c 1570
      "types": [
58cc293 1571
        {
58cc293 1572
          "type": "const",
58cc293 1573
          "named": true
58cc293 1574
        },
4bd2c1c 1575
        {
4bd2c1c 1576
          "type": "enum",
4bd2c1c 1577
          "named": true
4bd2c1c 1578
        },
4bd2c1c 1579
        {
4bd2c1c 1580
          "type": "fn",
4bd2c1c 1581
          "named": true
4bd2c1c 1582
        },
4bd2c1c 1583
        {
4bd2c1c 1584
          "type": "import",
4bd2c1c 1585
          "named": true
4bd2c1c 1586
        },
4bd2c1c 1587
        {
4bd2c1c 1588
          "type": "module",
4bd2c1c 1589
          "named": true
4bd2c1c 1590
        },
a271f34 1591
        {
a271f34 1592
          "type": "test",
a271f34 1593
          "named": true
a271f34 1594
        },
4bd2c1c 1595
        {
4bd2c1c 1596
          "type": "trait",
4bd2c1c 1597
          "named": true
4bd2c1c 1598
        }
4bd2c1c 1599
      ]
4bd2c1c 1600
    }
4bd2c1c 1601
  },
13507fa 1602
  {
13507fa 1603
    "type": "spread_argument",
13507fa 1604
    "named": true,
13507fa 1605
    "fields": {
13507fa 1606
      "value": {
13507fa 1607
        "multiple": false,
13507fa 1608
        "required": true,
13507fa 1609
        "types": [
13507fa 1610
          {
13507fa 1611
            "type": "expression",
13507fa 1612
            "named": true
13507fa 1613
          }
13507fa 1614
        ]
13507fa 1615
      }
13507fa 1616
    }
13507fa 1617
  },
4bd2c1c 1618
  {
4bd2c1c 1619
    "type": "string",
4bd2c1c 1620
    "named": true,
4bd2c1c 1621
    "fields": {},
f997bee 1622
    "children": {
f997bee 1623
      "multiple": true,
f997bee 1624
      "required": true,
f997bee 1625
      "types": [
f997bee 1626
        {
f997bee 1627
          "type": "interpolation",
f997bee 1628
          "named": true
f997bee 1629
        },
f997bee 1630
        {
f997bee 1631
          "type": "string_content",
f997bee 1632
          "named": true
f997bee 1633
        },
f997bee 1634
        {
f997bee 1635
          "type": "string_end",
f997bee 1636
          "named": true
f997bee 1637
        },
f997bee 1638
        {
f997bee 1639
          "type": "string_start",
f997bee 1640
          "named": true
f997bee 1641
        }
f997bee 1642
      ]
f997bee 1643
    }
f997bee 1644
  },
f997bee 1645
  {
f997bee 1646
    "type": "string_content",
f997bee 1647
    "named": true,
f997bee 1648
    "fields": {},
4bd2c1c 1649
    "children": {
4bd2c1c 1650
      "multiple": true,
5d12d71 1651
      "required": false,
4bd2c1c 1652
      "types": [
4bd2c1c 1653
        {
f997bee 1654
          "type": "escape_interpolation",
4bd2c1c 1655
          "named": true
4bd2c1c 1656
        },
4bd2c1c 1657
        {
f997bee 1658
          "type": "escape_sequence",
4bd2c1c 1659
          "named": true
4bd2c1c 1660
        }
4bd2c1c 1661
      ]
4bd2c1c 1662
    }
4bd2c1c 1663
  },
4bd2c1c 1664
  {
4bd2c1c 1665
    "type": "ternary_expression",
4bd2c1c 1666
    "named": true,
4bd2c1c 1667
    "fields": {},
4bd2c1c 1668
    "children": {
4bd2c1c 1669
      "multiple": true,
4bd2c1c 1670
      "required": true,
4bd2c1c 1671
      "types": [
4bd2c1c 1672
        {
4bd2c1c 1673
          "type": "expression",
4bd2c1c 1674
          "named": true
4bd2c1c 1675
        }
4bd2c1c 1676
      ]
4bd2c1c 1677
    }
4bd2c1c 1678
  },
a271f34 1679
  {
a271f34 1680
    "type": "test",
a271f34 1681
    "named": true,
a271f34 1682
    "fields": {
a271f34 1683
      "body": {
a271f34 1684
        "multiple": false,
a271f34 1685
        "required": true,
a271f34 1686
        "types": [
a271f34 1687
          {
a271f34 1688
            "type": "body",
a271f34 1689
            "named": true
a271f34 1690
          }
a271f34 1691
        ]
a271f34 1692
      },
a271f34 1693
      "name": {
a271f34 1694
        "multiple": false,
a271f34 1695
        "required": true,
a271f34 1696
        "types": [
a271f34 1697
          {
a271f34 1698
            "type": "string",
a271f34 1699
            "named": true
a271f34 1700
          }
a271f34 1701
        ]
a271f34 1702
      }
a271f34 1703
    }
a271f34 1704
  },
f997bee 1705
  {
f997bee 1706
    "type": "todo",
f997bee 1707
    "named": true,
f997bee 1708
    "fields": {}
f997bee 1709
  },
4bd2c1c 1710
  {
4bd2c1c 1711
    "type": "trait",
4bd2c1c 1712
    "named": true,
4bd2c1c 1713
    "fields": {
4bd2c1c 1714
      "fields": {
4bd2c1c 1715
        "multiple": true,
59e3de6 1716
        "required": false,
4bd2c1c 1717
        "types": [
4bd2c1c 1718
          {
59e3de6 1719
            "type": "field",
efe15db 1720
            "named": true
4bd2c1c 1721
          }
4bd2c1c 1722
        ]
4bd2c1c 1723
      },
4bd2c1c 1724
      "generics": {
4bd2c1c 1725
        "multiple": false,
4bd2c1c 1726
        "required": false,
4bd2c1c 1727
        "types": [
4bd2c1c 1728
          {
4bd2c1c 1729
            "type": "generics",
4bd2c1c 1730
            "named": true
4bd2c1c 1731
          }
4bd2c1c 1732
        ]
4bd2c1c 1733
      },
4bd2c1c 1734
      "name": {
4bd2c1c 1735
        "multiple": false,
4bd2c1c 1736
        "required": true,
4bd2c1c 1737
        "types": [
4bd2c1c 1738
          {
f997bee 1739
            "type": "type_identifier",
4bd2c1c 1740
            "named": true
4bd2c1c 1741
          }
4bd2c1c 1742
        ]
4bd2c1c 1743
      }
4bd2c1c 1744
    }
4bd2c1c 1745
  },
af1776b 1746
  {
af1776b 1747
    "type": "try_expression",
af1776b 1748
    "named": true,
af1776b 1749
    "fields": {
af1776b 1750
      "value": {
af1776b 1751
        "multiple": false,
af1776b 1752
        "required": true,
af1776b 1753
        "types": [
af1776b 1754
          {
af1776b 1755
            "type": "primary_expression",
af1776b 1756
            "named": true
af1776b 1757
          }
af1776b 1758
        ]
af1776b 1759
      }
af1776b 1760
    }
af1776b 1761
  },
4bd2c1c 1762
  {
4bd2c1c 1763
    "type": "type",
4bd2c1c 1764
    "named": true,
4bd2c1c 1765
    "fields": {
a271f34 1766
      "element": {
a271f34 1767
        "multiple": false,
a271f34 1768
        "required": false,
a271f34 1769
        "types": [
a271f34 1770
          {
a271f34 1771
            "type": "type",
a271f34 1772
            "named": true
a271f34 1773
          }
a271f34 1774
        ]
a271f34 1775
      },
4bd2c1c 1776
      "generics": {
efe15db 1777
        "multiple": true,
4bd2c1c 1778
        "required": false,
4bd2c1c 1779
        "types": [
4bd2c1c 1780
          {
fd085d9 1781
            "type": ",",
efe15db 1782
            "named": false
efe15db 1783
          },
efe15db 1784
          {
fd085d9 1785
            "type": "[",
efe15db 1786
            "named": false
efe15db 1787
          },
efe15db 1788
          {
fd085d9 1789
            "type": "]",
efe15db 1790
            "named": false
efe15db 1791
          },
efe15db 1792
          {
f997bee 1793
            "type": "type",
4bd2c1c 1794
            "named": true
4bd2c1c 1795
          }
4bd2c1c 1796
        ]
4bd2c1c 1797
      }
4bd2c1c 1798
    },
4bd2c1c 1799
    "children": {
6b5d9db 1800
      "multiple": false,
a271f34 1801
      "required": false,
4bd2c1c 1802
      "types": [
4bd2c1c 1803
        {
8f91d27 1804
          "type": "generic",
f997bee 1805
          "named": true
f997bee 1806
        },
f997bee 1807
        {
f997bee 1808
          "type": "type_identifier",
4bd2c1c 1809
          "named": true
4bd2c1c 1810
        }
4bd2c1c 1811
      ]
4bd2c1c 1812
    }
4bd2c1c 1813
  },
4bd2c1c 1814
  {
4bd2c1c 1815
    "type": "unary_operator",
4bd2c1c 1816
    "named": true,
4bd2c1c 1817
    "fields": {
4bd2c1c 1818
      "argument": {
4bd2c1c 1819
        "multiple": false,
4bd2c1c 1820
        "required": true,
4bd2c1c 1821
        "types": [
4bd2c1c 1822
          {
4bd2c1c 1823
            "type": "primary_expression",
4bd2c1c 1824
            "named": true
4bd2c1c 1825
          }
4bd2c1c 1826
        ]
4bd2c1c 1827
      },
4bd2c1c 1828
      "operator": {
4bd2c1c 1829
        "multiple": false,
4bd2c1c 1830
        "required": true,
4bd2c1c 1831
        "types": [
4bd2c1c 1832
          {
4bd2c1c 1833
            "type": "+",
4bd2c1c 1834
            "named": false
4bd2c1c 1835
          },
4bd2c1c 1836
          {
4bd2c1c 1837
            "type": "-",
4bd2c1c 1838
            "named": false
4bd2c1c 1839
          }
4bd2c1c 1840
        ]
4bd2c1c 1841
      }
4bd2c1c 1842
    }
4bd2c1c 1843
  },
4bd2c1c 1844
  {
4bd2c1c 1845
    "type": "url",
4bd2c1c 1846
    "named": true,
a271f34 1847
    "fields": {},
a271f34 1848
    "children": {
a271f34 1849
      "multiple": true,
a271f34 1850
      "required": true,
a271f34 1851
      "types": [
a271f34 1852
        {
a271f34 1853
          "type": "url_segment",
a271f34 1854
          "named": true
a271f34 1855
        }
a271f34 1856
      ]
a271f34 1857
    }
4bd2c1c 1858
  },
2634d00 1859
  {
f997bee 1860
    "type": "variadic_type",
2634d00 1861
    "named": true,
2634d00 1862
    "fields": {},
2634d00 1863
    "children": {
f997bee 1864
      "multiple": false,
2634d00 1865
      "required": true,
2634d00 1866
      "types": [
2634d00 1867
        {
2634d00 1868
          "type": "type",
2634d00 1869
          "named": true
2634d00 1870
        }
2634d00 1871
      ]
2634d00 1872
    }
2634d00 1873
  },
4bd2c1c 1874
  {
5d12d71 1875
    "type": "while",
4bd2c1c 1876
    "named": true,
4bd2c1c 1877
    "fields": {
4bd2c1c 1878
      "body": {
4bd2c1c 1879
        "multiple": false,
4bd2c1c 1880
        "required": true,
4bd2c1c 1881
        "types": [
4bd2c1c 1882
          {
5d12d71 1883
            "type": "body",
4bd2c1c 1884
            "named": true
4bd2c1c 1885
          }
4bd2c1c 1886
        ]
4bd2c1c 1887
      },
4bd2c1c 1888
      "condition": {
4bd2c1c 1889
        "multiple": false,
4bd2c1c 1890
        "required": true,
4bd2c1c 1891
        "types": [
4bd2c1c 1892
          {
4bd2c1c 1893
            "type": "expression",
4bd2c1c 1894
            "named": true
4bd2c1c 1895
          }
4bd2c1c 1896
        ]
4bd2c1c 1897
      }
4bd2c1c 1898
    }
4bd2c1c 1899
  },
4bd2c1c 1900
  {
4bd2c1c 1901
    "type": "!",
4bd2c1c 1902
    "named": false
4bd2c1c 1903
  },
4bd2c1c 1904
  {
4bd2c1c 1905
    "type": "!=",
4bd2c1c 1906
    "named": false
4bd2c1c 1907
  },
4bd2c1c 1908
  {
5d12d71 1909
    "type": "%",
4bd2c1c 1910
    "named": false
4bd2c1c 1911
  },
4bd2c1c 1912
  {
4bd2c1c 1913
    "type": "&",
4bd2c1c 1914
    "named": false
4bd2c1c 1915
  },
4bd2c1c 1916
  {
4bd2c1c 1917
    "type": "&&",
4bd2c1c 1918
    "named": false
4bd2c1c 1919
  },
4bd2c1c 1920
  {
4bd2c1c 1921
    "type": "(",
4bd2c1c 1922
    "named": false
4bd2c1c 1923
  },
4bd2c1c 1924
  {
4bd2c1c 1925
    "type": ")",
4bd2c1c 1926
    "named": false
4bd2c1c 1927
  },
4bd2c1c 1928
  {
4bd2c1c 1929
    "type": "*",
4bd2c1c 1930
    "named": false
4bd2c1c 1931
  },
4bd2c1c 1932
  {
4bd2c1c 1933
    "type": "+",
4bd2c1c 1934
    "named": false
4bd2c1c 1935
  },
4bd2c1c 1936
  {
4bd2c1c 1937
    "type": ",",
4bd2c1c 1938
    "named": false
4bd2c1c 1939
  },
4bd2c1c 1940
  {
4bd2c1c 1941
    "type": "-",
4bd2c1c 1942
    "named": false
4bd2c1c 1943
  },
4bd2c1c 1944
  {
5d12d71 1945
    "type": "->",
4bd2c1c 1946
    "named": false
4bd2c1c 1947
  },
4bd2c1c 1948
  {
4bd2c1c 1949
    "type": ".",
4bd2c1c 1950
    "named": false
4bd2c1c 1951
  },
13507fa 1952
  {
13507fa 1953
    "type": "..",
13507fa 1954
    "named": false
13507fa 1955
  },
2634d00 1956
  {
f997bee 1957
    "type": "...",
2634d00 1958
    "named": false
2634d00 1959
  },
4bd2c1c 1960
  {
4bd2c1c 1961
    "type": "/",
4bd2c1c 1962
    "named": false
4bd2c1c 1963
  },
4bd2c1c 1964
  {
4bd2c1c 1965
    "type": ":",
4bd2c1c 1966
    "named": false
4bd2c1c 1967
  },
a271f34 1968
  {
a271f34 1969
    "type": ":=",
a271f34 1970
    "named": false
a271f34 1971
  },
4bd2c1c 1972
  {
4bd2c1c 1973
    "type": "<",
4bd2c1c 1974
    "named": false
4bd2c1c 1975
  },
4bd2c1c 1976
  {
4bd2c1c 1977
    "type": "<<",
4bd2c1c 1978
    "named": false
4bd2c1c 1979
  },
4bd2c1c 1980
  {
4bd2c1c 1981
    "type": "<=",
4bd2c1c 1982
    "named": false
4bd2c1c 1983
  },
4bd2c1c 1984
  {
4bd2c1c 1985
    "type": "<>",
4bd2c1c 1986
    "named": false
4bd2c1c 1987
  },
4bd2c1c 1988
  {
4bd2c1c 1989
    "type": "=",
4bd2c1c 1990
    "named": false
4bd2c1c 1991
  },
4bd2c1c 1992
  {
4bd2c1c 1993
    "type": "==",
4bd2c1c 1994
    "named": false
4bd2c1c 1995
  },
4bd2c1c 1996
  {
4bd2c1c 1997
    "type": "=>",
4bd2c1c 1998
    "named": false
4bd2c1c 1999
  },
4bd2c1c 2000
  {
4bd2c1c 2001
    "type": ">",
4bd2c1c 2002
    "named": false
4bd2c1c 2003
  },
4bd2c1c 2004
  {
4bd2c1c 2005
    "type": ">=",
4bd2c1c 2006
    "named": false
4bd2c1c 2007
  },
4bd2c1c 2008
  {
4bd2c1c 2009
    "type": ">>",
4bd2c1c 2010
    "named": false
4bd2c1c 2011
  },
4bd2c1c 2012
  {
4bd2c1c 2013
    "type": "?",
4bd2c1c 2014
    "named": false
4bd2c1c 2015
  },
43e5250 2016
  {
43e5250 2017
    "type": "?.",
43e5250 2018
    "named": false
43e5250 2019
  },
ec5336f 2020
  {
ec5336f 2021
    "type": "?:",
ec5336f 2022
    "named": false
ec5336f 2023
  },
fc68ba7 2024
  {
fd085d9 2025
    "type": "[",
fd085d9 2026
    "named": false
fd085d9 2027
  },
0d43379 2028
  {
0d43379 2029
    "type": "\\",
0d43379 2030
    "named": false
0d43379 2031
  },
fd085d9 2032
  {
fd085d9 2033
    "type": "]",
fc68ba7 2034
    "named": false
fc68ba7 2035
  },
2634d00 2036
  {
f997bee 2037
    "type": "^",
2634d00 2038
    "named": false
2634d00 2039
  },
2634d00 2040
  {
f997bee 2041
    "type": "_",
2634d00 2042
    "named": false
2634d00 2043
  },
4bd2c1c 2044
  {
4bd2c1c 2045
    "type": "assert",
4bd2c1c 2046
    "named": false
4bd2c1c 2047
  },
4bd2c1c 2048
  {
4bd2c1c 2049
    "type": "break",
4bd2c1c 2050
    "named": false
4bd2c1c 2051
  },
efe15db 2052
  {
efe15db 2053
    "type": "comment",
f502d22 2054
    "named": true,
f502d22 2055
    "extra": true
efe15db 2056
  },
58cc293 2057
  {
58cc293 2058
    "type": "const_identifier",
58cc293 2059
    "named": true
58cc293 2060
  },
4bd2c1c 2061
  {
4bd2c1c 2062
    "type": "continue",
4bd2c1c 2063
    "named": false
4bd2c1c 2064
  },
4bd2c1c 2065
  {
4bd2c1c 2066
    "type": "else",
4bd2c1c 2067
    "named": false
4bd2c1c 2068
  },
4bd2c1c 2069
  {
4bd2c1c 2070
    "type": "else if",
4bd2c1c 2071
    "named": false
4bd2c1c 2072
  },
fd085d9 2073
  {
fd085d9 2074
    "type": "enum",
fd085d9 2075
    "named": false
fd085d9 2076
  },
4bd2c1c 2077
  {
f997bee 2078
    "type": "escape_interpolation",
f997bee 2079
    "named": true
f997bee 2080
  },
f997bee 2081
  {
f997bee 2082
    "type": "escape_sequence",
f997bee 2083
    "named": true
4bd2c1c 2084
  },
a271f34 2085
  {
a271f34 2086
    "type": "extern",
a271f34 2087
    "named": false
a271f34 2088
  },
4bd2c1c 2089
  {
4bd2c1c 2090
    "type": "float",
4bd2c1c 2091
    "named": true
4bd2c1c 2092
  },
906b92e 2093
  {
906b92e 2094
    "type": "fn",
906b92e 2095
    "named": false
906b92e 2096
  },
4bd2c1c 2097
  {
9e7927c 2098
    "type": "fn_identifier",
9e7927c 2099
    "named": true
4bd2c1c 2100
  },
4bd2c1c 2101
  {
9e7927c 2102
    "type": "for",
9e7927c 2103
    "named": false
4bd2c1c 2104
  },
c06ddba 2105
  {
c06ddba 2106
    "type": "fun",
c06ddba 2107
    "named": false
c06ddba 2108
  },
8f91d27 2109
  {
8f91d27 2110
    "type": "generic",
8f91d27 2111
    "named": true
8f91d27 2112
  },
4bd2c1c 2113
  {
4bd2c1c 2114
    "type": "if",
4bd2c1c 2115
    "named": false
4bd2c1c 2116
  },
4bd2c1c 2117
  {
4bd2c1c 2118
    "type": "import",
4bd2c1c 2119
    "named": false
4bd2c1c 2120
  },
4bd2c1c 2121
  {
f502d22 2122
    "type": "match",
4bd2c1c 2123
    "named": false
4bd2c1c 2124
  },
4bd2c1c 2125
  {
f502d22 2126
    "type": "mod_identifier",
f502d22 2127
    "named": true
4bd2c1c 2128
  },
efe15db 2129
  {
f997bee 2130
    "type": "module",
efe15db 2131
    "named": false
efe15db 2132
  },
a271f34 2133
  {
a271f34 2134
    "type": "range",
a271f34 2135
    "named": false
a271f34 2136
  },
efe15db 2137
  {
f997bee 2138
    "type": "return",
efe15db 2139
    "named": false
efe15db 2140
  },
4bd2c1c 2141
  {
c05610c 2142
    "type": "self",
4bd2c1c 2143
    "named": true
4bd2c1c 2144
  },
4bd2c1c 2145
  {
c05610c 2146
    "type": "string_end",
f997bee 2147
    "named": true
4bd2c1c 2148
  },
efe15db 2149
  {
c05610c 2150
    "type": "string_start",
efe15db 2151
    "named": true
efe15db 2152
  },
a271f34 2153
  {
a271f34 2154
    "type": "test",
a271f34 2155
    "named": false
a271f34 2156
  },
efe15db 2157
  {
f997bee 2158
    "type": "todo",
efe15db 2159
    "named": false
efe15db 2160
  },
4bd2c1c 2161
  {
4bd2c1c 2162
    "type": "trait",
4bd2c1c 2163
    "named": false
4bd2c1c 2164
  },
4bd2c1c 2165
  {
f997bee 2166
    "type": "type_identifier",
4bd2c1c 2167
    "named": true
4bd2c1c 2168
  },
a271f34 2169
  {
a271f34 2170
    "type": "url_segment",
a271f34 2171
    "named": true
a271f34 2172
  },
f502d22 2173
  {
f502d22 2174
    "type": "var_identifier",
f502d22 2175
    "named": true
f502d22 2176
  },
4a2384c 2177
  {
4a2384c 2178
    "type": "when",
4a2384c 2179
    "named": false
4a2384c 2180
  },
4bd2c1c 2181
  {
4bd2c1c 2182
    "type": "while",
4bd2c1c 2183
    "named": false
4bd2c1c 2184
  },
4bd2c1c 2185
  {
4bd2c1c 2186
    "type": "{",
4bd2c1c 2187
    "named": false
4bd2c1c 2188
  },
4bd2c1c 2189
  {
4bd2c1c 2190
    "type": "|",
4bd2c1c 2191
    "named": false
4bd2c1c 2192
  },
4bd2c1c 2193
  {
4bd2c1c 2194
    "type": "||",
4bd2c1c 2195
    "named": false
4bd2c1c 2196
  },
4bd2c1c 2197
  {
4bd2c1c 2198
    "type": "}",
4bd2c1c 2199
    "named": false
4bd2c1c 2200
  }
4bd2c1c 2201
]