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..10 " test >" [] [],
},
],
closing_element: JsxClosingElement {
l_angle_token: L_ANGLE@10..11 "<" [] [],
slash_token: SLASH@11..12 "/" [] [],
name: JsxName {
value_token: JSX_IDENT@12..13 "a" [] [],
},
r_angle_token: R_ANGLE@13..14 ">" [] [],
},
},
},
semicolon_token: SEMICOLON@14..15 ";" [] [],
},
JsExpressionStatement {
expression: JsxTagExpression {
tag: JsxElement {
opening_element: JsxOpeningElement {
l_angle_token: L_ANGLE@15..17 "<" [Newline("\n")] [],
name: JsxName {
value_token: JSX_IDENT@17..18 "b" [] [],
},
type_arguments: missing (optional),
attributes: JsxAttributeList [],
r_angle_token: R_ANGLE@18..19 ">" [] [],
},
children: JsxChildList [
JsxText {
value_token: JSX_TEXT_LITERAL@19..29 " invalid }" [] [],
},
],
closing_element: JsxClosingElement {
l_angle_token: L_ANGLE@29..30 "<" [] [],
slash_token: SLASH@30..31 "/" [] [],
name: JsxName {
value_token: JSX_IDENT@31..32 "b" [] [],
},
r_angle_token: R_ANGLE@32..33 ">" [] [],
},
},
},
semicolon_token: SEMICOLON@33..34 ";" [] [],
},
],
eof_token: EOF@34..35 "" [Newline("\n")] [],
}
0: JS_MODULE@0..35
0: (empty)
1: (empty)
2: JS_DIRECTIVE_LIST@0..0
3: JS_MODULE_ITEM_LIST@0..34
0: JS_EXPRESSION_STATEMENT@0..15
0: JSX_TAG_EXPRESSION@0..14
0: JSX_ELEMENT@0..14
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..10
0: JSX_TEXT@3..10
0: JSX_TEXT_LITERAL@3..10 " test >" [] []
2: JSX_CLOSING_ELEMENT@10..14
0: L_ANGLE@10..11 "<" [] []
1: SLASH@11..12 "/" [] []
2: JSX_NAME@12..13
0: JSX_IDENT@12..13 "a" [] []
3: R_ANGLE@13..14 ">" [] []
1: SEMICOLON@14..15 ";" [] []
1: JS_EXPRESSION_STATEMENT@15..34
0: JSX_TAG_EXPRESSION@15..33
0: JSX_ELEMENT@15..33
0: JSX_OPENING_ELEMENT@15..19
0: L_ANGLE@15..17 "<" [Newline("\n")] []
1: JSX_NAME@17..18
0: JSX_IDENT@17..18 "b" [] []
2: (empty)
3: JSX_ATTRIBUTE_LIST@18..18
4: R_ANGLE@18..19 ">" [] []
1: JSX_CHILD_LIST@19..29
0: JSX_TEXT@19..29
0: JSX_TEXT_LITERAL@19..29 " invalid }" [] []
2: JSX_CLOSING_ELEMENT@29..33
0: L_ANGLE@29..30 "<" [] []
1: SLASH@30..31 "/" [] []
2: JSX_NAME@31..32
0: JSX_IDENT@31..32 "b" [] []
3: R_ANGLE@32..33 ">" [] []
1: SEMICOLON@33..34 ";" [] []
4: EOF@34..35 "" [Newline("\n")] []
--
jsx_invalid_text.jsx:1:10 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
× Unexpected token. Did you mean `{'>'}` or `>`?
> 1 │ test >;
│ ^
2 │ invalid };
3 │
--
jsx_invalid_text.jsx:2:13 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
× Unexpected token. Did you mean `{'}'}` or `}`?
1 │ test >;
> 2 │ invalid };
│ ^
3 │
--
test >;
invalid };