(command.CommandList children: [ (command.ShFunction name: test_columnized body: (BraceGroup children: [ (command.ShFunction name: do_one body: (BraceGroup children: [ (C {<typeset>} {<Id.Lit_VarLike 'cols='> (DQ ($ Id.VSub_Number '$1'))}) (C {<shift>}) (C {<typeset>} {<Id.Lit_VarLike 'last_line='> (DQ ($ Id.VSub_Number '$1'))}) (C {<shift>}) (C {<typeset>} {<-a>} {<columnized>}) (C {<typeset>} {<-a>} {<list>}) (C {<eval>} {(DQ <'list=('> ($ Id.VSub_Number '$1') <')'>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_Pound '$#')} right: {<Id.Lit_Digits 3>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<columnize>} {(DQ ($ Id.VSub_Number '$2'))} {(DQ ($ Id.VSub_Number '$3'))} ) ] spids: [65 78] ) ] else_action: [(C {<columnize>} {(DQ ($ Id.VSub_Number '$2'))})] ) (C {<typeset>} {<Id.Lit_VarLike 'size='> (braced_var_sub token: <Id.VSub_Name columnized> prefix_op: (Id.VSub_Pound) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } ) (C {<assertEquals>} {(DQ ($ Id.VSub_DollarName '$cols'))} {(DQ ($ Id.VSub_DollarName '$size'))} ) (C {<assertEquals>} {(DQ ($ Id.VSub_DollarName '$last_line'))} { (DQ (braced_var_sub token: <Id.VSub_Name columnized> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.Binary op_id: Id.Arith_Minus left: {($ Id.VSub_DollarName '$size')} right: {<Id.Lit_Digits 1>} ) ) ) ) } ) ] ) ) (C {<do_one>} {<1>} {(SQ <'<empty>'>)} {(SQ )}) (C {<do_one>} {<1>} {(SQ <'a,2,c'>)} {(SQ <'a 2 c'>)} {<10>} {(SQ <','>)}) (C {<do_one>} {<4>} {(SQ <'for 8 '>)} {(SQ <' 1 two three\n'> <' for 5 six\n'> <' 7 8'>)} {<12>} ) (C {<do_one>} {<3>} {(SQ <'3 six'>)} {(SQ <' 1 two 3\n'> <' for 5 six\n'> <' 7 8'>)} {<12>} ) ] ) ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(SQ <'/src/external-vcs/sourceforge/bashdb'>)} {<Id.Lit_Equals '='>} {(SQ )} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} {(DQ <'Something is wrong abs_top_srcdir is not set.'>)}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] spids: [234 251] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:abs_top_srcdir) op: assign_op.Equal rhs: {<'/src/external-vcs/sourceforge/bashdb'>} spids: [267] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:abs_top_srcdir) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name abs_top_srcdir> suffix_op: (suffix_op.Unary tok:<Id.VOp1_DPercent '%%'> arg_word:{<Id.Lit_Slash '/'>}) ) <'/'> } spids: [273] ) ] ) (C {<.>} {(${ Id.VSub_Name abs_top_srcdir) <'test/unit/helper.sh'>}) (C {<.>} {($ Id.VSub_DollarName '$abs_top_srcdir') <'/lib/columnize.sh'>}) (C {<set>} {<-->}) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_Number '$0')} right: {(${ Id.VSub_Name BASH_SOURCE)} ) ) (C {<.>} {(${ Id.VSub_Name shunit_file)}) ] ) ] )