biome_js_parser 0.5.7

Biome's JavaScript parser
Documentation
JsModule {
    bom_token: missing (optional),
    interpreter_token: missing (optional),
    directives: JsDirectiveList [],
    items: JsModuleItemList [
        JsFunctionDeclaration {
            async_token: ASYNC_KW@0..6 "async" [] [Whitespace(" ")],
            function_token: FUNCTION_KW@6..15 "function" [] [Whitespace(" ")],
            star_token: missing (optional),
            id: JsIdentifierBinding {
                name_token: IDENT@15..19 "test" [] [],
            },
            type_parameters: missing (optional),
            parameters: JsParameters {
                l_paren_token: L_PAREN@19..20 "(" [] [],
                items: JsParameterList [],
                r_paren_token: R_PAREN@20..22 ")" [] [Whitespace(" ")],
            },
            return_type_annotation: missing (optional),
            body: JsFunctionBody {
                l_curly_token: L_CURLY@22..23 "{" [] [],
                directives: JsDirectiveList [],
                statements: JsStatementList [
                    JsExpressionStatement {
                        expression: JsAwaitExpression {
                            await_token: AWAIT_KW@23..32 "await" [Newline("\n"), Whitespace("  ")] [Whitespace(" ")],
                            argument: JsCallExpression {
                                callee: JsIdentifierExpression {
                                    name: JsReferenceIdentifier {
                                        value_token: IDENT@32..37 "inner" [] [],
                                    },
                                },
                                optional_chain_token: missing (optional),
                                type_arguments: missing (optional),
                                arguments: JsCallArguments {
                                    l_paren_token: L_PAREN@37..38 "(" [] [],
                                    args: JsCallArgumentList [],
                                    r_paren_token: R_PAREN@38..39 ")" [] [],
                                },
                            },
                        },
                        semicolon_token: SEMICOLON@39..40 ";" [] [],
                    },
                    JsExpressionStatement {
                        expression: JsBinaryExpression {
                            left: JsAwaitExpression {
                                await_token: AWAIT_KW@40..49 "await" [Newline("\n"), Whitespace("  ")] [Whitespace(" ")],
                                argument: JsParenthesizedExpression {
                                    l_paren_token: L_PAREN@49..50 "(" [] [],
                                    expression: JsCallExpression {
                                        callee: JsIdentifierExpression {
                                            name: JsReferenceIdentifier {
                                                value_token: IDENT@50..55 "inner" [] [],
                                            },
                                        },
                                        optional_chain_token: missing (optional),
                                        type_arguments: missing (optional),
                                        arguments: JsCallArguments {
                                            l_paren_token: L_PAREN@55..56 "(" [] [],
                                            args: JsCallArgumentList [],
                                            r_paren_token: R_PAREN@56..57 ")" [] [],
                                        },
                                    },
                                    r_paren_token: R_PAREN@57..59 ")" [] [Whitespace(" ")],
                                },
                            },
                            operator_token: PLUS@59..61 "+" [] [Whitespace(" ")],
                            right: JsAwaitExpression {
                                await_token: AWAIT_KW@61..67 "await" [] [Whitespace(" ")],
                                argument: JsCallExpression {
                                    callee: JsIdentifierExpression {
                                        name: JsReferenceIdentifier {
                                            value_token: IDENT@67..72 "inner" [] [],
                                        },
                                    },
                                    optional_chain_token: missing (optional),
                                    type_arguments: missing (optional),
                                    arguments: JsCallArguments {
                                        l_paren_token: L_PAREN@72..73 "(" [] [],
                                        args: JsCallArgumentList [],
                                        r_paren_token: R_PAREN@73..74 ")" [] [],
                                    },
                                },
                            },
                        },
                        semicolon_token: SEMICOLON@74..75 ";" [] [],
                    },
                ],
                r_curly_token: R_CURLY@75..77 "}" [Newline("\n")] [],
            },
        },
        JsFunctionDeclaration {
            async_token: ASYNC_KW@77..84 "async" [Newline("\n")] [Whitespace(" ")],
            function_token: FUNCTION_KW@84..93 "function" [] [Whitespace(" ")],
            star_token: missing (optional),
            id: JsIdentifierBinding {
                name_token: IDENT@93..98 "inner" [] [],
            },
            type_parameters: missing (optional),
            parameters: JsParameters {
                l_paren_token: L_PAREN@98..99 "(" [] [],
                items: JsParameterList [],
                r_paren_token: R_PAREN@99..101 ")" [] [Whitespace(" ")],
            },
            return_type_annotation: missing (optional),
            body: JsFunctionBody {
                l_curly_token: L_CURLY@101..102 "{" [] [],
                directives: JsDirectiveList [],
                statements: JsStatementList [
                    JsReturnStatement {
                        return_token: RETURN_KW@102..112 "return" [Newline("\n"), Whitespace("  ")] [Whitespace(" ")],
                        argument: JsNumberLiteralExpression {
                            value_token: JS_NUMBER_LITERAL@112..113 "4" [] [],
                        },
                        semicolon_token: SEMICOLON@113..114 ";" [] [],
                    },
                ],
                r_curly_token: R_CURLY@114..116 "}" [Newline("\n")] [],
            },
        },
        JsExpressionStatement {
            expression: JsAwaitExpression {
                await_token: AWAIT_KW@116..123 "await" [Newline("\n")] [Whitespace(" ")],
                argument: JsCallExpression {
                    callee: JsIdentifierExpression {
                        name: JsReferenceIdentifier {
                            value_token: IDENT@123..127 "test" [] [],
                        },
                    },
                    optional_chain_token: missing (optional),
                    type_arguments: missing (optional),
                    arguments: JsCallArguments {
                        l_paren_token: L_PAREN@127..128 "(" [] [],
                        args: JsCallArgumentList [],
                        r_paren_token: R_PAREN@128..129 ")" [] [],
                    },
                },
            },
            semicolon_token: SEMICOLON@129..130 ";" [] [],
        },
    ],
    eof_token: EOF@130..131 "" [Newline("\n")] [],
}

0: JS_MODULE@0..131
  0: (empty)
  1: (empty)
  2: JS_DIRECTIVE_LIST@0..0
  3: JS_MODULE_ITEM_LIST@0..130
    0: JS_FUNCTION_DECLARATION@0..77
      0: ASYNC_KW@0..6 "async" [] [Whitespace(" ")]
      1: FUNCTION_KW@6..15 "function" [] [Whitespace(" ")]
      2: (empty)
      3: JS_IDENTIFIER_BINDING@15..19
        0: IDENT@15..19 "test" [] []
      4: (empty)
      5: JS_PARAMETERS@19..22
        0: L_PAREN@19..20 "(" [] []
        1: JS_PARAMETER_LIST@20..20
        2: R_PAREN@20..22 ")" [] [Whitespace(" ")]
      6: (empty)
      7: JS_FUNCTION_BODY@22..77
        0: L_CURLY@22..23 "{" [] []
        1: JS_DIRECTIVE_LIST@23..23
        2: JS_STATEMENT_LIST@23..75
          0: JS_EXPRESSION_STATEMENT@23..40
            0: JS_AWAIT_EXPRESSION@23..39
              0: AWAIT_KW@23..32 "await" [Newline("\n"), Whitespace("  ")] [Whitespace(" ")]
              1: JS_CALL_EXPRESSION@32..39
                0: JS_IDENTIFIER_EXPRESSION@32..37
                  0: JS_REFERENCE_IDENTIFIER@32..37
                    0: IDENT@32..37 "inner" [] []
                1: (empty)
                2: (empty)
                3: JS_CALL_ARGUMENTS@37..39
                  0: L_PAREN@37..38 "(" [] []
                  1: JS_CALL_ARGUMENT_LIST@38..38
                  2: R_PAREN@38..39 ")" [] []
            1: SEMICOLON@39..40 ";" [] []
          1: JS_EXPRESSION_STATEMENT@40..75
            0: JS_BINARY_EXPRESSION@40..74
              0: JS_AWAIT_EXPRESSION@40..59
                0: AWAIT_KW@40..49 "await" [Newline("\n"), Whitespace("  ")] [Whitespace(" ")]
                1: JS_PARENTHESIZED_EXPRESSION@49..59
                  0: L_PAREN@49..50 "(" [] []
                  1: JS_CALL_EXPRESSION@50..57
                    0: JS_IDENTIFIER_EXPRESSION@50..55
                      0: JS_REFERENCE_IDENTIFIER@50..55
                        0: IDENT@50..55 "inner" [] []
                    1: (empty)
                    2: (empty)
                    3: JS_CALL_ARGUMENTS@55..57
                      0: L_PAREN@55..56 "(" [] []
                      1: JS_CALL_ARGUMENT_LIST@56..56
                      2: R_PAREN@56..57 ")" [] []
                  2: R_PAREN@57..59 ")" [] [Whitespace(" ")]
              1: PLUS@59..61 "+" [] [Whitespace(" ")]
              2: JS_AWAIT_EXPRESSION@61..74
                0: AWAIT_KW@61..67 "await" [] [Whitespace(" ")]
                1: JS_CALL_EXPRESSION@67..74
                  0: JS_IDENTIFIER_EXPRESSION@67..72
                    0: JS_REFERENCE_IDENTIFIER@67..72
                      0: IDENT@67..72 "inner" [] []
                  1: (empty)
                  2: (empty)
                  3: JS_CALL_ARGUMENTS@72..74
                    0: L_PAREN@72..73 "(" [] []
                    1: JS_CALL_ARGUMENT_LIST@73..73
                    2: R_PAREN@73..74 ")" [] []
            1: SEMICOLON@74..75 ";" [] []
        3: R_CURLY@75..77 "}" [Newline("\n")] []
    1: JS_FUNCTION_DECLARATION@77..116
      0: ASYNC_KW@77..84 "async" [Newline("\n")] [Whitespace(" ")]
      1: FUNCTION_KW@84..93 "function" [] [Whitespace(" ")]
      2: (empty)
      3: JS_IDENTIFIER_BINDING@93..98
        0: IDENT@93..98 "inner" [] []
      4: (empty)
      5: JS_PARAMETERS@98..101
        0: L_PAREN@98..99 "(" [] []
        1: JS_PARAMETER_LIST@99..99
        2: R_PAREN@99..101 ")" [] [Whitespace(" ")]
      6: (empty)
      7: JS_FUNCTION_BODY@101..116
        0: L_CURLY@101..102 "{" [] []
        1: JS_DIRECTIVE_LIST@102..102
        2: JS_STATEMENT_LIST@102..114
          0: JS_RETURN_STATEMENT@102..114
            0: RETURN_KW@102..112 "return" [Newline("\n"), Whitespace("  ")] [Whitespace(" ")]
            1: JS_NUMBER_LITERAL_EXPRESSION@112..113
              0: JS_NUMBER_LITERAL@112..113 "4" [] []
            2: SEMICOLON@113..114 ";" [] []
        3: R_CURLY@114..116 "}" [Newline("\n")] []
    2: JS_EXPRESSION_STATEMENT@116..130
      0: JS_AWAIT_EXPRESSION@116..129
        0: AWAIT_KW@116..123 "await" [Newline("\n")] [Whitespace(" ")]
        1: JS_CALL_EXPRESSION@123..129
          0: JS_IDENTIFIER_EXPRESSION@123..127
            0: JS_REFERENCE_IDENTIFIER@123..127
              0: IDENT@123..127 "test" [] []
          1: (empty)
          2: (empty)
          3: JS_CALL_ARGUMENTS@127..129
            0: L_PAREN@127..128 "(" [] []
            1: JS_CALL_ARGUMENT_LIST@128..128
            2: R_PAREN@128..129 ")" [] []
      1: SEMICOLON@129..130 ";" [] []
  4: EOF@130..131 "" [Newline("\n")] []