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: JsxTagExpression {
                tag: JsxElement {
                    opening_element: JsxOpeningElement {
                        l_angle_token: L_ANGLE@0..1 "<" [] [],
                        name: JsxName {
                            value_token: JSX_IDENT@1..2 "a" [] [],
                        },
                        type_arguments: missing (optional),
                        attributes: JsxAttributeList [],
                        r_angle_token: R_ANGLE@2..3 ">" [] [],
                    },
                    children: JsxChildList [
                        JsxText {
                            value_token: JSX_TEXT_LITERAL@3..7 "test" [] [],
                        },
                    ],
                    closing_element: JsxClosingElement {
                        l_angle_token: L_ANGLE@7..8 "<" [] [],
                        slash_token: SLASH@8..9 "/" [] [],
                        name: JsxName {
                            value_token: JSX_IDENT@9..10 "a" [] [],
                        },
                        r_angle_token: R_ANGLE@10..11 ">" [] [],
                    },
                },
            },
            semicolon_token: SEMICOLON@11..12 ";" [] [],
        },
        JsExpressionStatement {
            expression: JsxTagExpression {
                tag: JsxElement {
                    opening_element: JsxOpeningElement {
                        l_angle_token: L_ANGLE@12..14 "<" [Newline("\n")] [],
                        name: JsxName {
                            value_token: JSX_IDENT@14..15 "a" [] [],
                        },
                        type_arguments: missing (optional),
                        attributes: JsxAttributeList [],
                        r_angle_token: R_ANGLE@15..16 ">" [] [],
                    },
                    children: JsxChildList [
                        JsxText {
                            value_token: JSX_TEXT_LITERAL@16..39 "   whitespace handling " [] [],
                        },
                    ],
                    closing_element: JsxClosingElement {
                        l_angle_token: L_ANGLE@39..40 "<" [] [],
                        slash_token: SLASH@40..41 "/" [] [],
                        name: JsxName {
                            value_token: JSX_IDENT@41..42 "a" [] [],
                        },
                        r_angle_token: R_ANGLE@42..43 ">" [] [],
                    },
                },
            },
            semicolon_token: SEMICOLON@43..44 ";" [] [],
        },
        JsExpressionStatement {
            expression: JsxTagExpression {
                tag: JsxElement {
                    opening_element: JsxOpeningElement {
                        l_angle_token: L_ANGLE@44..46 "<" [Newline("\n")] [],
                        name: JsxName {
                            value_token: JSX_IDENT@46..47 "a" [] [],
                        },
                        type_arguments: missing (optional),
                        attributes: JsxAttributeList [],
                        r_angle_token: R_ANGLE@47..48 ">" [] [],
                    },
                    children: JsxChildList [
                        JsxText {
                            value_token: JSX_TEXT_LITERAL@48..77 " multi\n   line\n         node\n" [] [],
                        },
                    ],
                    closing_element: JsxClosingElement {
                        l_angle_token: L_ANGLE@77..78 "<" [] [],
                        slash_token: SLASH@78..79 "/" [] [],
                        name: JsxName {
                            value_token: JSX_IDENT@79..80 "a" [] [],
                        },
                        r_angle_token: R_ANGLE@80..81 ">" [] [],
                    },
                },
            },
            semicolon_token: SEMICOLON@81..82 ";" [] [],
        },
        JsExpressionStatement {
            expression: JsxTagExpression {
                tag: JsxElement {
                    opening_element: JsxOpeningElement {
                        l_angle_token: L_ANGLE@82..84 "<" [Newline("\n")] [],
                        name: JsxName {
                            value_token: JSX_IDENT@84..88 "test" [] [],
                        },
                        type_arguments: missing (optional),
                        attributes: JsxAttributeList [],
                        r_angle_token: R_ANGLE@88..89 ">" [] [],
                    },
                    children: JsxChildList [
                        JsxText {
                            value_token: JSX_TEXT_LITERAL@89..95 "\\u3333" [] [],
                        },
                    ],
                    closing_element: JsxClosingElement {
                        l_angle_token: L_ANGLE@95..96 "<" [] [],
                        slash_token: SLASH@96..97 "/" [] [],
                        name: JsxName {
                            value_token: JSX_IDENT@97..101 "test" [] [],
                        },
                        r_angle_token: R_ANGLE@101..141 ">" [] [Whitespace(" "), Comments("// no error for inval ...")],
                    },
                },
            },
            semicolon_token: missing (optional),
        },
    ],
    eof_token: EOF@141..142 "" [Newline("\n")] [],
}

0: JS_MODULE@0..142
  0: (empty)
  1: (empty)
  2: JS_DIRECTIVE_LIST@0..0
  3: JS_MODULE_ITEM_LIST@0..141
    0: JS_EXPRESSION_STATEMENT@0..12
      0: JSX_TAG_EXPRESSION@0..11
        0: JSX_ELEMENT@0..11
          0: JSX_OPENING_ELEMENT@0..3
            0: L_ANGLE@0..1 "<" [] []
            1: JSX_NAME@1..2
              0: JSX_IDENT@1..2 "a" [] []
            2: (empty)
            3: JSX_ATTRIBUTE_LIST@2..2
            4: R_ANGLE@2..3 ">" [] []
          1: JSX_CHILD_LIST@3..7
            0: JSX_TEXT@3..7
              0: JSX_TEXT_LITERAL@3..7 "test" [] []
          2: JSX_CLOSING_ELEMENT@7..11
            0: L_ANGLE@7..8 "<" [] []
            1: SLASH@8..9 "/" [] []
            2: JSX_NAME@9..10
              0: JSX_IDENT@9..10 "a" [] []
            3: R_ANGLE@10..11 ">" [] []
      1: SEMICOLON@11..12 ";" [] []
    1: JS_EXPRESSION_STATEMENT@12..44
      0: JSX_TAG_EXPRESSION@12..43
        0: JSX_ELEMENT@12..43
          0: JSX_OPENING_ELEMENT@12..16
            0: L_ANGLE@12..14 "<" [Newline("\n")] []
            1: JSX_NAME@14..15
              0: JSX_IDENT@14..15 "a" [] []
            2: (empty)
            3: JSX_ATTRIBUTE_LIST@15..15
            4: R_ANGLE@15..16 ">" [] []
          1: JSX_CHILD_LIST@16..39
            0: JSX_TEXT@16..39
              0: JSX_TEXT_LITERAL@16..39 "   whitespace handling " [] []
          2: JSX_CLOSING_ELEMENT@39..43
            0: L_ANGLE@39..40 "<" [] []
            1: SLASH@40..41 "/" [] []
            2: JSX_NAME@41..42
              0: JSX_IDENT@41..42 "a" [] []
            3: R_ANGLE@42..43 ">" [] []
      1: SEMICOLON@43..44 ";" [] []
    2: JS_EXPRESSION_STATEMENT@44..82
      0: JSX_TAG_EXPRESSION@44..81
        0: JSX_ELEMENT@44..81
          0: JSX_OPENING_ELEMENT@44..48
            0: L_ANGLE@44..46 "<" [Newline("\n")] []
            1: JSX_NAME@46..47
              0: JSX_IDENT@46..47 "a" [] []
            2: (empty)
            3: JSX_ATTRIBUTE_LIST@47..47
            4: R_ANGLE@47..48 ">" [] []
          1: JSX_CHILD_LIST@48..77
            0: JSX_TEXT@48..77
              0: JSX_TEXT_LITERAL@48..77 " multi\n   line\n         node\n" [] []
          2: JSX_CLOSING_ELEMENT@77..81
            0: L_ANGLE@77..78 "<" [] []
            1: SLASH@78..79 "/" [] []
            2: JSX_NAME@79..80
              0: JSX_IDENT@79..80 "a" [] []
            3: R_ANGLE@80..81 ">" [] []
      1: SEMICOLON@81..82 ";" [] []
    3: JS_EXPRESSION_STATEMENT@82..141
      0: JSX_TAG_EXPRESSION@82..141
        0: JSX_ELEMENT@82..141
          0: JSX_OPENING_ELEMENT@82..89
            0: L_ANGLE@82..84 "<" [Newline("\n")] []
            1: JSX_NAME@84..88
              0: JSX_IDENT@84..88 "test" [] []
            2: (empty)
            3: JSX_ATTRIBUTE_LIST@88..88
            4: R_ANGLE@88..89 ">" [] []
          1: JSX_CHILD_LIST@89..95
            0: JSX_TEXT@89..95
              0: JSX_TEXT_LITERAL@89..95 "\\u3333" [] []
          2: JSX_CLOSING_ELEMENT@95..141
            0: L_ANGLE@95..96 "<" [] []
            1: SLASH@96..97 "/" [] []
            2: JSX_NAME@97..101
              0: JSX_IDENT@97..101 "test" [] []
            3: R_ANGLE@101..141 ">" [] [Whitespace(" "), Comments("// no error for inval ...")]
      1: (empty)
  4: EOF@141..142 "" [Newline("\n")] []