biome_js_parser 0.5.7

Biome's JavaScript parser
Documentation
JsModule {
    bom_token: missing (optional),
    interpreter_token: missing (optional),
    directives: JsDirectiveList [],
    items: JsModuleItemList [
        JsClassDeclaration {
            decorators: JsDecoratorList [],
            abstract_token: missing (optional),
            class_token: CLASS_KW@0..6 "class" [] [Whitespace(" ")],
            id: JsIdentifierBinding {
                name_token: IDENT@6..10 "Foo" [] [Whitespace(" ")],
            },
            type_parameters: missing (optional),
            extends_clause: missing (optional),
            implements_clause: missing (optional),
            l_curly_token: L_CURLY@10..11 "{" [] [],
            members: JsClassMemberList [
                JsConstructorClassMember {
                    modifiers: JsConstructorModifierList [],
                    name: JsLiteralMemberName {
                        value: IDENT@11..25 "constructor" [Newline("\n"), Whitespace("  ")] [],
                    },
                    parameters: JsConstructorParameters {
                        l_paren_token: L_PAREN@25..26 "(" [] [],
                        parameters: JsConstructorParameterList [
                            JsFormalParameter {
                                decorators: JsDecoratorList [],
                                binding: JsIdentifierBinding {
                                    name_token: IDENT@26..27 "a" [] [],
                                },
                                question_mark_token: missing (optional),
                                type_annotation: missing (optional),
                                initializer: missing (optional),
                            },
                        ],
                        r_paren_token: R_PAREN@27..29 ")" [] [Whitespace(" ")],
                    },
                    body: JsFunctionBody {
                        l_curly_token: L_CURLY@29..30 "{" [] [],
                        directives: JsDirectiveList [],
                        statements: JsStatementList [
                            JsExpressionStatement {
                                expression: JsAssignmentExpression {
                                    left: JsStaticMemberAssignment {
                                        object: JsThisExpression {
                                            this_token: THIS_KW@30..39 "this" [Newline("\n"), Whitespace("    ")] [],
                                        },
                                        dot_token: DOT@39..40 "." [] [],
                                        member: JsName {
                                            value_token: IDENT@40..42 "a" [] [Whitespace(" ")],
                                        },
                                    },
                                    operator_token: EQ@42..44 "=" [] [Whitespace(" ")],
                                    right: JsIdentifierExpression {
                                        name: JsReferenceIdentifier {
                                            value_token: IDENT@44..45 "a" [] [],
                                        },
                                    },
                                },
                                semicolon_token: SEMICOLON@45..46 ";" [] [],
                            },
                        ],
                        r_curly_token: R_CURLY@46..50 "}" [Newline("\n"), Whitespace("  ")] [],
                    },
                },
            ],
            r_curly_token: R_CURLY@50..52 "}" [Newline("\n")] [],
        },
        JsClassDeclaration {
            decorators: JsDecoratorList [],
            abstract_token: missing (optional),
            class_token: CLASS_KW@52..59 "class" [Newline("\n")] [Whitespace(" ")],
            id: JsIdentifierBinding {
                name_token: IDENT@59..63 "Bar" [] [Whitespace(" ")],
            },
            type_parameters: missing (optional),
            extends_clause: missing (optional),
            implements_clause: missing (optional),
            l_curly_token: L_CURLY@63..64 "{" [] [],
            members: JsClassMemberList [
                JsConstructorClassMember {
                    modifiers: JsConstructorModifierList [],
                    name: JsLiteralMemberName {
                        value: JS_STRING_LITERAL@64..80 "\"constructor\"" [Newline("\n"), Whitespace("  ")] [],
                    },
                    parameters: JsConstructorParameters {
                        l_paren_token: L_PAREN@80..81 "(" [] [],
                        parameters: JsConstructorParameterList [
                            JsFormalParameter {
                                decorators: JsDecoratorList [],
                                binding: JsIdentifierBinding {
                                    name_token: IDENT@81..82 "b" [] [],
                                },
                                question_mark_token: missing (optional),
                                type_annotation: missing (optional),
                                initializer: missing (optional),
                            },
                        ],
                        r_paren_token: R_PAREN@82..84 ")" [] [Whitespace(" ")],
                    },
                    body: JsFunctionBody {
                        l_curly_token: L_CURLY@84..85 "{" [] [],
                        directives: JsDirectiveList [],
                        statements: JsStatementList [
                            JsExpressionStatement {
                                expression: JsAssignmentExpression {
                                    left: JsStaticMemberAssignment {
                                        object: JsThisExpression {
                                            this_token: THIS_KW@85..94 "this" [Newline("\n"), Whitespace("    ")] [],
                                        },
                                        dot_token: DOT@94..95 "." [] [],
                                        member: JsName {
                                            value_token: IDENT@95..97 "b" [] [Whitespace(" ")],
                                        },
                                    },
                                    operator_token: EQ@97..99 "=" [] [Whitespace(" ")],
                                    right: JsIdentifierExpression {
                                        name: JsReferenceIdentifier {
                                            value_token: IDENT@99..100 "b" [] [],
                                        },
                                    },
                                },
                                semicolon_token: SEMICOLON@100..101 ";" [] [],
                            },
                        ],
                        r_curly_token: R_CURLY@101..105 "}" [Newline("\n"), Whitespace("  ")] [],
                    },
                },
            ],
            r_curly_token: R_CURLY@105..107 "}" [Newline("\n")] [],
        },
    ],
    eof_token: EOF@107..108 "" [Newline("\n")] [],
}

0: JS_MODULE@0..108
  0: (empty)
  1: (empty)
  2: JS_DIRECTIVE_LIST@0..0
  3: JS_MODULE_ITEM_LIST@0..107
    0: JS_CLASS_DECLARATION@0..52
      0: JS_DECORATOR_LIST@0..0
      1: (empty)
      2: CLASS_KW@0..6 "class" [] [Whitespace(" ")]
      3: JS_IDENTIFIER_BINDING@6..10
        0: IDENT@6..10 "Foo" [] [Whitespace(" ")]
      4: (empty)
      5: (empty)
      6: (empty)
      7: L_CURLY@10..11 "{" [] []
      8: JS_CLASS_MEMBER_LIST@11..50
        0: JS_CONSTRUCTOR_CLASS_MEMBER@11..50
          0: JS_CONSTRUCTOR_MODIFIER_LIST@11..11
          1: JS_LITERAL_MEMBER_NAME@11..25
            0: IDENT@11..25 "constructor" [Newline("\n"), Whitespace("  ")] []
          2: JS_CONSTRUCTOR_PARAMETERS@25..29
            0: L_PAREN@25..26 "(" [] []
            1: JS_CONSTRUCTOR_PARAMETER_LIST@26..27
              0: JS_FORMAL_PARAMETER@26..27
                0: JS_DECORATOR_LIST@26..26
                1: JS_IDENTIFIER_BINDING@26..27
                  0: IDENT@26..27 "a" [] []
                2: (empty)
                3: (empty)
                4: (empty)
            2: R_PAREN@27..29 ")" [] [Whitespace(" ")]
          3: JS_FUNCTION_BODY@29..50
            0: L_CURLY@29..30 "{" [] []
            1: JS_DIRECTIVE_LIST@30..30
            2: JS_STATEMENT_LIST@30..46
              0: JS_EXPRESSION_STATEMENT@30..46
                0: JS_ASSIGNMENT_EXPRESSION@30..45
                  0: JS_STATIC_MEMBER_ASSIGNMENT@30..42
                    0: JS_THIS_EXPRESSION@30..39
                      0: THIS_KW@30..39 "this" [Newline("\n"), Whitespace("    ")] []
                    1: DOT@39..40 "." [] []
                    2: JS_NAME@40..42
                      0: IDENT@40..42 "a" [] [Whitespace(" ")]
                  1: EQ@42..44 "=" [] [Whitespace(" ")]
                  2: JS_IDENTIFIER_EXPRESSION@44..45
                    0: JS_REFERENCE_IDENTIFIER@44..45
                      0: IDENT@44..45 "a" [] []
                1: SEMICOLON@45..46 ";" [] []
            3: R_CURLY@46..50 "}" [Newline("\n"), Whitespace("  ")] []
      9: R_CURLY@50..52 "}" [Newline("\n")] []
    1: JS_CLASS_DECLARATION@52..107
      0: JS_DECORATOR_LIST@52..52
      1: (empty)
      2: CLASS_KW@52..59 "class" [Newline("\n")] [Whitespace(" ")]
      3: JS_IDENTIFIER_BINDING@59..63
        0: IDENT@59..63 "Bar" [] [Whitespace(" ")]
      4: (empty)
      5: (empty)
      6: (empty)
      7: L_CURLY@63..64 "{" [] []
      8: JS_CLASS_MEMBER_LIST@64..105
        0: JS_CONSTRUCTOR_CLASS_MEMBER@64..105
          0: JS_CONSTRUCTOR_MODIFIER_LIST@64..64
          1: JS_LITERAL_MEMBER_NAME@64..80
            0: JS_STRING_LITERAL@64..80 "\"constructor\"" [Newline("\n"), Whitespace("  ")] []
          2: JS_CONSTRUCTOR_PARAMETERS@80..84
            0: L_PAREN@80..81 "(" [] []
            1: JS_CONSTRUCTOR_PARAMETER_LIST@81..82
              0: JS_FORMAL_PARAMETER@81..82
                0: JS_DECORATOR_LIST@81..81
                1: JS_IDENTIFIER_BINDING@81..82
                  0: IDENT@81..82 "b" [] []
                2: (empty)
                3: (empty)
                4: (empty)
            2: R_PAREN@82..84 ")" [] [Whitespace(" ")]
          3: JS_FUNCTION_BODY@84..105
            0: L_CURLY@84..85 "{" [] []
            1: JS_DIRECTIVE_LIST@85..85
            2: JS_STATEMENT_LIST@85..101
              0: JS_EXPRESSION_STATEMENT@85..101
                0: JS_ASSIGNMENT_EXPRESSION@85..100
                  0: JS_STATIC_MEMBER_ASSIGNMENT@85..97
                    0: JS_THIS_EXPRESSION@85..94
                      0: THIS_KW@85..94 "this" [Newline("\n"), Whitespace("    ")] []
                    1: DOT@94..95 "." [] []
                    2: JS_NAME@95..97
                      0: IDENT@95..97 "b" [] [Whitespace(" ")]
                  1: EQ@97..99 "=" [] [Whitespace(" ")]
                  2: JS_IDENTIFIER_EXPRESSION@99..100
                    0: JS_REFERENCE_IDENTIFIER@99..100
                      0: IDENT@99..100 "b" [] []
                1: SEMICOLON@100..101 ";" [] []
            3: R_CURLY@101..105 "}" [Newline("\n"), Whitespace("  ")] []
      9: R_CURLY@105..107 "}" [Newline("\n")] []
  4: EOF@107..108 "" [Newline("\n")] []