(CommandList children: [ (FuncDef name: sort_list body: (BraceGroup children: [ (AndOr children: [ (DParen child: (ArithBinary op_id: Arith_NEqual left: (ArithWord w:{($ VSub_Pound "$#")}) right: (ArithWord w:{(Lit_Digits 2)}) ) ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] op_id: Op_DAmp ) (C {(typeset)} {(-i)} {(Lit_VarLike "left=") ($ VSub_Number "$1")}) (AndOr children: [ (DParen child: (ArithBinary op_id: Arith_Less left: (ArithVarRef name:left) right: (ArithWord w:{(Lit_Digits 0)}) ) ) (AndOr children: [ (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{(Lit_Digits 0)}) right: (ArithWord w: { (BracedVarSub token: <VSub_Name list> prefix_op: VSub_Pound bracket_op: (WholeArray op_id:Lit_At) spids: [65 71] ) } ) ) ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(2)}) ] op_id: Op_DAmp ) ] op_id: Op_DPipe ) (C {(typeset)} {(-i)} {(Lit_VarLike "right=") ($ VSub_Number "$2")}) (AndOr children: [ (DParen child: (ArithBinary op_id: Arith_GreatEqual left: (ArithVarRef name:right) right: (ArithWord w: { (BracedVarSub token: <VSub_Name list> prefix_op: VSub_Pound bracket_op: (WholeArray op_id:Lit_At) spids: [95 101] ) } ) ) ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(3)}) ] op_id: Op_DAmp ) (Sentence child: (C {(typeset)} {(-i)} {(Lit_VarLike "i=") ($ VSub_Name "$left")}) terminator: <Op_Semi ";"> ) (C {(typeset)} {(-i)} {(Lit_VarLike "j=") ($ VSub_Name "$right")}) (Sentence child:(C {(typeset)} {(-i)} {(mid)}) terminator:<Op_Semi ";">) (DParen child: (BinaryAssign op_id: Arith_Equal left: (LhsName name:mid) right: (ArithBinary op_id: Arith_Slash left: (ArithBinary op_id: Arith_Plus left: (ArithVarRef name:left) right: (ArithVarRef name:right) ) right: (ArithWord w:{(Lit_Digits 2)}) ) ) ) (Sentence child:(C {(typeset)} {(partition_item)}) terminator:<Op_Semi ";">) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:partition_item) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name list> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name "$mid")})) spids: [159 164] ) ) } spids: [157] ) ] spids: [157] ) (C {(typeset)} {(temp)}) (While cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_Great left: (ArithVarRef name:j) right: (ArithVarRef name:i) ) ) terminator: <Op_Semi ";"> ) ] body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:item) op: Equal rhs: { (BracedVarSub token: <VSub_Name list> bracket_op: (ArrayIndex expr:(ArithVarRef name:i)) spids: [190 195] ) } spids: [189] ) ] spids: [189] ) (While cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: Redir_Less left: { (DQ (BracedVarSub token: <VSub_Name list> bracket_op: (ArrayIndex expr: (ArithWord w:{($ VSub_Name "$i")}) ) spids: [203 208] ) ) } right: {(DQ ($ VSub_Name "$partition_item"))} ) ) terminator: <Op_Semi ";"> ) ] body: (DoGroup children: [ (DParen child: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i)) ) ] spids: [221 231] ) ) (While cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: Redir_Great left: { (DQ (BracedVarSub token: <VSub_Name list> bracket_op: (ArrayIndex expr: (ArithWord w:{($ VSub_Name "$j")}) ) spids: [239 244] ) ) } right: {(DQ ($ VSub_Name "$partition_item"))} ) ) terminator: <Op_Semi ";"> ) ] body: (DoGroup children: [ (DParen child: (UnaryAssign op_id:Node_PostDMinus child:(LhsName name:j)) ) ] spids: [257 267] ) ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_LessEqual left: (ArithVarRef name:i) right: (ArithVarRef name:j) ) ) terminator: <Op_Semi ";"> ) ] action: [ (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:temp) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name list> bracket_op: (ArrayIndex expr: (ArithWord w:{($ VSub_Name "$i")}) ) spids: [288 293] ) ) } spids: [286] ) ] spids: [286] ) terminator: <Op_Semi ";"> ) (Sentence child: (C {(list) (Lit_Other "[") ($ VSub_Name "$i") (Lit_Other "]") (Lit_Other "=") (DQ (BracedVarSub token: <VSub_Name list> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name "$j")})) spids: [303 308] ) ) } ) terminator: <Op_Semi ";"> ) (C {(list) (Lit_Other "[") ($ VSub_Name "$j") (Lit_Other "]") (Lit_Other "=") (DQ ($ VSub_Name "$temp")) } ) (DParen child: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i)) ) (DParen child: (UnaryAssign op_id:Node_PostDMinus child:(LhsName name:j)) ) ] spids: [-1 283] ) ] spids: [-1 336] ) ] spids: [186 339] ) ) (AndOr children: [ (DParen child: (ArithBinary op_id: Arith_Less left: (ArithVarRef name:left) right: (ArithVarRef name:j) ) ) (C {(sort_list)} {($ VSub_Name "$left")} {($ VSub_Name "$j")}) ] op_id: Op_DAmp ) (AndOr children: [ (DParen child: (ArithBinary op_id: Arith_Great left: (ArithVarRef name:right) right: (ArithVarRef name:i) ) ) (C {(sort_list)} {($ VSub_Name "$i")} {($ VSub_Name "$right")}) ] op_id: Op_DAmp ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] spids: [21] ) spids: [17 20] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Number "$0")} right: {(Lit_Other "*") (sorting.sh)} ) ) terminator: <Op_Semi ";"> ) ] action: [ (AndOr children: [ (DBracket expr: (BoolUnary op_id:BoolUnary_n child:{($ VSub_Name "$ZSH_VERSION")}) ) (C {(setopt)} {(ksharrays)}) ] op_id: Op_DAmp ) (C {(typeset)} {(-a)} {(list)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:list) op: Equal rhs: {(ArrayLiteralPart)} spids: [427] ) ] spids: [427] ) (C {(sort_list)} {(-1)} {(0)}) (C {(typeset)} {(-p)} {(list)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:list) op: Equal rhs: {(ArrayLiteralPart words:[{(SQ <one>)}])} spids: [447] ) ] spids: [447] ) (C {(typeset)} {(-p)} {(list)}) (C {(sort_list)} {(0)} {(0)}) (C {(typeset)} {(-p)} {(list)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:list) op: Equal rhs: {(ArrayLiteralPart words:[{(SQ <one>)}{(SQ <two>)}{(SQ <three>)}])} spids: [477] ) ] spids: [477] ) (C {(sort_list)} {(0)} {(2)}) (C {(typeset)} {(-p)} {(list)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:list) op: Equal rhs: {(ArrayLiteralPart words:[{(4)}{(3)}{(2)}{(1)}])} spids: [507] ) ] spids: [507] ) (C {(sort_list)} {(0)} {(3)}) (C {(typeset)} {(-p)} {(list)}) ] spids: [-1 401] ) ] spids: [-1 532] ) ] )