jrsonnet-rowan-parser 0.5.0-pre98

Rowan-based CST for jrsonnet
Documentation
---
source: crates/jrsonnet-rowan-parser/src/tests.rs
expression: "local [a, b, c] = arr;\nlocal [a, ...] = arr_rest;\nlocal [..., a] = rest_arr;\nlocal [...] = rest_in_arr;\nlocal [a, ...n] = arr_rest_n;\nlocal [...n, a] = rest_arr_n;\nlocal [...n] = rest_in_arr_n;\n\nlocal {a, b, c} = obj;\nlocal {a, b, c, ...} = obj_rest;\nlocal {a, b, c, ...n} = obj_rest_n;\n\nnull\n"
---
SOURCE_FILE@0..293
  EXPR@0..292
    STMT_LOCAL@0..22
      LOCAL_KW@0..5 "local"
      WHITESPACE@5..6 " "
      BIND_DESTRUCT@6..21
        DESTRUCT_ARRAY@6..15
          L_BRACK@6..7 "["
          DESTRUCT_FULL@7..8
            NAME@7..8
              IDENT@7..8 "a"
          COMMA@8..9 ","
          WHITESPACE@9..10 " "
          DESTRUCT_FULL@10..11
            NAME@10..11
              IDENT@10..11 "b"
          COMMA@11..12 ","
          WHITESPACE@12..13 " "
          DESTRUCT_FULL@13..14
            NAME@13..14
              IDENT@13..14 "c"
          R_BRACK@14..15 "]"
        WHITESPACE@15..16 " "
        ASSIGN@16..17 "="
        WHITESPACE@17..18 " "
        EXPR@18..21
          EXPR_VAR@18..21
            NAME@18..21
              IDENT@18..21 "arr"
      SEMI@21..22 ";"
    WHITESPACE@22..23 "\n"
    STMT_LOCAL@23..49
      LOCAL_KW@23..28 "local"
      WHITESPACE@28..29 " "
      BIND_DESTRUCT@29..48
        DESTRUCT_ARRAY@29..37
          L_BRACK@29..30 "["
          DESTRUCT_FULL@30..31
            NAME@30..31
              IDENT@30..31 "a"
          COMMA@31..32 ","
          WHITESPACE@32..33 " "
          DESTRUCT_REST@33..36
            DOTDOTDOT@33..36 "..."
          R_BRACK@36..37 "]"
        WHITESPACE@37..38 " "
        ASSIGN@38..39 "="
        WHITESPACE@39..40 " "
        EXPR@40..48
          EXPR_VAR@40..48
            NAME@40..48
              IDENT@40..48 "arr_rest"
      SEMI@48..49 ";"
    WHITESPACE@49..50 "\n"
    STMT_LOCAL@50..76
      LOCAL_KW@50..55 "local"
      WHITESPACE@55..56 " "
      BIND_DESTRUCT@56..75
        DESTRUCT_ARRAY@56..64
          L_BRACK@56..57 "["
          DESTRUCT_REST@57..60
            DOTDOTDOT@57..60 "..."
          COMMA@60..61 ","
          WHITESPACE@61..62 " "
          DESTRUCT_FULL@62..63
            NAME@62..63
              IDENT@62..63 "a"
          R_BRACK@63..64 "]"
        WHITESPACE@64..65 " "
        ASSIGN@65..66 "="
        WHITESPACE@66..67 " "
        EXPR@67..75
          EXPR_VAR@67..75
            NAME@67..75
              IDENT@67..75 "rest_arr"
      SEMI@75..76 ";"
    WHITESPACE@76..77 "\n"
    STMT_LOCAL@77..103
      LOCAL_KW@77..82 "local"
      WHITESPACE@82..83 " "
      BIND_DESTRUCT@83..102
        DESTRUCT_ARRAY@83..88
          L_BRACK@83..84 "["
          DESTRUCT_REST@84..87
            DOTDOTDOT@84..87 "..."
          R_BRACK@87..88 "]"
        WHITESPACE@88..89 " "
        ASSIGN@89..90 "="
        WHITESPACE@90..91 " "
        EXPR@91..102
          EXPR_VAR@91..102
            NAME@91..102
              IDENT@91..102 "rest_in_arr"
      SEMI@102..103 ";"
    WHITESPACE@103..104 "\n"
    STMT_LOCAL@104..133
      LOCAL_KW@104..109 "local"
      WHITESPACE@109..110 " "
      BIND_DESTRUCT@110..132
        DESTRUCT_ARRAY@110..119
          L_BRACK@110..111 "["
          DESTRUCT_FULL@111..112
            NAME@111..112
              IDENT@111..112 "a"
          COMMA@112..113 ","
          WHITESPACE@113..114 " "
          DESTRUCT_REST@114..118
            DOTDOTDOT@114..117 "..."
            IDENT@117..118 "n"
          R_BRACK@118..119 "]"
        WHITESPACE@119..120 " "
        ASSIGN@120..121 "="
        WHITESPACE@121..122 " "
        EXPR@122..132
          EXPR_VAR@122..132
            NAME@122..132
              IDENT@122..132 "arr_rest_n"
      SEMI@132..133 ";"
    WHITESPACE@133..134 "\n"
    STMT_LOCAL@134..163
      LOCAL_KW@134..139 "local"
      WHITESPACE@139..140 " "
      BIND_DESTRUCT@140..162
        DESTRUCT_ARRAY@140..149
          L_BRACK@140..141 "["
          DESTRUCT_REST@141..145
            DOTDOTDOT@141..144 "..."
            IDENT@144..145 "n"
          COMMA@145..146 ","
          WHITESPACE@146..147 " "
          DESTRUCT_FULL@147..148
            NAME@147..148
              IDENT@147..148 "a"
          R_BRACK@148..149 "]"
        WHITESPACE@149..150 " "
        ASSIGN@150..151 "="
        WHITESPACE@151..152 " "
        EXPR@152..162
          EXPR_VAR@152..162
            NAME@152..162
              IDENT@152..162 "rest_arr_n"
      SEMI@162..163 ";"
    WHITESPACE@163..164 "\n"
    STMT_LOCAL@164..193
      LOCAL_KW@164..169 "local"
      WHITESPACE@169..170 " "
      BIND_DESTRUCT@170..192
        DESTRUCT_ARRAY@170..176
          L_BRACK@170..171 "["
          DESTRUCT_REST@171..175
            DOTDOTDOT@171..174 "..."
            IDENT@174..175 "n"
          R_BRACK@175..176 "]"
        WHITESPACE@176..177 " "
        ASSIGN@177..178 "="
        WHITESPACE@178..179 " "
        EXPR@179..192
          EXPR_VAR@179..192
            NAME@179..192
              IDENT@179..192 "rest_in_arr_n"
      SEMI@192..193 ";"
    WHITESPACE@193..195 "\n\n"
    STMT_LOCAL@195..217
      LOCAL_KW@195..200 "local"
      WHITESPACE@200..201 " "
      BIND_DESTRUCT@201..216
        DESTRUCT_OBJECT@201..210
          L_BRACE@201..202 "{"
          DESTRUCT_OBJECT_FIELD@202..203
            NAME@202..203
              IDENT@202..203 "a"
          COMMA@203..204 ","
          WHITESPACE@204..205 " "
          DESTRUCT_OBJECT_FIELD@205..206
            NAME@205..206
              IDENT@205..206 "b"
          COMMA@206..207 ","
          WHITESPACE@207..208 " "
          DESTRUCT_OBJECT_FIELD@208..209
            NAME@208..209
              IDENT@208..209 "c"
          R_BRACE@209..210 "}"
        WHITESPACE@210..211 " "
        ASSIGN@211..212 "="
        WHITESPACE@212..213 " "
        EXPR@213..216
          EXPR_VAR@213..216
            NAME@213..216
              IDENT@213..216 "obj"
      SEMI@216..217 ";"
    WHITESPACE@217..218 "\n"
    STMT_LOCAL@218..250
      LOCAL_KW@218..223 "local"
      WHITESPACE@223..224 " "
      BIND_DESTRUCT@224..249
        DESTRUCT_OBJECT@224..238
          L_BRACE@224..225 "{"
          DESTRUCT_OBJECT_FIELD@225..226
            NAME@225..226
              IDENT@225..226 "a"
          COMMA@226..227 ","
          WHITESPACE@227..228 " "
          DESTRUCT_OBJECT_FIELD@228..229
            NAME@228..229
              IDENT@228..229 "b"
          COMMA@229..230 ","
          WHITESPACE@230..231 " "
          DESTRUCT_OBJECT_FIELD@231..232
            NAME@231..232
              IDENT@231..232 "c"
          COMMA@232..233 ","
          WHITESPACE@233..234 " "
          DESTRUCT_REST@234..237
            DOTDOTDOT@234..237 "..."
          R_BRACE@237..238 "}"
        WHITESPACE@238..239 " "
        ASSIGN@239..240 "="
        WHITESPACE@240..241 " "
        EXPR@241..249
          EXPR_VAR@241..249
            NAME@241..249
              IDENT@241..249 "obj_rest"
      SEMI@249..250 ";"
    WHITESPACE@250..251 "\n"
    STMT_LOCAL@251..286
      LOCAL_KW@251..256 "local"
      WHITESPACE@256..257 " "
      BIND_DESTRUCT@257..285
        DESTRUCT_OBJECT@257..272
          L_BRACE@257..258 "{"
          DESTRUCT_OBJECT_FIELD@258..259
            NAME@258..259
              IDENT@258..259 "a"
          COMMA@259..260 ","
          WHITESPACE@260..261 " "
          DESTRUCT_OBJECT_FIELD@261..262
            NAME@261..262
              IDENT@261..262 "b"
          COMMA@262..263 ","
          WHITESPACE@263..264 " "
          DESTRUCT_OBJECT_FIELD@264..265
            NAME@264..265
              IDENT@264..265 "c"
          COMMA@265..266 ","
          WHITESPACE@266..267 " "
          DESTRUCT_REST@267..271
            DOTDOTDOT@267..270 "..."
            IDENT@270..271 "n"
          R_BRACE@271..272 "}"
        WHITESPACE@272..273 " "
        ASSIGN@273..274 "="
        WHITESPACE@274..275 " "
        EXPR@275..285
          EXPR_VAR@275..285
            NAME@275..285
              IDENT@275..285 "obj_rest_n"
      SEMI@285..286 ";"
    WHITESPACE@286..288 "\n\n"
    EXPR_LITERAL@288..292
      NULL_KW@288..292 "null"
  WHITESPACE@292..293 "\n"