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")] []