JsModule { bom_token: missing (optional), interpreter_token: missing (optional), directives: JsDirectiveList [], items: JsModuleItemList [ JsSwitchStatement { switch_token: SWITCH_KW@0..7 "switch" [] [Whitespace(" ")], l_paren_token: L_PAREN@7..8 "(" [] [], discriminant: JsIdentifierExpression { name: JsReferenceIdentifier { value_token: IDENT@8..11 "foo" [] [], }, }, r_paren_token: R_PAREN@11..13 ")" [] [Whitespace(" ")], l_curly_token: L_CURLY@13..14 "{" [] [], cases: JsSwitchCaseList [ JsCaseClause { case_token: CASE_KW@14..21 "case" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")], test: JsIdentifierExpression { name: JsReferenceIdentifier { value_token: IDENT@21..24 "bar" [] [], }, }, colon_token: COLON@24..25 ":" [] [], consequent: JsStatementList [], }, JsDefaultClause { default_token: DEFAULT_KW@25..34 "default" [Newline("\n"), Whitespace(" ")] [], colon_token: COLON@34..35 ":" [] [], consequent: JsStatementList [], }, ], r_curly_token: R_CURLY@35..37 "}" [Newline("\n")] [], }, ], eof_token: EOF@37..38 "" [Newline("\n")] [], } 0: JS_MODULE@0..38 0: (empty) 1: (empty) 2: JS_DIRECTIVE_LIST@0..0 3: JS_MODULE_ITEM_LIST@0..37 0: JS_SWITCH_STATEMENT@0..37 0: SWITCH_KW@0..7 "switch" [] [Whitespace(" ")] 1: L_PAREN@7..8 "(" [] [] 2: JS_IDENTIFIER_EXPRESSION@8..11 0: JS_REFERENCE_IDENTIFIER@8..11 0: IDENT@8..11 "foo" [] [] 3: R_PAREN@11..13 ")" [] [Whitespace(" ")] 4: L_CURLY@13..14 "{" [] [] 5: JS_SWITCH_CASE_LIST@14..35 0: JS_CASE_CLAUSE@14..25 0: CASE_KW@14..21 "case" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")] 1: JS_IDENTIFIER_EXPRESSION@21..24 0: JS_REFERENCE_IDENTIFIER@21..24 0: IDENT@21..24 "bar" [] [] 2: COLON@24..25 ":" [] [] 3: JS_STATEMENT_LIST@25..25 1: JS_DEFAULT_CLAUSE@25..35 0: DEFAULT_KW@25..34 "default" [Newline("\n"), Whitespace(" ")] [] 1: COLON@34..35 ":" [] [] 2: JS_STATEMENT_LIST@35..35 6: R_CURLY@35..37 "}" [Newline("\n")] [] 4: EOF@37..38 "" [Newline("\n")] []