biome_js_parser 0.5.7

Biome's JavaScript parser
Documentation
JsModule {
    bom_token: missing (optional),
    interpreter_token: missing (optional),
    directives: JsDirectiveList [],
    items: JsModuleItemList [
        JsDoWhileStatement {
            do_token: DO_KW@0..3 "do" [] [Whitespace(" ")],
            body: JsBlockStatement {
                l_curly_token: L_CURLY@3..5 "{" [] [Whitespace(" ")],
                statements: JsStatementList [],
                r_curly_token: R_CURLY@5..7 "}" [] [Whitespace(" ")],
            },
            while_token: WHILE_KW@7..13 "while" [] [Whitespace(" ")],
            l_paren_token: L_PAREN@13..14 "(" [] [],
            test: JsBooleanLiteralExpression {
                value_token: TRUE_KW@14..18 "true" [] [],
            },
            r_paren_token: R_PAREN@18..19 ")" [] [],
            semicolon_token: missing (optional),
        },
        JsDoWhileStatement {
            do_token: DO_KW@19..23 "do" [Newline("\n")] [Whitespace(" ")],
            body: JsBlockStatement {
                l_curly_token: L_CURLY@23..25 "{" [] [Whitespace(" ")],
                statements: JsStatementList [
                    JsThrowStatement {
                        throw_token: THROW_KW@25..31 "throw" [] [Whitespace(" ")],
                        argument: JsCallExpression {
                            callee: JsIdentifierExpression {
                                name: JsReferenceIdentifier {
                                    value_token: IDENT@31..36 "Error" [] [],
                                },
                            },
                            optional_chain_token: missing (optional),
                            type_arguments: missing (optional),
                            arguments: JsCallArguments {
                                l_paren_token: L_PAREN@36..37 "(" [] [],
                                args: JsCallArgumentList [
                                    JsStringLiteralExpression {
                                        value_token: JS_STRING_LITERAL@37..42 "\"foo\"" [] [],
                                    },
                                ],
                                r_paren_token: R_PAREN@42..44 ")" [] [Whitespace(" ")],
                            },
                        },
                        semicolon_token: missing (optional),
                    },
                ],
                r_curly_token: R_CURLY@44..46 "}" [] [Whitespace(" ")],
            },
            while_token: WHILE_KW@46..52 "while" [] [Whitespace(" ")],
            l_paren_token: L_PAREN@52..53 "(" [] [],
            test: JsBooleanLiteralExpression {
                value_token: TRUE_KW@53..57 "true" [] [],
            },
            r_paren_token: R_PAREN@57..58 ")" [] [],
            semicolon_token: missing (optional),
        },
        JsDoWhileStatement {
            do_token: DO_KW@58..62 "do" [Newline("\n")] [Whitespace(" ")],
            body: JsBlockStatement {
                l_curly_token: L_CURLY@62..64 "{" [] [Whitespace(" ")],
                statements: JsStatementList [
                    JsBreakStatement {
                        break_token: BREAK_KW@64..69 "break" [] [],
                        label: missing (optional),
                        semicolon_token: SEMICOLON@69..71 ";" [] [Whitespace(" ")],
                    },
                ],
                r_curly_token: R_CURLY@71..73 "}" [] [Whitespace(" ")],
            },
            while_token: WHILE_KW@73..79 "while" [] [Whitespace(" ")],
            l_paren_token: L_PAREN@79..80 "(" [] [],
            test: JsBooleanLiteralExpression {
                value_token: TRUE_KW@80..84 "true" [] [],
            },
            r_paren_token: R_PAREN@84..85 ")" [] [],
            semicolon_token: missing (optional),
        },
    ],
    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_DO_WHILE_STATEMENT@0..19
      0: DO_KW@0..3 "do" [] [Whitespace(" ")]
      1: JS_BLOCK_STATEMENT@3..7
        0: L_CURLY@3..5 "{" [] [Whitespace(" ")]
        1: JS_STATEMENT_LIST@5..5
        2: R_CURLY@5..7 "}" [] [Whitespace(" ")]
      2: WHILE_KW@7..13 "while" [] [Whitespace(" ")]
      3: L_PAREN@13..14 "(" [] []
      4: JS_BOOLEAN_LITERAL_EXPRESSION@14..18
        0: TRUE_KW@14..18 "true" [] []
      5: R_PAREN@18..19 ")" [] []
      6: (empty)
    1: JS_DO_WHILE_STATEMENT@19..58
      0: DO_KW@19..23 "do" [Newline("\n")] [Whitespace(" ")]
      1: JS_BLOCK_STATEMENT@23..46
        0: L_CURLY@23..25 "{" [] [Whitespace(" ")]
        1: JS_STATEMENT_LIST@25..44
          0: JS_THROW_STATEMENT@25..44
            0: THROW_KW@25..31 "throw" [] [Whitespace(" ")]
            1: JS_CALL_EXPRESSION@31..44
              0: JS_IDENTIFIER_EXPRESSION@31..36
                0: JS_REFERENCE_IDENTIFIER@31..36
                  0: IDENT@31..36 "Error" [] []
              1: (empty)
              2: (empty)
              3: JS_CALL_ARGUMENTS@36..44
                0: L_PAREN@36..37 "(" [] []
                1: JS_CALL_ARGUMENT_LIST@37..42
                  0: JS_STRING_LITERAL_EXPRESSION@37..42
                    0: JS_STRING_LITERAL@37..42 "\"foo\"" [] []
                2: R_PAREN@42..44 ")" [] [Whitespace(" ")]
            2: (empty)
        2: R_CURLY@44..46 "}" [] [Whitespace(" ")]
      2: WHILE_KW@46..52 "while" [] [Whitespace(" ")]
      3: L_PAREN@52..53 "(" [] []
      4: JS_BOOLEAN_LITERAL_EXPRESSION@53..57
        0: TRUE_KW@53..57 "true" [] []
      5: R_PAREN@57..58 ")" [] []
      6: (empty)
    2: JS_DO_WHILE_STATEMENT@58..85
      0: DO_KW@58..62 "do" [Newline("\n")] [Whitespace(" ")]
      1: JS_BLOCK_STATEMENT@62..73
        0: L_CURLY@62..64 "{" [] [Whitespace(" ")]
        1: JS_STATEMENT_LIST@64..71
          0: JS_BREAK_STATEMENT@64..71
            0: BREAK_KW@64..69 "break" [] []
            1: (empty)
            2: SEMICOLON@69..71 ";" [] [Whitespace(" ")]
        2: R_CURLY@71..73 "}" [] [Whitespace(" ")]
      2: WHILE_KW@73..79 "while" [] [Whitespace(" ")]
      3: L_PAREN@79..80 "(" [] []
      4: JS_BOOLEAN_LITERAL_EXPRESSION@80..84
        0: TRUE_KW@80..84 "true" [] []
      5: R_PAREN@84..85 ")" [] []
      6: (empty)
  4: EOF@85..86 "" [Newline("\n")] []