(CommandList children: [ (FuncDef name: columnize body: (BraceGroup children: [ (Assignment keyword: Assign_Typeset flags: [-i] pairs: [ (assign_pair lhs: (LhsName name:displaywidth) op: Equal rhs: { (BracedVarSub token: <VSub_Number 1> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(80)}) spids: [91 95] ) } spids: [90] ) ] spids: [86] ) (AndOr ops: [Op_DAmp Op_DPipe] children: [ (DParen child: (ArithBinary op_id: Arith_Less left: (ArithWord w:{($ VSub_Pound '$#')}) right: (ArithWord w:{(Lit_Digits 2)}) ) ) (Assignment keyword: Assign_Typeset pairs: [ (assign_pair lhs: (LhsName name:colsep) op: Equal rhs: {(SQ <' '>)} spids: [111] ) ] spids: [109] ) (Assignment keyword: Assign_Typeset pairs: [ (assign_pair lhs: (LhsName name:colsep) op: Equal rhs: {(DQ ($ VSub_Number '$2'))} spids: [120] ) ] spids: [118] ) ] ) (Assignment keyword: Assign_Typeset flags: [-i] pairs: [ (assign_pair lhs: (LhsName name:list_size) op: Equal rhs: { (BracedVarSub token: <VSub_Name list> prefix_op: VSub_Pound bracket_op: (WholeArray op_id:Lit_At) spids: [131 137] ) } spids: [130] ) ] spids: [126] ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithVarRef name:list_size) right: (ArithWord w:{(Lit_Digits 0)}) ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:columnized) op: Equal rhs: {(ArrayLiteralPart words:[{(SQ <'<empty>'>)}])} spids: [156] ) ] spids: [156] ) (ControlFlow token:<ControlFlow_Return return>) ] spids: [16777215 153] ) ] spids: [16777215 167] ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{(Lit_Digits 1)}) right: (ArithVarRef name:list_size) ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:columnized) op: Equal rhs: { (ArrayLiteralPart words: [ { (DQ (BracedVarSub token: <VSub_Name list> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)})) spids: [188 193] ) ) } ] ) } spids: [185] ) ] spids: [185] ) (ControlFlow token:<ControlFlow_Return return>) ] spids: [16777215 182] ) ] spids: [16777215 202] ) (Assignment keyword: Assign_Typeset flags: [-i] pairs: [(assign_pair lhs:(LhsName name:nrows) op:Equal rhs:{(0)} spids:[221])] spids: [217] ) (Assignment keyword: Assign_Typeset flags: [-i] pairs: [(assign_pair lhs:(LhsName name:ncols) op:Equal rhs:{(0)} spids:[230])] spids: [226] ) (Assignment keyword: Assign_Typeset flags: [-a] pairs: [ (assign_pair lhs: (LhsName name:colwidths) op: Equal rhs: {(ArrayLiteralPart)} spids: [238] ) ] spids: [234] ) (Assignment keyword: Assign_Typeset flags: [-i] pairs: [(assign_pair lhs:(LhsName name:i) op:Equal rhs:{(0)} spids:[247])] spids: [243] ) (ForExpr init: (BinaryAssign op_id: Arith_Equal left: (LhsName name:i) right: (ArithWord w:{(Lit_Digits 0)}) ) cond: (ArithBinary op_id: Arith_Less left: (ArithVarRef name:i) right: (ArithVarRef name:list_size) ) update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i)) body: (DoGroup children: [ (Assignment keyword: Assign_Typeset flags: [-a] pairs: [ (assign_pair lhs: (LhsName name:colwidths) op: Equal rhs: {(ArrayLiteralPart)} spids: [281] ) ] spids: [277] ) (DParen child: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:nrows)) ) (DParen child: (BinaryAssign op_id: Arith_Equal left: (LhsName name:ncols) right: (ArithBinary op_id: Arith_Slash left: (ArithBinary op_id: Arith_Minus left: (ArithBinary op_id: Arith_Plus left: (ArithVarRef name:list_size) right: (ArithVarRef name:nrows) ) right: (ArithWord w:{(Lit_Digits 1)}) ) right: (ArithVarRef name:nrows) ) ) ) (Assignment keyword: Assign_Typeset flags: [-i] pairs: [ (assign_pair lhs: (LhsName name:totwidth) op: Equal rhs: {(-) (BracedVarSub token: <VSub_Name colsep> prefix_op: VSub_Pound spids: [321 324] ) } spids: [319] ) ] spids: [315] ) (Assignment keyword: Assign_Typeset flags: [-i] pairs: [(assign_pair lhs:(LhsName name:col) op:Equal spids:[331])] spids: [327] ) (ForExpr init: (BinaryAssign op_id: Arith_Equal left: (LhsName name:col) right: (ArithWord w:{(Lit_Digits 0)}) ) cond: (ArithBinary op_id: Arith_LessEqual left: (ArithVarRef name:col) right: (ArithBinary op_id: Arith_Minus left: (ArithVarRef name:ncols) right: (ArithWord w:{(Lit_Digits 1)}) ) ) update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:col)) body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:colwidth) op: Equal rhs: {(0)} spids: [366] ) ] spids: [366] ) (Assignment keyword: Assign_Typeset flags: [-i] pairs: [(assign_pair lhs:(LhsName name:row) op:Equal spids:[374])] spids: [370] ) (ForExpr init: (BinaryAssign op_id: Arith_Equal left: (LhsName name:row) right: (ArithWord w:{(Lit_Digits 0)}) ) cond: (ArithBinary op_id: Arith_LessEqual left: (ArithVarRef name:row) right: (ArithBinary op_id: Arith_Minus left: (ArithVarRef name:nrows) right: (ArithWord w:{(Lit_Digits 1)}) ) ) update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:row)) body: (DoGroup children: [ (Assignment keyword: Assign_Typeset flags: [-i] pairs: [(assign_pair lhs:(LhsName name:j) op:Equal spids:[409])] spids: [405] ) (DParen child: (BinaryAssign op_id: Arith_Equal left: (LhsName name:j) right: (ArithBinary op_id: Arith_Plus left: (ArithVarRef name:row) right: (ArithBinary op_id: Arith_Star left: (ArithVarRef name:nrows) right: (ArithVarRef name:col) ) ) ) ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_GreatEqual left: (ArithVarRef name:j) right: (ArithVarRef name:list_size) ) ) terminator: <Op_Semi ';'> ) ] action: [(ControlFlow token:<ControlFlow_Break break>)] spids: [16777215 441] ) ] spids: [16777215 447] ) (Assignment keyword: Assign_Typeset pairs: [ (assign_pair lhs: (LhsName name:item) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name list> bracket_op: (ArrayIndex expr:(ArithVarRef name:j)) spids: [454 459] ) ) } spids: [452] ) ] spids: [450] ) (AndOr ops: [Op_DAmp] children: [ (DParen child: (ArithBinary op_id: Arith_Less left: (ArithVarRef name:colwidth) right: (ArithWord w: { (BracedVarSub token: <VSub_Name item> prefix_op: VSub_Pound spids: [468 471] ) } ) ) ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:colwidth) op: Equal rhs: { (BracedVarSub token: <VSub_Name item> prefix_op: VSub_Pound spids: [478 481] ) } spids: [477] ) ] spids: [477] ) ] ) ] spids: [402 484] ) ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:colwidths) op: PlusEqual rhs: {(ArrayLiteralPart words:[{($ VSub_Name '$colwidth')}])} spids: [487] ) ] spids: [487] ) (DParen child: (BinaryAssign op_id: Arith_PlusEqual left: (LhsName name:totwidth) right: (ArithBinary op_id: Arith_Plus left: (ArithVarRef name:colwidth) right: (ArithWord w: { (BracedVarSub token: <VSub_Name colsep> prefix_op: VSub_Pound spids: [500 503] ) } ) ) ) ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_Great left: (ArithVarRef name:totwidth) right: (ArithVarRef name:displaywidth) ) ) terminator: <Op_Semi ';'> ) ] action: [(ControlFlow token:<ControlFlow_Break break>)] spids: [16777215 520] ) ] spids: [16777215 526] ) ] spids: [359 529] ) ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_LessEqual left: (ArithVarRef name:totwidth) right: (ArithVarRef name:displaywidth) ) ) terminator: <Op_Semi ';'> ) ] action: [(ControlFlow token:<ControlFlow_Break break>)] spids: [16777215 544] ) ] spids: [16777215 550] ) ] spids: [273 553] ) ) (ForExpr init: (BinaryAssign op_id: Arith_Equal left: (LhsName name:row) right: (ArithWord w:{(Lit_Digits 0)}) ) cond: (ArithBinary op_id: Arith_Less left: (ArithVarRef name:row) right: (ArithVarRef name:nrows) ) update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:row)) body: (DoGroup children: [ (Assignment keyword: Assign_Typeset flags: [-i] pairs: [ (assign_pair lhs: (LhsName name:text_size) op: Equal rhs: {(0)} spids: [600] ) ] spids: [596] ) (Assignment keyword: Assign_Typeset flags: [-a] pairs: [ (assign_pair lhs: (LhsName name:texts) op: Equal rhs: {(ArrayLiteralPart)} spids: [608] ) ] spids: [604] ) (ForExpr init: (BinaryAssign op_id: Arith_Equal left: (LhsName name:col) right: (ArithWord w:{(Lit_Digits 0)}) ) cond: (ArithBinary op_id: Arith_Less left: (ArithVarRef name:col) right: (ArithVarRef name:ncols) ) update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:col)) body: (DoGroup children: [ (DParen child: (BinaryAssign op_id: Arith_Equal left: (LhsName name:i) right: (ArithBinary op_id: Arith_Plus left: (ArithVarRef name:row) right: (ArithBinary op_id: Arith_Star left: (ArithVarRef name:nrows) right: (ArithVarRef name:col) ) ) ) ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_GreatEqual left: (ArithVarRef name:i) right: (ArithVarRef name:list_size) ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:item) op: Equal rhs: {(SQ )} spids: [664] ) ] spids: [664] ) ] spids: [16777215 661] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:item) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name list> bracket_op: (ArrayIndex expr:(ArithVarRef name:i)) spids: [674 679] ) ) } spids: [672] ) ] spids: [672] ) ] spids: [669 683] ) (C {(texts) (Lit_Other '[') ($ VSub_Name '$text_size') (Lit_Other ']') (Lit_Other '=') (DQ ($ VSub_Name '$item')) } ) (DParen child: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:text_size)) ) ] spids: [632 705] ) ) (While cond: [ (Sentence child: (AndOr ops: [Op_DAmp] children: [ (DParen child: (ArithBinary op_id: Arith_Great left: (ArithVarRef name:text_size) right: (ArithWord w:{(Lit_Digits 0)}) ) ) (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: { (BracedVarSub token: <VSub_Name texts> bracket_op: (ArrayIndex expr: (ArithBinary op_id: Arith_Minus left: (ArithVarRef name:text_size) right: (ArithWord w:{(Lit_Digits 1)}) ) ) spids: [725 732] ) } right: {(SQ )} ) ) ] ) terminator: <Op_Semi ';'> ) ] body: (DoGroup children: [ (DParen child: (UnaryAssign op_id: Node_PostDMinus child: (LhsName name:text_size) ) ) (C {(unset)} {(texts) (Lit_Other '[') ($ VSub_Name '$text_size') (Lit_Other ']')} ) ] spids: [743 762] ) ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:text_row) op: Equal rhs: {(SQ )} spids: [765] ) ] spids: [765] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:text_cell) op: Equal rhs: {(SQ )} spids: [770] ) ] spids: [770] ) (ForExpr init: (BinaryAssign op_id: Arith_Equal left: (LhsName name:col) right: (ArithWord w:{(Lit_Digits 0)}) ) cond: (ArithBinary op_id: Arith_Less left: (ArithVarRef name:col) right: (ArithVarRef name:text_size) ) update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:col)) body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:fmt) op: Equal rhs: { (DQ ('%-') (BracedVarSub token: <VSub_Name colwidths> bracket_op: (ArrayIndex expr:(ArithVarRef name:col)) spids: [802 807] ) (s) ) } spids: [799] ) ] spids: [799] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:text_cell) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(printf)} {($ VSub_Name '$fmt')} { (DQ (BracedVarSub token: <VSub_Name texts> bracket_op: (ArrayIndex expr: (ArithVarRef name:col) ) spids: [819 824] ) ) } ) ] ) left_token: <Left_CommandSub '$('> spids: [813 826] ) } spids: [812] ) ] spids: [812] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:text_row) op: PlusEqual rhs: {(DQ (${ VSub_Name text_cell))} spids: [829] ) ] spids: [829] ) (AndOr ops: [Op_DAmp] children: [ (DParen child: (ArithBinary op_id: Arith_NEqual left: (ArithVarRef name:col) right: (ArithBinary op_id: Arith_Minus left: (ArithVarRef name:text_size) right: (ArithWord w:{(Lit_Digits 1)}) ) ) ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:text_row) op: PlusEqual rhs: {(DQ (${ VSub_Name colsep))} spids: [850] ) ] spids: [850] ) ] ) ] spids: [796 858] ) ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:columnized) op: PlusEqual rhs: {(ArrayLiteralPart words:[{(DQ ($ VSub_Name '$text_row'))}])} spids: [861] ) ] spids: [861] ) ] spids: [593 869] ) ) ] spids: [83] ) spids: [79 82] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Number '$0')} right: { (BracedVarSub token: <VSub_Name BASH_SOURCE> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)})) spids: [882 887] ) } ) ) terminator: <Op_Semi ';'> ) ] action: [ (FuncDef name: print_columns body: (BraceGroup children: [ (C {(unset)} {(columnized)}) (Assignment keyword: Assign_Typeset flags: [-a] pairs: [(assign_pair lhs:(LhsName name:columnized) op:Equal spids:[917])] spids: [913] ) (Assignment keyword: Assign_Typeset flags: [-a] pairs: [(assign_pair lhs:(LhsName name:list) op:Equal spids:[924])] spids: [920] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:list) op: Equal rhs: {(ArrayLiteralPart words:[{($ VSub_Number '$1')}])} spids: [927] ) ] spids: [927] ) (C {(columnize)} {($ VSub_Number '$2')} {($ VSub_Number '$3')}) (Assignment keyword: Assign_Typeset flags: [-i] pairs: [(assign_pair lhs:(LhsName name:i) op:Equal spids:[944])] spids: [940] ) (C {(echo)} {(SQ <'==============='>)}) (ForExpr init: (BinaryAssign op_id: Arith_Equal left: (LhsName name:i) right: (ArithWord w:{(Lit_Digits 0)}) ) cond: (ArithBinary op_id: Arith_Less left: (ArithVarRef name:i) right: (ArithWord w: { (BracedVarSub token: <VSub_Name columnized> prefix_op: VSub_Pound bracket_op: (WholeArray op_id:Lit_At) spids: [964 970] ) } ) ) update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i)) body: (DoGroup children: [ (C {(printf)} { (DQ (BracedVarSub token: <VSub_Name columnized> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$i')})) spids: [987 992] ) (Lit_Other '\\') (n) ) } ) ] spids: [980 998] ) ) ] spids: [905] ) spids: [901 904] ) (C {(print_columns)}) (C {(print_columns)} {(SQ )}) (C {(print_columns)} {(oneitem)}) (C {(print_columns)} {(SQ <'a 2 c'>)} {(10)} {(SQ <', '>)}) (C {(print_columns)} { (SQ <' one two three\n'> <' 4ne 5wo 6hree\n'> <' 7ne 8wo 9hree\n'> <' 10e 11o 12ree'>) } {(18)} ) (C {(print_columns)} {(SQ <' 1 two three\n'> <' for 5 six\n'> <' 7 8'>)} {(12)}) (C {(print_columns)} {(SQ <' 1 two 3\n'> <' for 5 six\n'> <' 7 8'>)} {(12)}) ] spids: [16777215 893] ) ] spids: [16777215 1070] ) ] )