(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:json) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (SimpleCommand redirects: [(Redir op_id:Redir_Less fd:-1 arg_word:{(/dev/stdin)} spids:[5])] ) ] ) left_token: <Left_CommandSub '$('> spids: [4 7] ) } spids: [3] ) (assign_pair lhs: (LhsName name:oldlang) op: Equal rhs: {($ VSub_Name '$LANG')} spids: [9] ) (assign_pair lhs:(LhsName name:LANG) op:Equal rhs:{(C)} spids:[12]) ] spids: [3] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:str) op: Equal rhs: {(SQ <'("(\\\\.|[^\\\\"])*")'>)} spids: [15] ) ] spids: [15] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:num) op: Equal rhs: { (DQ ('(-?(0|[1-9][0-9]*)(') (EscapedLiteralPart token:<Lit_EscapedChar '\\.'>) ('[0-9]+)?([eE][+-]?[0-9]+)?)') ) } spids: [23] ) ] spids: [23] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:val) op: Equal rhs: {(DQ ('((str|num|obj|arr)[a-j]+|true|false|null)'))} spids: [30] ) ] spids: [30] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:arr) op: Equal rhs: { (DQ (EscapedLiteralPart token:<Lit_EscapedChar '\\['>) ('(') ($ VSub_Name '$val') ('(,') ($ VSub_Name '$val') (')*)?]') ) } spids: [35] ) ] spids: [35] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:obj) op: Equal rhs: { (DQ (EscapedLiteralPart token:<Lit_EscapedChar '\\{'>) ('(str[a-j]+:') ($ VSub_Name '$val') ('(,str[a-j]+:') ($ VSub_Name '$val') (')*)?}') ) } spids: [45] ) ] spids: [45] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:tr) op: Equal rhs: { (ArrayLiteralPart words: [ {(Lit_LBrace '{') (a..j) (Lit_RBrace '}') (Lit_LBrace '{') (a..j) (Lit_RBrace '}') (Lit_LBrace '{') (a..j) (Lit_RBrace '}') } ] ) } spids: [55] ) ] spids: [55] ) (Assignment keyword: Assign_Declare flags: ["'-n'"] pairs: [(assign_pair lhs:(LhsName name:match) op:Equal spids:[75])] spids: [71] ) (FuncDef name: push body: (BraceGroup children: [ (Sentence child: (Assignment keyword: Assign_Declare flags: ["'-gn'"] pairs: [ (assign_pair lhs: (LhsName name:list) op: Equal rhs: {(${ VSub_Name type) (_list)} spids: [89] ) ] spids: [85] ) terminator: <Op_Semi ';'> ) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:list) op: PlusEqual rhs: { (ArrayLiteralPart words: [ { (DQ (BracedVarSub token: <VSub_Name BASH_REMATCH> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 1)})) spids: [99 104] ) ) } ] ) } spids: [96] ) ] spids: [96] ) terminator: <Op_Semi ';'> ) ] spids: [83] ) spids: [78 82] ) (FuncDef name: match body: (ForEach iter_name: match iter_words: [{(str)} {(num)} {(obj)} {(arr)}] do_arg_iter: False body: (DoGroup children: [ (AndOr children: [ (DBracket expr: (LogicalAnd left: (BoolBinary op_id: BoolBinary_GlobNEqual left: { (BracedVarSub token: <VSub_Name match> prefix_op: VSub_Bang spids: [140 143] ) } right: {(str)} ) right: (LogicalNot child: (BoolBinary op_id: BoolBinary_ne left: {(i) (Lit_Other '+') (Lit_Other '+')} right: {(0)} ) ) ) ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:json) op: Equal rhs: { (BracedVarSub token: <VSub_Name json> suffix_op: (PatSub pat: {('[') (SQ <' '> <Lit_EscapedChar '\\t'> <Lit_EscapedChar '\\n'> <Lit_EscapedChar '\\r'> ) (']') } do_all: True do_prefix: False do_suffix: False ) spids: [166 178] ) } spids: [165] ) ] spids: [165] ) ] op_id: Op_DAmp ) (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_EqualTilde left: {($ VSub_Name '$json')} right: {($ VSub_Name '$match') ('(') (.) (Lit_Other '*') (')')} ) ) (BraceGroup children: [ (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:type) op: Equal rhs: { (BracedVarSub token: <VSub_Name match> prefix_op: VSub_Bang spids: [200 203] ) } spids: [199] ) ] spids: [199] ) terminator: <Op_Semi ';'> ) (Sentence child: (ControlFlow token:<ControlFlow_Return return>) terminator: <Op_Semi ';'> ) ] spids: [197] ) ] op_id: Op_DAmp ) ] spids: [132 212] ) spids: [122 130] ) spids: [111 115] ) (While cond: [(Sentence child:(C {(match)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (C {(push)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:json) op: Equal rhs: { (BracedVarSub token: <VSub_Name json> suffix_op: (StringUnary op_id: VOp1_Percent arg_word: {(DQ ($ VSub_Name '$BASH_REMATCH'))} ) spids: [229 235] ) ($ VSub_Name '$type') (BracedVarSub token: <VSub_Name tr> bracket_op: (ArrayIndex expr: (ArithBinary op_id: Arith_Minus left: (ArithWord w: { (BracedVarSub token: <VSub_Name list> prefix_op: VSub_Pound bracket_op: (WholeArray op_id:Lit_At) spids: [240 246] ) } ) right: (ArithWord w:{(Lit_Digits 1)}) ) ) spids: [237 250] ) (BracedVarSub token: <VSub_Name BASH_REMATCH> bracket_op: (ArrayIndex expr: (ArithUnary op_id: Node_UnaryMinus child: (ArithWord w:{(Lit_Digits 1)}) ) ) spids: [251 257] ) } spids: [228] ) ] spids: [228] ) ] spids: [220 259] ) ) (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_EqualTilde left: {($ VSub_Name '$json')} right: {(Lit_Other '^') ($ VSub_Name '$val') (Lit_Other '$')} ) ) (C {(exit)}) ] op_id: Op_DPipe ) (Assignment keyword: Assign_Declare flags: ["'-A'"] pairs: [(assign_pair lhs:(LhsName name:rt) op:Equal spids:[290])] spids: [286] ) (ForEach iter_name: i iter_words: [ { (DQ (BracedVarSub token:<VSub_Name tr> bracket_op:(WholeArray op_id:Lit_At) spids:[305310])) } ] do_arg_iter: False body: (DoGroup children: [ (Sentence child: (DParen child: (BinaryAssign op_id: Arith_Equal left: (LhsIndexedName name:rt index:(ArithWord w:{($ VSub_Name '$i')})) right: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:j)) ) ) terminator: <Op_Semi ';'> ) ] spids: [314 328] ) spids: [303 312] ) (Sentence child:(C {(set)} {(-f)}) terminator:<Op_Semi ';'>) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:LANG) op: Equal rhs: {($ VSub_Name '$oldlang')} spids: [335] ) (assign_pair lhs: (LhsName name:IFS) op: Equal rhs: {(Lit_Other ':') (Lit_Comma ',')} spids: [338] ) (assign_pair lhs: (LhsName name:regex) op: Equal rhs: {(SQ <'(\\\\[nftrb]|\\\\\\\\|\\\\u[a-f0-9]{4})'>)} spids: [342] ) ] spids: [335] ) (C {(shopt)} {(-s)} {(nocasematch)}) (FuncDef name: print body: (Case to_match: {($ VSub_Number '$1')} arms: [ (case_arm pat_list: [{(null)} {(true)} {(false)}] action: [(C {(printf)} {(DQ ($ VSub_Number '$1'))})] spids: [366 371 379 -1] ) (case_arm pat_list: [{(str) (Lit_Other '*')}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:tmp) op: Equal rhs: { (BracedVarSub token: <VSub_Name str_list> bracket_op: (ArrayIndex expr: (ArithBinary op_id: Arith_LBracket left: (ArithVarRef name:rt) right: (ArithWord w: { (BracedVarSub token: <VSub_Number 1> suffix_op: (Slice begin:(ArithWord w:{(Lit_Digits 3)})) spids: [392 396] ) } ) ) ) spids: [387 399] ) } spids: [386] ) ] spids: [386] ) (While cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_EqualTilde left: {($ VSub_Name '$tmp')} right: {($ VSub_Name '$regex') ('(') (.) (Lit_Other '*') (')')} ) ) terminator: <Op_Semi ';'> ) ] body: (DoGroup children: [ (C {(printf)} {(Lit_Other '%') (s)} { (DQ (BracedVarSub token: <VSub_Name tmp> suffix_op: (StringUnary op_id: VOp1_Percent arg_word: {(DQ ($ VSub_Name '$BASH_REMATCH'))} ) spids: [428 434] ) ) } ) (Case to_match: { (BracedVarSub token: <VSub_Name BASH_REMATCH> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 1)})) spids: [440 445] ) } arms: [ (case_arm pat_list: [{(EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) (u0008)}] action: [(C {(printf)} {(SQ <'\\\\b'>)})] spids: [450 452 460 -1] ) (case_arm pat_list: [{(EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) (u0009)}] action: [(C {(printf)} {(SQ <'\\\\t'>)})] spids: [462 464 472 -1] ) (case_arm pat_list: [{(EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) (u000a)}] action: [(C {(printf)} {(SQ <'\\\\n'>)})] spids: [475 477 485 -1] ) (case_arm pat_list: [{(EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) (u000c)}] action: [(C {(printf)} {(SQ <'\\\\f'>)})] spids: [487 489 497 -1] ) (case_arm pat_list: [{(EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) (u000d)}] action: [(C {(printf)} {(SQ <'\\\\r'>)})] spids: [500 502 510 -1] ) (case_arm pat_list: [{(EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) (u0022)}] action: [(C {(printf)} {(SQ <'\\\\"'>)})] spids: [512 514 522 -1] ) (case_arm pat_list: [{(EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) (u005c)}] action: [(C {(printf)} {(SQ <'\\\\\\\\'>)})] spids: [525 527 535 -1] ) (case_arm pat_list: [ {(EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) (EscapedLiteralPart token: <Lit_EscapedChar '\\\\'> ) } {(EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) (Lit_Other '[') (nftrb) (Lit_Other ']') } {(EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) (u00) (Lit_Other '[') (01) (Lit_Other ']') (Lit_Other '?') } ] action: [ (C {(printf)} {(Lit_Other '%') (s)} { (DQ (BracedVarSub token: <VSub_Name BASH_REMATCH> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 1)})) spids: [560 565] ) ) } ) ] spids: [538 552 568 -1] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (C {(printf)} {(Lit_Other '%') (b)} { (DQ (BracedVarSub token: <VSub_Name BASH_REMATCH> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 1)})) spids: [580 585] ) ) } ) ] spids: [571 572 -1 589] ) ] spids: [438 447 589] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:tmp) op: Equal rhs: { (BracedVarSub token: <VSub_Name BASH_REMATCH> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 2)})) spids: [593 598] ) } spids: [592] ) ] spids: [592] ) ] spids: [419 601] ) ) (C {(printf)} {(Lit_Other '%') (s)} {(DQ ($ VSub_Name '$tmp'))}) ] spids: [382 384 613 -1] ) (case_arm pat_list: [{(num) (Lit_Other '*')}] action: [ (C {(printf)} {(Lit_Other '%') (s)} { (DQ (BracedVarSub token: <VSub_Name num_list> bracket_op: (ArrayIndex expr: (ArithBinary op_id: Arith_LBracket left: (ArithVarRef name:rt) right: (ArithWord w: { (BracedVarSub token: <VSub_Number 1> suffix_op: (Slice begin:(ArithWord w:{(Lit_Digits 3)})) spids: [634 638] ) } ) ) ) spids: [629 641] ) ) } ) ] spids: [619 621 644 -1] ) (case_arm pat_list: [{(arr) (Lit_Other '*')}] action: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:array) op: Equal rhs: { (ArrayLiteralPart words: [ { (BracedVarSub token: <VSub_Name arr_list> bracket_op: (ArrayIndex expr: (ArithBinary op_id: Arith_LBracket left: (ArithVarRef name:rt) right: (ArithWord w: { (BracedVarSub token: <VSub_Number 1> suffix_op: (Slice begin: (ArithWord w:{(Lit_Digits 3)}) ) spids: [660 664] ) } ) ) ) spids: [655 667] ) } ] ) } spids: [653] ) ] spids: [651] ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithUnary op_id: Arith_Bang child: (ArithWord w: { (BracedVarSub token: <VSub_Name array> prefix_op: VSub_Pound bracket_op: (WholeArray op_id:Lit_At) spids: [675 681] ) } ) ) ) terminator: <Op_Semi ';'> ) ] action: [(C {(printf)} {(DQ ('[]'))})] spids: [-1 686] ) ] else_action: [ (Sentence child: (DParen child: (BinaryAssign op_id: Arith_PlusEqual left: (LhsName name:indent) right: (ArithWord w:{(Lit_Digits 2)}) ) ) terminator: <Op_Semi ';'> ) (C {(printf)} {(DQ ('[') (EscapedLiteralPart token:<Lit_EscapedChar '\\n'>))}) (While cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_Great left: (ArithWord w: { (BracedVarSub token: <VSub_Name array> prefix_op: VSub_Pound bracket_op: (WholeArray op_id:Lit_At) spids: [717 723] ) } ) right: (ArithWord w:{(Lit_Digits 1)}) ) ) terminator: <Op_Semi ';'> ) ] body: (DoGroup children: [ (Sentence child: (C {(printf)} {(DQ ('%*s'))} {(DQ ($ VSub_Name '$indent'))}) terminator: <Op_Semi ';'> ) (Sentence child: (C {(print)} {(DQ ($ VSub_Name '$array'))}) terminator: <Op_Semi ';'> ) (C {(printf)} {(DQ (',') (EscapedLiteralPart token:<Lit_EscapedChar '\\n'>))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:array) op: Equal rhs: { (ArrayLiteralPart words: [ { (DQ (BracedVarSub token: <VSub_Name array> bracket_op: (WholeArray op_id:Lit_At) suffix_op: (Slice begin:(ArithWord w:{(Lit_Digits 1)})) spids: [762 769] ) ) } ] ) } spids: [759] ) ] spids: [759] ) ] spids: [730 774] ) ) (Sentence child: (C {(printf)} {(DQ ('%*s'))} {(DQ ($ VSub_Name '$indent'))}) terminator: <Op_Semi ';'> ) (C {(print)} {(DQ ($ VSub_Name '$array'))}) (C {(printf)} {(DQ (EscapedLiteralPart token:<Lit_EscapedChar '\\n'>) ('%*s]'))} { (DQ (ArithSubPart anode: (BinaryAssign op_id: Arith_MinusEqual left: (LhsName name:indent) right: (ArithWord w:{(Lit_Digits 2)}) ) spids: [803 808] ) ) } ) ] spids: [695 812] ) ] spids: [647 649 814 -1] ) (case_arm pat_list: [{(obj) (Lit_Other '*')}] action: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:object) op: Equal rhs: { (ArrayLiteralPart words: [ { (BracedVarSub token: <VSub_Name obj_list> bracket_op: (ArrayIndex expr: (ArithBinary op_id: Arith_LBracket left: (ArithVarRef name:rt) right: (ArithWord w: { (BracedVarSub token: <VSub_Number 1> suffix_op: (Slice begin: (ArithWord w:{(Lit_Digits 3)}) ) spids: [830 834] ) } ) ) ) spids: [825 837] ) } ] ) } spids: [823] ) ] spids: [821] ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithUnary op_id: Arith_Bang child: (ArithWord w: { (BracedVarSub token: <VSub_Name object> prefix_op: VSub_Pound bracket_op: (WholeArray op_id:Lit_At) spids: [845 851] ) } ) ) ) terminator: <Op_Semi ';'> ) ] action: [(C {(printf)} {(DQ ('{}'))})] spids: [-1 856] ) ] else_action: [ (Sentence child: (DParen child: (BinaryAssign op_id: Arith_PlusEqual left: (LhsName name:indent) right: (ArithWord w:{(Lit_Digits 2)}) ) ) terminator: <Op_Semi ';'> ) (C {(printf)} {(DQ ('{') (EscapedLiteralPart token:<Lit_EscapedChar '\\n'>))}) (While cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_Great left: (ArithWord w: { (BracedVarSub token: <VSub_Name object> prefix_op: VSub_Pound bracket_op: (WholeArray op_id:Lit_At) spids: [887 893] ) } ) right: (ArithWord w:{(Lit_Digits 2)}) ) ) terminator: <Op_Semi ';'> ) ] body: (DoGroup children: [ (Sentence child: (C {(printf)} {(DQ ('%*s'))} {(DQ ($ VSub_Name '$indent'))}) terminator: <Op_Semi ';'> ) (Sentence child: (C {(print)} {(DQ ($ VSub_Name '$object'))}) terminator: <Op_Semi ';'> ) (C {(printf)} {(DQ (': '))}) (Sentence child: (C {(print)} { (DQ (BracedVarSub token: <VSub_Name object> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 1)})) spids: [931 936] ) ) } ) terminator: <Op_Semi ';'> ) (C {(printf)} {(DQ (',') (EscapedLiteralPart token:<Lit_EscapedChar '\\n'>))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:object) op: Equal rhs: { (ArrayLiteralPart words: [ { (DQ (BracedVarSub token: <VSub_Name object> bracket_op: (WholeArray op_id:Lit_At) suffix_op: (Slice begin:(ArithWord w:{(Lit_Digits 2)})) spids: [951 958] ) ) } ] ) } spids: [948] ) ] spids: [948] ) ] spids: [900 963] ) ) (Sentence child: (C {(printf)} {(DQ ('%*s'))} {(DQ ($ VSub_Name '$indent'))}) terminator: <Op_Semi ';'> ) (Sentence child: (C {(print)} {(DQ ($ VSub_Name '$object'))}) terminator: <Op_Semi ';'> ) (C {(printf)} {(DQ (': '))}) (Sentence child: (C {(print)} { (DQ (BracedVarSub token: <VSub_Name object> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 1)})) spids: [994 999] ) ) } ) terminator: <Op_Semi ';'> ) (C {(printf)} {(DQ (EscapedLiteralPart token:<Lit_EscapedChar '\\n'>))}) (C {(printf)} {(DQ ('%*s}'))} { (DQ (ArithSubPart anode: (BinaryAssign op_id: Arith_MinusEqual left: (LhsName name:indent) right: (ArithWord w:{(Lit_Digits 2)}) ) spids: [1017 1022] ) ) } ) ] spids: [865 1026] ) ] spids: [817 819 1028 -1] ) ] spids: [359 363 1031] ) spids: [353 357] ) (ForEach iter_name: arg do_arg_iter: True body: (DoGroup children: [ (Case to_match: {($ VSub_Name '$arg')} arms: [ (case_arm pat_list: [{(obj) (Lit_Other '*')}] action: [ (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_GlobEqual left: {($ VSub_Name '$json')} right: {(obj) (Lit_Other '*')} ) ) (BraceGroup children: [ (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:json) op: Equal rhs: {(null)} spids: [1073] ) ] spids: [1073] ) terminator: <Op_Semi ';'> ) (Sentence child: (ControlFlow token:<ControlFlow_Break break>) terminator: <Op_Semi ';'> ) ] spids: [1071] ) ] op_id: Op_DPipe ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:json) op: Equal rhs: { (BracedVarSub token: <VSub_Name obj_list> bracket_op: (ArrayIndex expr: (ArithBinary op_id: Arith_LBracket left: (ArithVarRef name:rt) right: (ArithWord w: { (BracedVarSub token: <VSub_Name json> suffix_op: (Slice begin: (ArithWord w:{(Lit_Digits 3)}) ) spids: [1089 1093] ) } ) ) ) spids: [1084 1096] ) } spids: [1083] ) (assign_pair lhs: (LhsName name:object) op: Equal rhs: {(ArrayLiteralPart words:[{($ VSub_Name '$json')}])} spids: [1098] ) ] spids: [1083] ) (While cond: [ (Sentence child: (DParen child: (ArithWord w: { (BracedVarSub token: <VSub_Name object> prefix_op: VSub_Pound bracket_op: (WholeArray op_id:Lit_At) spids: [1107 1113] ) } ) ) terminator: <Op_Semi ';'> ) ] body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobEqual left: { (BracedVarSub token: <VSub_Name str_list> bracket_op: (ArrayIndex expr: (ArithBinary op_id: Arith_LBracket left: (ArithVarRef name:rt) right: (ArithWord w: { (BracedVarSub token: <VSub_Name object> suffix_op: (Slice begin: (ArithWord w: {(Lit_Digits 3)} ) ) spids: [1130 1134] ) } ) ) ) spids: [1125 1137] ) } right: { (DQ (BracedVarSub token: <VSub_Name arg> suffix_op: (Slice begin: (ArithWord w:{(Lit_Digits 5)}) ) spids: [1142 1146] ) ) } ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:json) op: Equal rhs: { (BracedVarSub token: <VSub_Name object> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 1)}) ) spids: [1156 1161] ) } spids: [1155] ) ] spids: [1155] ) (ControlFlow token: <ControlFlow_Continue continue> arg_word: {(2)} ) ] spids: [-1 1152] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:object) op: Equal rhs: { (ArrayLiteralPart words: [ { (DQ (BracedVarSub token: <VSub_Name object> bracket_op: (WholeArray op_id:Lit_At) suffix_op: (Slice begin: (ArithWord w:{(Lit_Digits 2)}) ) spids: [1174 1181] ) ) } ] ) } spids: [1171] ) ] spids: [1171] ) ] spids: [1169 1186] ) ] spids: [1118 1189] ) ) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:json) op: Equal rhs: {(null)} spids: [1192] ) ] spids: [1192] ) terminator: <Op_Semi ';'> ) (ControlFlow token:<ControlFlow_Break break>) ] spids: [1054 1056 1198 -1] ) (case_arm pat_list: [{(arr) (Lit_Other '*')}] action: [ (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_GlobEqual left: {($ VSub_Name '$json')} right: {(arr) (Lit_Other '*')} ) ) (BraceGroup children: [ (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:json) op: Equal rhs: {(null)} spids: [1220] ) ] spids: [1220] ) terminator: <Op_Semi ';'> ) (Sentence child: (ControlFlow token:<ControlFlow_Break break>) terminator: <Op_Semi ';'> ) ] spids: [1218] ) ] op_id: Op_DPipe ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:json) op: Equal rhs: { (BracedVarSub token: <VSub_Name arr_list> bracket_op: (ArrayIndex expr: (ArithBinary op_id: Arith_LBracket left: (ArithVarRef name:rt) right: (ArithWord w: { (BracedVarSub token: <VSub_Name json> suffix_op: (Slice begin: (ArithWord w:{(Lit_Digits 3)}) ) spids: [1236 1240] ) } ) ) ) spids: [1231 1243] ) } spids: [1230] ) (assign_pair lhs: (LhsName name:array) op: Equal rhs: {(ArrayLiteralPart words:[{($ VSub_Name '$json')}])} spids: [1245] ) ] spids: [1230] ) (AndOr children: [ (DParen child: (ArithBinary op_id: Arith_GreatEqual left: (ArithWord w: { (BracedVarSub token: <VSub_Name array> prefix_op: VSub_Pound bracket_op: (WholeArray op_id:Lit_At) spids: [1252 1258] ) } ) right: (ArithWord w: { (BracedVarSub token: <VSub_Name arg> suffix_op: (Slice begin:(ArithWord w:{(Lit_Digits 5)})) spids: [1262 1266] ) } ) ) ) (BraceGroup children: [ (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:json) op: Equal rhs: {(null)} spids: [1275] ) ] spids: [1275] ) terminator: <Op_Semi ';'> ) (Sentence child: (ControlFlow token:<ControlFlow_Break break>) terminator: <Op_Semi ';'> ) ] spids: [1273] ) ] op_id: Op_DPipe ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:json) op: Equal rhs: { (BracedVarSub token: <VSub_Name array> bracket_op: (ArrayIndex expr: (ArithWord w: { (BracedVarSub token: <VSub_Name arg> suffix_op: (Slice begin:(ArithWord w:{(Lit_Digits 5)})) spids: [1289 1293] ) } ) ) spids: [1286 1295] ) } spids: [1285] ) ] spids: [1285] ) ] spids: [1201 1203 1297 -1] ) ] spids: [1047 1051 1300] ) ] spids: [1041 1302] ) spids: [-1 -1] ) (Sentence child:(C {(print)} {(DQ ($ VSub_Name '$json'))}) terminator:<Op_Semi ';'>) (C {(echo)}) ] )