(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: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {($ Id.VSub_Pound '$#')} {(Id.Lit_Equals '=') (Id.Lit_Equals '=')} {(3)} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:49) ) ] 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: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {($ Id.VSub_Pound '$#')} {(Id.KW_Bang '!') (Id.Lit_Equals '=')} {(2)} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:77) ) ] action: [ (command.Simple words: [ {(echo)} { (DQ ('Usage: ') ($ Id.VSub_Number '$0') (' [quote_string(> )] response_level(starting at 0) line_width') ) } ] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:90) fd: -1 arg_word: {(2)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:94) 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: (Token id:Id.Left_Backtick val:'`' span_id:105) command_list: (command.CommandList children: [ (C {(expr)} {($ Id.VSub_Number '$2')} {(-)} {($ Id.VSub_Number '$1')} { (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\*' span_id:118) ) } {(braced_var_sub token:(Token id:Id.VSub_Name val:QUOTE span_id:122) prefix_op:(Id.VSub_Pound))} ) ] ) ) } spids: [104] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {($ Id.VSub_DollarName '$TEXT_WIDTH')} {(-lt)} {($ Id.VSub_DollarName '$MIN_TEXT_LEN')} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:138) ) ] action: [ (command.Simple words: [ {(echo)} { (DQ ('Aborting as line length will be less than ') ($ Id.VSub_DollarName '$MIN_TEXT_LEN') ) } ] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:150) fd: -1 arg_word: {(2)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:154) arg_word: {(1)} ) ] spids: [127 140] ) ] ) (command.ForEach iter_name: i iter_words: [ { (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:167) command_list: (command.CommandList children: [(C {(seq)} {(1)} {($ Id.VSub_DollarName '$RESPONSE_LEVEL')})] ) ) } ] do_arg_iter: F 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: (Token id:Id.Left_Backtick val:'`' span_id:190) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$RESPONSE_DELIM'))}) (C {(sed)} {(SQ (Token id:Id.Lit_Chars val:'s/[ ]*$//' span_id:204))}) ] 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: (Token id:Id.Left_Backtick val:'`' span_id:213) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$QUOTE'))}) (C {(tr)} {(-d)} {(SQ (Token id:Id.Lit_Chars val:' ' span_id:229))}) ] negated: F ) ] ) ) } spids: [212] ) ] ) (command.Pipeline children: [ (C {(tr)} {(-ds)} { (DQ ($ Id.VSub_DollarName '$QUOTE_DEL') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\\\' span_id:239) ) (n) ) } {(SQ (Token id:Id.Lit_Chars val:' ' span_id:244))} ) (C {(fmt)} {(-w) ($ Id.VSub_DollarName '$TEXT_WIDTH')}) (C {(sed)} {(-e)} { (DQ ('s/^[ ]*') (Id.Lit_Other '\\') ('(.*') (Id.Lit_Other '\\') (')/') ($ Id.VSub_DollarName '$RESPONSE_DELIM') (' ') (Id.Lit_Other '\\') (1/) ) } ) ] negated: F ) ] )