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: JsNewExpression {
                new_token: NEW_KW@0..4 "new" [] [Whitespace(" ")],
                callee: JsIdentifierExpression {
                    name: JsReferenceIdentifier {
                        value_token: IDENT@4..7 "Foo" [] [],
                    },
                },
                type_arguments: missing (optional),
                arguments: JsCallArguments {
                    l_paren_token: L_PAREN@7..8 "(" [] [],
                    args: JsCallArgumentList [],
                    r_paren_token: R_PAREN@8..9 ")" [] [],
                },
            },
            semicolon_token: missing (optional),
        },
        JsExpressionStatement {
            expression: JsNewExpression {
                new_token: NEW_KW@9..14 "new" [Newline("\n")] [Whitespace(" ")],
                callee: JsIdentifierExpression {
                    name: JsReferenceIdentifier {
                        value_token: IDENT@14..17 "foo" [] [],
                    },
                },
                type_arguments: missing (optional),
                arguments: missing (optional),
            },
            semicolon_token: SEMICOLON@17..18 ";" [] [],
        },
        JsExpressionStatement {
            expression: JsNewTargetExpression {
                new_token: NEW_KW@18..22 "new" [Newline("\n")] [],
                dot_token: DOT@22..23 "." [] [],
                target_token: TARGET@23..29 "target" [] [],
            },
            semicolon_token: missing (optional),
        },
        JsExpressionStatement {
            expression: JsNewExpression {
                new_token: NEW_KW@29..34 "new" [Newline("\n")] [Whitespace(" ")],
                callee: JsNewExpression {
                    new_token: NEW_KW@34..38 "new" [] [Whitespace(" ")],
                    callee: JsNewExpression {
                        new_token: NEW_KW@38..42 "new" [] [Whitespace(" ")],
                        callee: JsNewExpression {
                            new_token: NEW_KW@42..46 "new" [] [Whitespace(" ")],
                            callee: JsIdentifierExpression {
                                name: JsReferenceIdentifier {
                                    value_token: IDENT@46..49 "Foo" [] [],
                                },
                            },
                            type_arguments: missing (optional),
                            arguments: JsCallArguments {
                                l_paren_token: L_PAREN@49..50 "(" [] [],
                                args: JsCallArgumentList [],
                                r_paren_token: R_PAREN@50..51 ")" [] [],
                            },
                        },
                        type_arguments: missing (optional),
                        arguments: missing (optional),
                    },
                    type_arguments: missing (optional),
                    arguments: missing (optional),
                },
                type_arguments: missing (optional),
                arguments: missing (optional),
            },
            semicolon_token: SEMICOLON@51..52 ";" [] [],
        },
        JsExpressionStatement {
            expression: JsNewExpression {
                new_token: NEW_KW@52..57 "new" [Newline("\n")] [Whitespace(" ")],
                callee: JsIdentifierExpression {
                    name: JsReferenceIdentifier {
                        value_token: IDENT@57..60 "Foo" [] [],
                    },
                },
                type_arguments: missing (optional),
                arguments: JsCallArguments {
                    l_paren_token: L_PAREN@60..61 "(" [] [],
                    args: JsCallArgumentList [
                        JsIdentifierExpression {
                            name: JsReferenceIdentifier {
                                value_token: IDENT@61..64 "bar" [] [],
                            },
                        },
                        COMMA@64..66 "," [] [Whitespace(" ")],
                        JsIdentifierExpression {
                            name: JsReferenceIdentifier {
                                value_token: IDENT@66..69 "baz" [] [],
                            },
                        },
                        COMMA@69..71 "," [] [Whitespace(" ")],
                        JsBinaryExpression {
                            left: JsNumberLiteralExpression {
                                value_token: JS_NUMBER_LITERAL@71..73 "6" [] [Whitespace(" ")],
                            },
                            operator_token: PLUS@73..75 "+" [] [Whitespace(" ")],
                            right: JsNumberLiteralExpression {
                                value_token: JS_NUMBER_LITERAL@75..76 "6" [] [],
                            },
                        },
                        COMMA@76..78 "," [] [Whitespace(" ")],
                        JsBinaryExpression {
                            left: JsComputedMemberExpression {
                                object: JsIdentifierExpression {
                                    name: JsReferenceIdentifier {
                                        value_token: IDENT@78..81 "foo" [] [],
                                    },
                                },
                                optional_chain_token: missing (optional),
                                l_brack_token: L_BRACK@81..82 "[" [] [],
                                member: JsIdentifierExpression {
                                    name: JsReferenceIdentifier {
                                        value_token: IDENT@82..85 "bar" [] [],
                                    },
                                },
                                r_brack_token: R_BRACK@85..87 "]" [] [Whitespace(" ")],
                            },
                            operator_token: PLUS@87..89 "+" [] [Whitespace(" ")],
                            right: JsBinaryExpression {
                                left: JsParenthesizedExpression {
                                    l_paren_token: L_PAREN@89..90 "(" [] [],
                                    expression: JsArrowFunctionExpression {
                                        async_token: missing (optional),
                                        type_parameters: missing (optional),
                                        parameters: JsParameters {
                                            l_paren_token: L_PAREN@90..91 "(" [] [],
                                            items: JsParameterList [
                                                JsFormalParameter {
                                                    decorators: JsDecoratorList [],
                                                    binding: JsIdentifierBinding {
                                                        name_token: IDENT@91..94 "foo" [] [],
                                                    },
                                                    question_mark_token: missing (optional),
                                                    type_annotation: missing (optional),
                                                    initializer: missing (optional),
                                                },
                                            ],
                                            r_paren_token: R_PAREN@94..96 ")" [] [Whitespace(" ")],
                                        },
                                        return_type_annotation: missing (optional),
                                        fat_arrow_token: FAT_ARROW@96..99 "=>" [] [Whitespace(" ")],
                                        body: JsFunctionBody {
                                            l_curly_token: L_CURLY@99..100 "{" [] [],
                                            directives: JsDirectiveList [],
                                            statements: JsStatementList [],
                                            r_curly_token: R_CURLY@100..101 "}" [] [],
                                        },
                                    },
                                    r_paren_token: R_PAREN@101..103 ")" [] [Whitespace(" ")],
                                },
                                operator_token: STAR@103..105 "*" [] [Whitespace(" ")],
                                right: JsStaticMemberExpression {
                                    object: JsIdentifierExpression {
                                        name: JsReferenceIdentifier {
                                            value_token: IDENT@105..108 "foo" [] [],
                                        },
                                    },
                                    operator_token: QUESTIONDOT@108..110 "?." [] [],
                                    member: JsName {
                                        value_token: IDENT@110..113 "bar" [] [],
                                    },
                                },
                            },
                        },
                    ],
                    r_paren_token: R_PAREN@113..114 ")" [] [],
                },
            },
            semicolon_token: missing (optional),
        },
    ],
    eof_token: EOF@114..115 "" [Newline("\n")] [],
}

0: JS_MODULE@0..115
  0: (empty)
  1: (empty)
  2: JS_DIRECTIVE_LIST@0..0
  3: JS_MODULE_ITEM_LIST@0..114
    0: JS_EXPRESSION_STATEMENT@0..9
      0: JS_NEW_EXPRESSION@0..9
        0: NEW_KW@0..4 "new" [] [Whitespace(" ")]
        1: JS_IDENTIFIER_EXPRESSION@4..7
          0: JS_REFERENCE_IDENTIFIER@4..7
            0: IDENT@4..7 "Foo" [] []
        2: (empty)
        3: JS_CALL_ARGUMENTS@7..9
          0: L_PAREN@7..8 "(" [] []
          1: JS_CALL_ARGUMENT_LIST@8..8
          2: R_PAREN@8..9 ")" [] []
      1: (empty)
    1: JS_EXPRESSION_STATEMENT@9..18
      0: JS_NEW_EXPRESSION@9..17
        0: NEW_KW@9..14 "new" [Newline("\n")] [Whitespace(" ")]
        1: JS_IDENTIFIER_EXPRESSION@14..17
          0: JS_REFERENCE_IDENTIFIER@14..17
            0: IDENT@14..17 "foo" [] []
        2: (empty)
        3: (empty)
      1: SEMICOLON@17..18 ";" [] []
    2: JS_EXPRESSION_STATEMENT@18..29
      0: JS_NEW_TARGET_EXPRESSION@18..29
        0: NEW_KW@18..22 "new" [Newline("\n")] []
        1: DOT@22..23 "." [] []
        2: TARGET@23..29 "target" [] []
      1: (empty)
    3: JS_EXPRESSION_STATEMENT@29..52
      0: JS_NEW_EXPRESSION@29..51
        0: NEW_KW@29..34 "new" [Newline("\n")] [Whitespace(" ")]
        1: JS_NEW_EXPRESSION@34..51
          0: NEW_KW@34..38 "new" [] [Whitespace(" ")]
          1: JS_NEW_EXPRESSION@38..51
            0: NEW_KW@38..42 "new" [] [Whitespace(" ")]
            1: JS_NEW_EXPRESSION@42..51
              0: NEW_KW@42..46 "new" [] [Whitespace(" ")]
              1: JS_IDENTIFIER_EXPRESSION@46..49
                0: JS_REFERENCE_IDENTIFIER@46..49
                  0: IDENT@46..49 "Foo" [] []
              2: (empty)
              3: JS_CALL_ARGUMENTS@49..51
                0: L_PAREN@49..50 "(" [] []
                1: JS_CALL_ARGUMENT_LIST@50..50
                2: R_PAREN@50..51 ")" [] []
            2: (empty)
            3: (empty)
          2: (empty)
          3: (empty)
        2: (empty)
        3: (empty)
      1: SEMICOLON@51..52 ";" [] []
    4: JS_EXPRESSION_STATEMENT@52..114
      0: JS_NEW_EXPRESSION@52..114
        0: NEW_KW@52..57 "new" [Newline("\n")] [Whitespace(" ")]
        1: JS_IDENTIFIER_EXPRESSION@57..60
          0: JS_REFERENCE_IDENTIFIER@57..60
            0: IDENT@57..60 "Foo" [] []
        2: (empty)
        3: JS_CALL_ARGUMENTS@60..114
          0: L_PAREN@60..61 "(" [] []
          1: JS_CALL_ARGUMENT_LIST@61..113
            0: JS_IDENTIFIER_EXPRESSION@61..64
              0: JS_REFERENCE_IDENTIFIER@61..64
                0: IDENT@61..64 "bar" [] []
            1: COMMA@64..66 "," [] [Whitespace(" ")]
            2: JS_IDENTIFIER_EXPRESSION@66..69
              0: JS_REFERENCE_IDENTIFIER@66..69
                0: IDENT@66..69 "baz" [] []
            3: COMMA@69..71 "," [] [Whitespace(" ")]
            4: JS_BINARY_EXPRESSION@71..76
              0: JS_NUMBER_LITERAL_EXPRESSION@71..73
                0: JS_NUMBER_LITERAL@71..73 "6" [] [Whitespace(" ")]
              1: PLUS@73..75 "+" [] [Whitespace(" ")]
              2: JS_NUMBER_LITERAL_EXPRESSION@75..76
                0: JS_NUMBER_LITERAL@75..76 "6" [] []
            5: COMMA@76..78 "," [] [Whitespace(" ")]
            6: JS_BINARY_EXPRESSION@78..113
              0: JS_COMPUTED_MEMBER_EXPRESSION@78..87
                0: JS_IDENTIFIER_EXPRESSION@78..81
                  0: JS_REFERENCE_IDENTIFIER@78..81
                    0: IDENT@78..81 "foo" [] []
                1: (empty)
                2: L_BRACK@81..82 "[" [] []
                3: JS_IDENTIFIER_EXPRESSION@82..85
                  0: JS_REFERENCE_IDENTIFIER@82..85
                    0: IDENT@82..85 "bar" [] []
                4: R_BRACK@85..87 "]" [] [Whitespace(" ")]
              1: PLUS@87..89 "+" [] [Whitespace(" ")]
              2: JS_BINARY_EXPRESSION@89..113
                0: JS_PARENTHESIZED_EXPRESSION@89..103
                  0: L_PAREN@89..90 "(" [] []
                  1: JS_ARROW_FUNCTION_EXPRESSION@90..101
                    0: (empty)
                    1: (empty)
                    2: JS_PARAMETERS@90..96
                      0: L_PAREN@90..91 "(" [] []
                      1: JS_PARAMETER_LIST@91..94
                        0: JS_FORMAL_PARAMETER@91..94
                          0: JS_DECORATOR_LIST@91..91
                          1: JS_IDENTIFIER_BINDING@91..94
                            0: IDENT@91..94 "foo" [] []
                          2: (empty)
                          3: (empty)
                          4: (empty)
                      2: R_PAREN@94..96 ")" [] [Whitespace(" ")]
                    3: (empty)
                    4: FAT_ARROW@96..99 "=>" [] [Whitespace(" ")]
                    5: JS_FUNCTION_BODY@99..101
                      0: L_CURLY@99..100 "{" [] []
                      1: JS_DIRECTIVE_LIST@100..100
                      2: JS_STATEMENT_LIST@100..100
                      3: R_CURLY@100..101 "}" [] []
                  2: R_PAREN@101..103 ")" [] [Whitespace(" ")]
                1: STAR@103..105 "*" [] [Whitespace(" ")]
                2: JS_STATIC_MEMBER_EXPRESSION@105..113
                  0: JS_IDENTIFIER_EXPRESSION@105..108
                    0: JS_REFERENCE_IDENTIFIER@105..108
                      0: IDENT@105..108 "foo" [] []
                  1: QUESTIONDOT@108..110 "?." [] []
                  2: JS_NAME@110..113
                    0: IDENT@110..113 "bar" [] []
          2: R_PAREN@113..114 ")" [] []
      1: (empty)
  4: EOF@114..115 "" [Newline("\n")] []