biome_js_parser 0.5.7

Biome's JavaScript parser
Documentation
JsModule {
    bom_token: missing (optional),
    interpreter_token: missing (optional),
    directives: JsDirectiveList [],
    items: JsModuleItemList [
        JsExpressionStatement {
            expression: JsAssignmentExpression {
                left: JsArrayAssignmentPattern {
                    l_brack_token: L_BRACK@0..1 "[" [] [],
                    elements: JsArrayAssignmentPatternElementList [
                        JsArrayAssignmentPatternElement {
                            pattern: JsIdentifierAssignment {
                                name_token: IDENT@1..4 "foo" [] [],
                            },
                            init: missing (optional),
                        },
                        COMMA@4..6 "," [] [Whitespace(" ")],
                        JsArrayAssignmentPatternElement {
                            pattern: JsIdentifierAssignment {
                                name_token: IDENT@6..9 "bar" [] [],
                            },
                            init: missing (optional),
                        },
                    ],
                    r_brack_token: R_BRACK@9..11 "]" [] [Whitespace(" ")],
                },
                operator_token: EQ@11..13 "=" [] [Whitespace(" ")],
                right: JsIdentifierExpression {
                    name: JsReferenceIdentifier {
                        value_token: IDENT@13..16 "baz" [] [],
                    },
                },
            },
            semicolon_token: SEMICOLON@16..17 ";" [] [],
        },
        JsExpressionStatement {
            expression: JsAssignmentExpression {
                left: JsArrayAssignmentPattern {
                    l_brack_token: L_BRACK@17..19 "[" [Newline("\n")] [],
                    elements: JsArrayAssignmentPatternElementList [
                        JsArrayHole,
                        COMMA@19..20 "," [] [],
                        JsArrayHole,
                        COMMA@20..21 "," [] [],
                        JsArrayHole,
                        COMMA@21..22 "," [] [],
                        JsArrayAssignmentPatternElement {
                            pattern: JsIdentifierAssignment {
                                name_token: IDENT@22..23 "b" [] [],
                            },
                            init: missing (optional),
                        },
                        COMMA@23..24 "," [] [],
                        JsArrayHole,
                        COMMA@24..25 "," [] [],
                        JsArrayAssignmentPatternElement {
                            pattern: JsIdentifierAssignment {
                                name_token: IDENT@25..26 "c" [] [],
                            },
                            init: missing (optional),
                        },
                        COMMA@26..27 "," [] [],
                    ],
                    r_brack_token: R_BRACK@27..29 "]" [] [Whitespace(" ")],
                },
                operator_token: EQ@29..31 "=" [] [Whitespace(" ")],
                right: JsIdentifierExpression {
                    name: JsReferenceIdentifier {
                        value_token: IDENT@31..34 "baz" [] [],
                    },
                },
            },
            semicolon_token: SEMICOLON@34..35 ";" [] [],
        },
        JsExpressionStatement {
            expression: JsAssignmentExpression {
                left: JsArrayAssignmentPattern {
                    l_brack_token: L_BRACK@35..37 "[" [Newline("\n")] [],
                    elements: JsArrayAssignmentPatternElementList [
                        JsArrayAssignmentPatternElement {
                            pattern: JsIdentifierAssignment {
                                name_token: IDENT@37..39 "a" [] [Whitespace(" ")],
                            },
                            init: JsInitializerClause {
                                eq_token: EQ@39..41 "=" [] [Whitespace(" ")],
                                expression: JsStringLiteralExpression {
                                    value_token: JS_STRING_LITERAL@41..47 "\"test\"" [] [],
                                },
                            },
                        },
                        COMMA@47..49 "," [] [Whitespace(" ")],
                        JsArrayAssignmentPatternElement {
                            pattern: JsStaticMemberAssignment {
                                object: JsIdentifierExpression {
                                    name: JsReferenceIdentifier {
                                        value_token: IDENT@49..50 "a" [] [],
                                    },
                                },
                                dot_token: DOT@50..51 "." [] [],
                                member: JsName {
                                    value_token: IDENT@51..52 "b" [] [],
                                },
                            },
                            init: missing (optional),
                        },
                        COMMA@52..54 "," [] [Whitespace(" ")],
                        JsArrayAssignmentPatternElement {
                            pattern: JsStaticMemberAssignment {
                                object: JsCallExpression {
                                    callee: JsIdentifierExpression {
                                        name: JsReferenceIdentifier {
                                            value_token: IDENT@54..58 "call" [] [],
                                        },
                                    },
                                    optional_chain_token: missing (optional),
                                    type_arguments: missing (optional),
                                    arguments: JsCallArguments {
                                        l_paren_token: L_PAREN@58..59 "(" [] [],
                                        args: JsCallArgumentList [],
                                        r_paren_token: R_PAREN@59..60 ")" [] [],
                                    },
                                },
                                dot_token: DOT@60..61 "." [] [],
                                member: JsName {
                                    value_token: IDENT@61..62 "b" [] [],
                                },
                            },
                            init: missing (optional),
                        },
                    ],
                    r_brack_token: R_BRACK@62..64 "]" [] [Whitespace(" ")],
                },
                operator_token: EQ@64..66 "=" [] [Whitespace(" ")],
                right: JsIdentifierExpression {
                    name: JsReferenceIdentifier {
                        value_token: IDENT@66..69 "baz" [] [],
                    },
                },
            },
            semicolon_token: SEMICOLON@69..70 ";" [] [],
        },
        JsExpressionStatement {
            expression: JsAssignmentExpression {
                left: JsArrayAssignmentPattern {
                    l_brack_token: L_BRACK@70..72 "[" [Newline("\n")] [],
                    elements: JsArrayAssignmentPatternElementList [
                        JsArrayAssignmentPatternElement {
                            pattern: JsParenthesizedAssignment {
                                l_paren_token: L_PAREN@72..73 "(" [] [],
                                assignment: JsParenthesizedAssignment {
                                    l_paren_token: L_PAREN@73..74 "(" [] [],
                                    assignment: JsIdentifierAssignment {
                                        name_token: IDENT@74..75 "a" [] [],
                                    },
                                    r_paren_token: R_PAREN@75..76 ")" [] [],
                                },
                                r_paren_token: R_PAREN@76..77 ")" [] [],
                            },
                            init: missing (optional),
                        },
                    ],
                    r_brack_token: R_BRACK@77..79 "]" [] [Whitespace(" ")],
                },
                operator_token: EQ@79..81 "=" [] [Whitespace(" ")],
                right: JsIdentifierExpression {
                    name: JsReferenceIdentifier {
                        value_token: IDENT@81..84 "baz" [] [],
                    },
                },
            },
            semicolon_token: SEMICOLON@84..85 ";" [] [],
        },
    ],
    eof_token: EOF@85..86 "" [Newline("\n")] [],
}

0: JS_MODULE@0..86
  0: (empty)
  1: (empty)
  2: JS_DIRECTIVE_LIST@0..0
  3: JS_MODULE_ITEM_LIST@0..85
    0: JS_EXPRESSION_STATEMENT@0..17
      0: JS_ASSIGNMENT_EXPRESSION@0..16
        0: JS_ARRAY_ASSIGNMENT_PATTERN@0..11
          0: L_BRACK@0..1 "[" [] []
          1: JS_ARRAY_ASSIGNMENT_PATTERN_ELEMENT_LIST@1..9
            0: JS_ARRAY_ASSIGNMENT_PATTERN_ELEMENT@1..4
              0: JS_IDENTIFIER_ASSIGNMENT@1..4
                0: IDENT@1..4 "foo" [] []
              1: (empty)
            1: COMMA@4..6 "," [] [Whitespace(" ")]
            2: JS_ARRAY_ASSIGNMENT_PATTERN_ELEMENT@6..9
              0: JS_IDENTIFIER_ASSIGNMENT@6..9
                0: IDENT@6..9 "bar" [] []
              1: (empty)
          2: R_BRACK@9..11 "]" [] [Whitespace(" ")]
        1: EQ@11..13 "=" [] [Whitespace(" ")]
        2: JS_IDENTIFIER_EXPRESSION@13..16
          0: JS_REFERENCE_IDENTIFIER@13..16
            0: IDENT@13..16 "baz" [] []
      1: SEMICOLON@16..17 ";" [] []
    1: JS_EXPRESSION_STATEMENT@17..35
      0: JS_ASSIGNMENT_EXPRESSION@17..34
        0: JS_ARRAY_ASSIGNMENT_PATTERN@17..29
          0: L_BRACK@17..19 "[" [Newline("\n")] []
          1: JS_ARRAY_ASSIGNMENT_PATTERN_ELEMENT_LIST@19..27
            0: JS_ARRAY_HOLE@19..19
            1: COMMA@19..20 "," [] []
            2: JS_ARRAY_HOLE@20..20
            3: COMMA@20..21 "," [] []
            4: JS_ARRAY_HOLE@21..21
            5: COMMA@21..22 "," [] []
            6: JS_ARRAY_ASSIGNMENT_PATTERN_ELEMENT@22..23
              0: JS_IDENTIFIER_ASSIGNMENT@22..23
                0: IDENT@22..23 "b" [] []
              1: (empty)
            7: COMMA@23..24 "," [] []
            8: JS_ARRAY_HOLE@24..24
            9: COMMA@24..25 "," [] []
            10: JS_ARRAY_ASSIGNMENT_PATTERN_ELEMENT@25..26
              0: JS_IDENTIFIER_ASSIGNMENT@25..26
                0: IDENT@25..26 "c" [] []
              1: (empty)
            11: COMMA@26..27 "," [] []
          2: R_BRACK@27..29 "]" [] [Whitespace(" ")]
        1: EQ@29..31 "=" [] [Whitespace(" ")]
        2: JS_IDENTIFIER_EXPRESSION@31..34
          0: JS_REFERENCE_IDENTIFIER@31..34
            0: IDENT@31..34 "baz" [] []
      1: SEMICOLON@34..35 ";" [] []
    2: JS_EXPRESSION_STATEMENT@35..70
      0: JS_ASSIGNMENT_EXPRESSION@35..69
        0: JS_ARRAY_ASSIGNMENT_PATTERN@35..64
          0: L_BRACK@35..37 "[" [Newline("\n")] []
          1: JS_ARRAY_ASSIGNMENT_PATTERN_ELEMENT_LIST@37..62
            0: JS_ARRAY_ASSIGNMENT_PATTERN_ELEMENT@37..47
              0: JS_IDENTIFIER_ASSIGNMENT@37..39
                0: IDENT@37..39 "a" [] [Whitespace(" ")]
              1: JS_INITIALIZER_CLAUSE@39..47
                0: EQ@39..41 "=" [] [Whitespace(" ")]
                1: JS_STRING_LITERAL_EXPRESSION@41..47
                  0: JS_STRING_LITERAL@41..47 "\"test\"" [] []
            1: COMMA@47..49 "," [] [Whitespace(" ")]
            2: JS_ARRAY_ASSIGNMENT_PATTERN_ELEMENT@49..52
              0: JS_STATIC_MEMBER_ASSIGNMENT@49..52
                0: JS_IDENTIFIER_EXPRESSION@49..50
                  0: JS_REFERENCE_IDENTIFIER@49..50
                    0: IDENT@49..50 "a" [] []
                1: DOT@50..51 "." [] []
                2: JS_NAME@51..52
                  0: IDENT@51..52 "b" [] []
              1: (empty)
            3: COMMA@52..54 "," [] [Whitespace(" ")]
            4: JS_ARRAY_ASSIGNMENT_PATTERN_ELEMENT@54..62
              0: JS_STATIC_MEMBER_ASSIGNMENT@54..62
                0: JS_CALL_EXPRESSION@54..60
                  0: JS_IDENTIFIER_EXPRESSION@54..58
                    0: JS_REFERENCE_IDENTIFIER@54..58
                      0: IDENT@54..58 "call" [] []
                  1: (empty)
                  2: (empty)
                  3: JS_CALL_ARGUMENTS@58..60
                    0: L_PAREN@58..59 "(" [] []
                    1: JS_CALL_ARGUMENT_LIST@59..59
                    2: R_PAREN@59..60 ")" [] []
                1: DOT@60..61 "." [] []
                2: JS_NAME@61..62
                  0: IDENT@61..62 "b" [] []
              1: (empty)
          2: R_BRACK@62..64 "]" [] [Whitespace(" ")]
        1: EQ@64..66 "=" [] [Whitespace(" ")]
        2: JS_IDENTIFIER_EXPRESSION@66..69
          0: JS_REFERENCE_IDENTIFIER@66..69
            0: IDENT@66..69 "baz" [] []
      1: SEMICOLON@69..70 ";" [] []
    3: JS_EXPRESSION_STATEMENT@70..85
      0: JS_ASSIGNMENT_EXPRESSION@70..84
        0: JS_ARRAY_ASSIGNMENT_PATTERN@70..79
          0: L_BRACK@70..72 "[" [Newline("\n")] []
          1: JS_ARRAY_ASSIGNMENT_PATTERN_ELEMENT_LIST@72..77
            0: JS_ARRAY_ASSIGNMENT_PATTERN_ELEMENT@72..77
              0: JS_PARENTHESIZED_ASSIGNMENT@72..77
                0: L_PAREN@72..73 "(" [] []
                1: JS_PARENTHESIZED_ASSIGNMENT@73..76
                  0: L_PAREN@73..74 "(" [] []
                  1: JS_IDENTIFIER_ASSIGNMENT@74..75
                    0: IDENT@74..75 "a" [] []
                  2: R_PAREN@75..76 ")" [] []
                2: R_PAREN@76..77 ")" [] []
              1: (empty)
          2: R_BRACK@77..79 "]" [] [Whitespace(" ")]
        1: EQ@79..81 "=" [] [Whitespace(" ")]
        2: JS_IDENTIFIER_EXPRESSION@81..84
          0: JS_REFERENCE_IDENTIFIER@81..84
            0: IDENT@81..84 "baz" [] []
      1: SEMICOLON@84..85 ";" [] []
  4: EOF@85..86 "" [Newline("\n")] []