JsModule {
bom_token: missing (optional),
interpreter_token: missing (optional),
directives: JsDirectiveList [],
items: JsModuleItemList [
JsImport {
import_token: IMPORT_KW@0..7 "import" [] [Whitespace(" ")],
import_clause: JsImportDefaultClause {
type_token: missing (optional),
default_specifier: JsDefaultImportSpecifier {
local_name: JsIdentifierBinding {
name_token: IDENT@7..11 "foo" [] [Whitespace(" ")],
},
},
from_token: FROM_KW@11..16 "from" [] [Whitespace(" ")],
source: JsModuleSource {
value_token: JS_STRING_LITERAL@16..22 "\"test\"" [] [],
},
assertion: missing (optional),
},
semicolon_token: SEMICOLON@22..23 ";" [] [],
},
],
eof_token: EOF@23..24 "" [Newline("\n")] [],
}
0: JS_MODULE@0..24
0: (empty)
1: (empty)
2: JS_DIRECTIVE_LIST@0..0
3: JS_MODULE_ITEM_LIST@0..23
0: JS_IMPORT@0..23
0: IMPORT_KW@0..7 "import" [] [Whitespace(" ")]
1: JS_IMPORT_DEFAULT_CLAUSE@7..22
0: (empty)
1: JS_DEFAULT_IMPORT_SPECIFIER@7..11
0: JS_IDENTIFIER_BINDING@7..11
0: IDENT@7..11 "foo" [] [Whitespace(" ")]
2: FROM_KW@11..16 "from" [] [Whitespace(" ")]
3: JS_MODULE_SOURCE@16..22
0: JS_STRING_LITERAL@16..22 "\"test\"" [] []
4: (empty)
2: SEMICOLON@22..23 ";" [] []
4: EOF@23..24 "" [Newline("\n")] []