(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:QUOTE) op: assign_op.Equal rhs: {(DQ <'> '>)} spids: [28] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MIN_TEXT_LEN) op: assign_op.Equal rhs: {<8>} spids: [33] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_Pound '$#')} {<Id.Lit_Equals '='> <Id.Lit_Equals '='>} {<3>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:QUOTE) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$1'))} spids: [54] ) ] ) (C {<shift>}) ] spids: [37 51] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_Pound '$#')} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<2>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<echo>} { (DQ <'Usage: '> ($ Id.VSub_Number '$0') <' [quote_string(> )] response_level(starting at 0) line_width'> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] spids: [65 79] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:RESPONSE_LEVEL) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [101] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TEXT_WIDTH) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_Number '$2')} {<->} {($ Id.VSub_Number '$1')} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\*'>)} {(braced_var_sub token:<Id.VSub_Name QUOTE> prefix_op:(Id.VSub_Pound))} ) ) } spids: [104] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName '$TEXT_WIDTH')} {<-lt>} {($ Id.VSub_DollarName '$MIN_TEXT_LEN')} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<echo>} { (DQ <'Aborting as line length will be less than '> ($ Id.VSub_DollarName '$MIN_TEXT_LEN') ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] spids: [127 140] ) ] ) (command.ForEach iter_names: [i] iterable: (for_iter.Words words: [ { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<seq>} {<1>} {($ Id.VSub_DollarName '$RESPONSE_LEVEL')}) ) } ] ) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:RESPONSE_DELIM) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$RESPONSE_DELIM') ($ Id.VSub_DollarName '$QUOTE'))} spids: [181] ) ] ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:RESPONSE_DELIM) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName '$RESPONSE_DELIM'))}) (C {<sed>} {(SQ <'s/[ ]*$//'>)}) ] negated: F ) ) } spids: [189] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:QUOTE_DEL) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName '$QUOTE'))}) (C {<tr>} {<-d>} {(SQ <' '>)}) ] negated: F ) ) } spids: [212] ) ] ) (command.Pipeline children: [ (C {<tr>} {<-ds>} { (DQ ($ Id.VSub_DollarName '$QUOTE_DEL') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <n> ) } {(SQ <' '>)} ) (C {<fmt>} {<-w> ($ Id.VSub_DollarName '$TEXT_WIDTH')}) (C {<sed>} {<-e>} { (DQ <'s/^[ ]*'> <Id.Lit_BadBackslash '\\'> <'(.*'> <Id.Lit_BadBackslash '\\'> <')/'> ($ Id.VSub_DollarName '$RESPONSE_DELIM') <' '> <Id.Lit_BadBackslash '\\'> <'1/'> ) } ) ] negated: F ) ] )