(CommandList children: [ (FuncDef name: list_command body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:plugin_name) op: Equal rhs: {($ VSub_Number "$1")} spids: [9] ) ] spids: [7] ) (C {(check_if_plugin_exists)} {(DQ ($ VSub_Name "$plugin_name"))}) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:versions) op:Equal spids:[23])] spids: [21] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:versions) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(list_installed_versions)} {(DQ ($ VSub_Name "$plugin_name"))}) ] ) left_token: <Left_CommandSub "$("> spids: [27 33] ) } spids: [26] ) ] spids: [26] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(-n)} {(DQ (${ VSub_Name versions))} {(Lit_Other "]")}) terminator: <Op_Semi ";"> ) ] action: [ (ForEach iter_name: version iter_words: [{($ VSub_Name "$versions")}] do_arg_iter: False body: (DoGroup children: [(C {(echo)} {(DQ ($ VSub_Name "$version"))})] spids: [64 74] ) spids: [60 62] ) ] spids: [-1 52] ) ] else_action: [(C {(display_error)} {(SQ <"No versions installed">)}) (C {(exit)} {(1)})] spids: [77 92] ) ] spids: [4] ) spids: [0 3] ) ] )