(CommandList children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-z)} {(DQ (${ VSub_Name __mal_printer_included__))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:__mal_printer_included) op: Equal rhs: {(true)} spids: [27] ) ] spids: [27] ) (C {(source)} { (CommandSubPart command_list: (CommandList children:[(C {(dirname)} {($ VSub_Number '$0')})]) left_token: <Left_CommandSub '$('> spids: [33 37] ) (/types.sh) } ) (FuncDef name: _pr_str body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:print_readably) op: Equal rhs: {(DQ (${ VSub_Number 2))} spids: [51] ) ] spids: [49] ) (Sentence child: (C {(_obj_type)} {(DQ (${ VSub_Number 1))}) terminator: <Op_Semi ';'> ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:ot) op: Equal rhs: {(DQ (${ VSub_Name r))} spids: [70] ) ] spids: [68] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolUnary op_id:BoolUnary_z child:{(DQ (${ VSub_Name ot))}) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(_error)} {(DQ ("_pr_str failed on '") (${ VSub_Number 1) ("'"))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:r) op: Equal rhs: {(DQ ('<') (${ VSub_Number 1) ('>'))} spids: [107] ) ] spids: [107] ) ] spids: [16777215 93] ) ] else_action: [ (C {(eval)} {(${ VSub_Name ot) (_pr_str)} {(DQ (${ VSub_Number 1))} {(DQ (${ VSub_Name print_readably))} ) ] spids: [117 140] ) ] spids: [46] ) spids: [41 45] ) (FuncDef name: nil_pr_str body: (BraceGroup children: [ (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:r) op: Equal rhs: {(DQ (nil))} spids: [152] ) ] spids: [152] ) terminator: <Op_Semi ';'> ) ] spids: [150] ) spids: [145 149] ) (FuncDef name: true_pr_str body: (BraceGroup children: [ (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:r) op: Equal rhs: {(DQ (true))} spids: [167] ) ] spids: [167] ) terminator: <Op_Semi ';'> ) ] spids: [165] ) spids: [160 164] ) (FuncDef name: false_pr_str body: (BraceGroup children: [ (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:r) op: Equal rhs: {(DQ (false))} spids: [182] ) ] spids: [182] ) terminator: <Op_Semi ';'> ) ] spids: [180] ) spids: [175 179] ) (FuncDef name: number_pr_str body: (BraceGroup children: [ (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:r) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name ANON> bracket_op: (ArrayIndex expr: (ArithWord w:{(DQ (${ VSub_Number 1))}) ) spids: [200 209] ) ) } spids: [198] ) ] spids: [198] ) terminator: <Op_Semi ';'> ) ] spids: [196] ) spids: [191 195] ) (FuncDef name: symbol_pr_str body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:r) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name ANON> bracket_op: (ArrayIndex expr:(ArithWord w:{(DQ (${ VSub_Number 1))})) spids: [226 235] ) ) } spids: [224] ) ] spids: [224] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:r) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name r> suffix_op: (PatSub pat: {(__STAR__)} replace: {('*')} do_all: T do_prefix: F do_suffix: F ) spids: [241 248] ) ) } spids: [239] ) ] spids: [239] ) ] spids: [221] ) spids: [216 220] ) (FuncDef name: keyword_pr_str body: (BraceGroup children: [(C {(string_pr_str)} {(DQ (${ VSub_Number 1))})] spids: [259] ) spids: [254 258] ) (FuncDef name: _raw_string_pr_str body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:s) op: Equal rhs: {(DQ (${ VSub_Number 1))} spids: [283] ) ] spids: [281] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:print_readably) op: Equal rhs: {(DQ (${ VSub_Number 2))} spids: [293] ) ] spids: [291] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobEqual left: { (DQ (BracedVarSub token: <VSub_Name s> suffix_op: (Slice begin: (ArithWord w:{(Lit_Digits 0)}) length: (ArithWord w:{(Lit_Digits 1)}) ) spids: [306 312] ) ) } right: {(DQ (${ VSub_Name __keyw))} ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:r) op: Equal rhs: { (DQ (':') (BracedVarSub token: <VSub_Name s> suffix_op: (Slice begin:(ArithWord w:{(Lit_Digits 1)})) spids: [332 336] ) ) } spids: [329] ) ] spids: [329] ) ] spids: [16777215 326] ) (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobEqual left: { (DQ (BracedVarSub token: <VSub_Name s> suffix_op: (Slice begin: (ArithWord w:{(Lit_Digits 0)}) length: (ArithWord w:{(Lit_Digits 2)}) ) spids: [345 351] ) ) } right: {(DQ (${ VSub_Name __keyw))} ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:r) op: Equal rhs: { (DQ (':') (BracedVarSub token: <VSub_Name s> suffix_op: (Slice begin:(ArithWord w:{(Lit_Digits 2)})) spids: [371 375] ) ) } spids: [368] ) ] spids: [368] ) ] spids: [340 365] ) (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ (${ VSub_Name print_readably))} {(Lit_Other '=') (Lit_Other '=')} {(DQ (yes))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:s) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name s> suffix_op: (PatSub pat: {(EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>)} replace: {(EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) (EscapedLiteralPart token: <Lit_EscapedChar '\\\\'> ) } do_all: T do_prefix: F do_suffix: F ) spids: [404 412] ) ) } spids: [402] ) ] spids: [402] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:s) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name s> suffix_op: (PatSub pat: {(EscapedLiteralPart token:<Lit_EscapedChar '\\"'>)} replace: {(EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) (EscapedLiteralPart token: <Lit_EscapedChar '\\"'> ) } do_all: T do_prefix: F do_suffix: F ) spids: [418 426] ) ) } spids: [416] ) ] spids: [416] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:r) op: Equal rhs: { (DQ (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (BracedVarSub token: <VSub_Name s> suffix_op: (PatSub pat: {(Lit_Other '$') ("'") (EscapedLiteralPart token: <Lit_EscapedChar '\\n'> ) ("'") } replace: {(EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) (n) } do_all: T do_prefix: F do_suffix: F ) spids: [433 444] ) (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ) } spids: [430] ) ] spids: [430] ) ] spids: [379 399] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:r) op: Equal rhs: {(DQ (${ VSub_Name s))} spids: [452] ) ] spids: [452] ) ] spids: [449 460] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:r) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name r> suffix_op: (PatSub pat: {(__STAR__)} replace: {(Lit_Other '$') ("'*'")} do_all: T do_prefix: F do_suffix: F ) spids: [465 473] ) ) } spids: [463] ) ] spids: [463] ) ] spids: [278] ) spids: [273 277] ) (FuncDef name: string_pr_str body: (BraceGroup children: [ (C {(_raw_string_pr_str)} { (DQ (BracedVarSub token: <VSub_Name ANON> bracket_op: (ArrayIndex expr:(ArithWord w:{(DQ (${ VSub_Number 1))})) spids: [490 499] ) ) } {(DQ (${ VSub_Number 2))} ) ] spids: [484] ) spids: [479 483] ) (FuncDef name: function_pr_str body: (BraceGroup children: [ (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:r) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name ANON> bracket_op: (ArrayIndex expr: (ArithWord w:{(DQ (${ VSub_Number 1))}) ) spids: [520 529] ) ) } spids: [518] ) ] spids: [518] ) terminator: <Op_Semi ';'> ) ] spids: [516] ) spids: [511 515] ) (FuncDef name: bash_pr_str body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:r) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(Assign_Declare declare)} {(-f)} {(-p)} {(${ VSub_Number 1)}) ] ) left_token: <Left_CommandSub '$('> spids: [546 556] ) ) } spids: [544] ) ] spids: [544] ) ] spids: [541] ) spids: [536 540] ) (FuncDef name: hash_map_pr_str body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:print_readably) op: Equal rhs: {(DQ (${ VSub_Number 2))} spids: [572] ) ] spids: [570] ) (Sentence child: (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:res) op: Equal rhs: {(DQ )} spids: [582] ) ] spids: [580] ) terminator: <Op_Semi ';'> ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:val) op:Equal rhs:{(DQ )} spids:[589])] spids: [587] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:hm) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name ANON> bracket_op: (ArrayIndex expr:(ArithWord w:{(DQ (${ VSub_Number 1))})) spids: [598 607] ) ) } spids: [596] ) ] spids: [594] ) (C {(eval)} {(Assign_Local local)} {(Lit_VarLike 'keys=') (DQ (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('{!') (${ VSub_Name hm) ('[@]}') ) } ) (ForEach iter_name: key iter_words: [{(${ VSub_Name keys)}] do_arg_iter: F body: (DoGroup children: [ (C {(_raw_string_pr_str)} {(DQ (${ VSub_Name key))} {(DQ (${ VSub_Name print_readably))} ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:res) op: Equal rhs: {(DQ (${ VSub_Name res) (' ') (${ VSub_Name r))} spids: [655] ) ] spids: [655] ) (C {(eval)} {(Lit_VarLike 'val=') (DQ (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('{') (${ VSub_Name hm) ('[') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (${ VSub_Name key) (EscapedLiteralPart token: <Lit_EscapedChar '\\"'> ) (']}') ) } ) (C {(_pr_str)} {(DQ (${ VSub_Name val))} {(DQ (${ VSub_Name print_readably))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:res) op: Equal rhs: {(DQ (${ VSub_Name res) (' ') (${ VSub_Name r))} spids: [701] ) ] spids: [701] ) ] spids: [637 713] ) spids: [631 635] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:r) op: Equal rhs: { (DQ ('{') (BracedVarSub token: <VSub_Name res> suffix_op: (Slice begin:(ArithWord w:{(Lit_Digits 1)})) spids: [719 723] ) ('}') ) } spids: [716] ) ] spids: [716] ) ] spids: [567] ) spids: [562 566] ) (FuncDef name: vector_pr_str body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:print_readably) op: Equal rhs: {(DQ (${ VSub_Number 2))} spids: [740] ) ] spids: [738] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:res) op:Equal rhs:{(DQ )} spids:[750])] spids: [748] ) (ForEach iter_name: elem iter_words: [ { (BracedVarSub token: <VSub_Name ANON> bracket_op: (ArrayIndex expr:(ArithWord w:{(DQ (${ VSub_Number 1))})) spids: [761 770] ) } ] do_arg_iter: F body: (DoGroup children: [ (C {(_pr_str)} {(DQ (${ VSub_Name elem))} {(DQ (${ VSub_Name print_readably))} ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:res) op: Equal rhs: {(DQ (${ VSub_Name res) (' ') (${ VSub_Name r))} spids: [791] ) ] spids: [791] ) ] spids: [773 803] ) spids: [760 771] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:r) op: Equal rhs: { (DQ ('[') (BracedVarSub token: <VSub_Name res> suffix_op: (Slice begin:(ArithWord w:{(Lit_Digits 1)})) spids: [809 813] ) (']') ) } spids: [806] ) ] spids: [806] ) ] spids: [735] ) spids: [730 734] ) (FuncDef name: list_pr_str body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:print_readably) op: Equal rhs: {(DQ (${ VSub_Number 2))} spids: [830] ) ] spids: [828] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:res) op:Equal rhs:{(DQ )} spids:[840])] spids: [838] ) (ForEach iter_name: elem iter_words: [ { (BracedVarSub token: <VSub_Name ANON> bracket_op: (ArrayIndex expr:(ArithWord w:{(DQ (${ VSub_Number 1))})) spids: [851 860] ) } ] do_arg_iter: F body: (DoGroup children: [ (C {(_pr_str)} {(DQ (${ VSub_Name elem))} {(DQ (${ VSub_Name print_readably))} ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:res) op: Equal rhs: {(DQ (${ VSub_Name res) (' ') (${ VSub_Name r))} spids: [881] ) ] spids: [881] ) ] spids: [863 893] ) spids: [850 861] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:r) op: Equal rhs: { (DQ ('(') (BracedVarSub token: <VSub_Name res> suffix_op: (Slice begin:(ArithWord w:{(Lit_Digits 1)})) spids: [899 903] ) (')') ) } spids: [896] ) ] spids: [896] ) ] spids: [825] ) spids: [820 824] ) (FuncDef name: atom_pr_str body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:print_readably) op: Equal rhs: {(DQ (${ VSub_Number 2))} spids: [920] ) ] spids: [918] ) (C {(_pr_str)} { (DQ (BracedVarSub token: <VSub_Name ANON> bracket_op: (ArrayIndex expr:(ArithWord w:{(DQ (${ VSub_Number 1))})) spids: [931 940] ) ) } {(DQ (${ VSub_Name print_readably))} ) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:r) op: Equal rhs: {(DQ ('(atom ') (${ VSub_Name r) (')'))} spids: [950] ) ] spids: [950] ) terminator: <Op_Semi ';'> ) ] spids: [915] ) spids: [910 914] ) ] spids: [16777215 25] ) ] spids: [16777215 963] ) ] )