(command.CommandList children: [ (command.ShAssignment left: <Id.Lit_VarLike '_Dbg_ansi_term_bold='> pairs: [ (AssignPair left: <Id.Lit_VarLike '_Dbg_ansi_term_bold='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike '_Dbg_ansi_term_bold='> name: _Dbg_ansi_term_bold ) op: assign_op.Equal rhs: {(DQ <'\x1b[1m'>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike '_Dbg_ansi_term_italic='> pairs: [ (AssignPair left: <Id.Lit_VarLike '_Dbg_ansi_term_italic='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike '_Dbg_ansi_term_italic='> name: _Dbg_ansi_term_italic ) op: assign_op.Equal rhs: {(DQ <'\x1b[3m'>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike '_Dbg_ansi_term_underline='> pairs: [ (AssignPair left: <Id.Lit_VarLike '_Dbg_ansi_term_underline='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike '_Dbg_ansi_term_underline='> name: _Dbg_ansi_term_underline ) op: assign_op.Equal rhs: {(DQ <'\x1b[4m'>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike '_Dbg_ansi_term_normal='> pairs: [ (AssignPair left: <Id.Lit_VarLike '_Dbg_ansi_term_normal='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike '_Dbg_ansi_term_normal='> name: _Dbg_ansi_term_normal ) op: assign_op.Equal rhs: {(DQ <'\x1b[0m'>)} ) ] redirects: [] ) (command.ShFunction name_tok: <_Dbg_confirm> name: _Dbg_confirm body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen left: <Id.Op_DLeftParen _> child: (arith_expr.Binary op_id: Id.Arith_DPipe left: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_Pound '#')} right: {<Id.Lit_Digits 1>} ) right: (arith_expr.Binary op_id: Id.Arith_Great left: {($ Id.VSub_Pound '#')} right: {<Id.Lit_Digits 2>} ) ) right: <Id.Op_DRightParen _> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike '_Dbg_response='> pairs: [ (AssignPair left: <Id.Lit_VarLike '_Dbg_response='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike '_Dbg_response='> name: _Dbg_response ) op: assign_op.Equal rhs: {(SQ <error>)} ) ] redirects: [] ) (command.ControlFlow keyword: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [101 124] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike '_Dbg_confirm_prompt='> pairs: [ (AssignPair left: <Id.Lit_VarLike '_Dbg_confirm_prompt='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike '_Dbg_confirm_prompt='> name: _Dbg_confirm_prompt ) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} ) ] redirects: [] ) (command.Simple blame_tok: <typeset> more_env: [] words: [ {<typeset>} {<Id.Lit_VarLike '_Dbg_confirm_default='> (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Number 2> var_name: 2 suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{(SQ <no>)}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_Colon ':'> more_env: [] words: [{<Id.Lit_Colon ':'>}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline negated: <Id.KW_Bang '!'> children: [ (command.Simple blame_tok: <read> more_env: [] words: [ {<read>} {($ Id.VSub_DollarName _Dbg_edit)} {<-p>} {(DQ ($ Id.VSub_DollarName _Dbg_confirm_prompt))} {<_Dbg_response>} {<args>} ] redirects: [ (Redir op: <Id.Redir_LessAnd '<&'> loc: (redir_loc.Fd fd:0) arg: {($ Id.VSub_DollarName _Dbg_input_desc)} ) (Redir op: <Id.Redir_DGreat '2>>'> loc: (redir_loc.Fd fd:2) arg: {($ Id.VSub_DollarName _Dbg_prompt_output)} ) ] do_fork: T ) ] ops: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [(command.ControlFlow keyword:<Id.ControlFlow_Break break>)] spids: [166 194] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{(DQ ($ Id.VSub_DollarName _Dbg_response))}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Left_SingleQuote '\''> pattern: (pat.Words words: [ {(SQ <y>)} {(SQ <yes>)} {(SQ <yeah>)} {(SQ <ya>)} {(SQ <ja>)} {(SQ <si>)} {(SQ <oui>)} {(SQ <ok>)} {(SQ <okay>)} ] ) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike '_Dbg_response='> pairs: [ (AssignPair left: <Id.Lit_VarLike '_Dbg_response='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike '_Dbg_response='> name: _Dbg_response ) op: assign_op.Equal rhs: {(SQ <y>)} ) ] redirects: [] ) (command.ControlFlow keyword: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Left_SingleQuote '\''> pattern: (pat.Words words: [ {(SQ <n>)} {(SQ <no>)} {(SQ <nope>)} {(SQ <nyet>)} {(SQ <nein>)} {(SQ <non>)} ] ) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike '_Dbg_response='> pairs: [ (AssignPair left: <Id.Lit_VarLike '_Dbg_response='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike '_Dbg_response='> name: _Dbg_response ) op: assign_op.Equal rhs: {(SQ <n>)} ) ] redirects: [] ) (command.ControlFlow keyword: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_EqualTilde left: {($ Id.VSub_DollarName _Dbg_response)} right: {(SQ <'^[ \\t]*$'>)} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <set> more_env: [] words: [{<set>} {<Id.Lit_Other '+'> <x>}] redirects: [] do_fork: T ) (command.ControlFlow keyword: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [337 353] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.Simple blame_tok: <_Dbg_msg> more_env: [] words: [ {<_Dbg_msg>} { (DQ <'I don\'t understand '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) ($ Id.VSub_DollarName _Dbg_response) (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) <.> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <_Dbg_msg> more_env: [] words: [ {<_Dbg_msg>} {(DQ <'Please try again entering \'yes\' or \'no\'.'>)} ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike '_Dbg_response='> pairs: [ (AssignPair left: <Id.Lit_VarLike '_Dbg_response='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike '_Dbg_response='> name: _Dbg_response ) op: assign_op.Equal rhs: {(SQ )} ) ] redirects: [] ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.KW_Done done> ) redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction keyword: <Id.KW_Function function> name_tok: <_Dbg_errmsg> name: _Dbg_errmsg body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-r>} {<Id.Lit_VarLike 'prefix='> (SQ <'**'>)}] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName _Dbg_set_highlight)} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <_Dbg_msg> more_env: [] words: [ {<_Dbg_msg>} { (DQ ($ Id.VSub_DollarName prefix) <' '> (${ Id.VSub_Name _Dbg_ansi_term_underline) ($ Id.VSub_At '@') (${ Id.VSub_Name _Dbg_ansi_term_normal) ) } ] redirects: [] do_fork: T ) ] spids: [428 440] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.Simple blame_tok: <_Dbg_msg> more_env: [] words: [{<_Dbg_msg>} {(DQ ($ Id.VSub_DollarName prefix) <' '> ($ Id.VSub_At '@'))}] redirects: [] do_fork: T ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction keyword: <Id.KW_Function function> name_tok: <_Dbg_errmsg_no_cr> name: _Dbg_errmsg_no_cr body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-r>} {<Id.Lit_VarLike 'prefix='> (SQ <'**'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <_Dbg_msg_no_cr> more_env: [] words: [{<_Dbg_msg_no_cr>} {(DQ ($ Id.VSub_DollarName prefix) <' '> ($ Id.VSub_At '@'))}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction keyword: <Id.KW_Function function> name_tok: <_Dbg_msg> name: _Dbg_msg body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen left: <Id.Op_DLeftParen _> child: ($ Id.Lit_ArithVarLike _Dbg_logging) right: <Id.Op_DRightParen _> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <builtin> more_env: [] words: [{<builtin>} {<echo>} {<-e>} {(DQ ($ Id.VSub_At '@'))}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName _Dbg_logfid)} ) ] do_fork: T ) ] spids: [516 527] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen left: <Id.Op_DLeftParen _> child: (arith_expr.Unary op_id: Id.Arith_Bang child: ($ Id.Lit_ArithVarLike _Dbg_logging_redirect) ) right: <Id.Op_DRightParen _> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName _Dbg_tty)} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {($ Id.VSub_DollarName _Dbg_tty)} right: {(SQ <'&1'>)} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) ] ops: [<Id.Op_DAmp _>] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <builtin> more_env: [] words: [{<builtin>} {<echo>} {<-e>} {(DQ ($ Id.VSub_At '@'))}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName _Dbg_tty)} ) ] do_fork: T ) ] spids: [563 589] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.Simple blame_tok: <builtin> more_env: [] words: [{<builtin>} {<echo>} {<-e>} {(DQ ($ Id.VSub_At '@'))}] redirects: [] do_fork: T ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] spids: [547 560] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction keyword: <Id.KW_Function function> name_tok: <_Dbg_msg_nocr> name: _Dbg_msg_nocr body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen left: <Id.Op_DLeftParen _> child: ($ Id.Lit_ArithVarLike _Dbg_logging) right: <Id.Op_DRightParen _> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <builtin> more_env: [] words: [{<builtin>} {<echo>} {<-n>} {<-e>} {(DQ ($ Id.VSub_At '@'))}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName _Dbg_logfid)} ) ] do_fork: T ) ] spids: [638 649] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen left: <Id.Op_DLeftParen _> child: (arith_expr.Unary op_id: Id.Arith_Bang child: ($ Id.Lit_ArithVarLike _Dbg_logging_redirect) ) right: <Id.Op_DRightParen _> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName _Dbg_tty)} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <builtin> more_env: [] words: [{<builtin>} {<echo>} {<-n>} {<-e>} {(DQ ($ Id.VSub_At '@'))}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName _Dbg_tty)} ) ] do_fork: T ) ] spids: [687 699] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.Simple blame_tok: <builtin> more_env: [] words: [{<builtin>} {<echo>} {<-n>} {<-e>} {(DQ ($ Id.VSub_At '@'))}] redirects: [] do_fork: T ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] spids: [671 684] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction keyword: <Id.KW_Function function> name_tok: <_Dbg_printf> name: _Dbg_printf body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <_Dbg_printf_nocr> more_env: [] words: [{<_Dbg_printf_nocr>} {(DQ ($ Id.VSub_At '@'))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <_Dbg_msg> more_env: [] words: [{<_Dbg_msg>} {(SQ )}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction keyword: <Id.KW_Function function> name_tok: <_Dbg_printf_nocr> name: _Dbg_printf_nocr body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<Id.Lit_VarLike 'format='> ($ Id.VSub_Number 1)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <shift> more_env: [] words: [{<shift>}] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen left: <Id.Op_DLeftParen _> child: ($ Id.Lit_ArithVarLike _Dbg_logging) right: <Id.Op_DRightParen _> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <builtin> more_env: [] words: [ {<builtin>} {<printf>} {(DQ ($ Id.VSub_DollarName format))} {(DQ ($ Id.VSub_At '@'))} ] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName _Dbg_logfid)} ) ] do_fork: T ) ] spids: [786 797] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen left: <Id.Op_DLeftParen _> child: (arith_expr.Unary op_id: Id.Arith_Bang child: ($ Id.Lit_ArithVarLike _Dbg_logging_redirect) ) right: <Id.Op_DRightParen _> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName _Dbg_tty)} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <builtin> more_env: [] words: [ {<builtin>} {<printf>} {(DQ ($ Id.VSub_DollarName format))} {(DQ ($ Id.VSub_At '@'))} ] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName _Dbg_tty)} ) ] do_fork: T ) ] spids: [835 847] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.Simple blame_tok: <builtin> more_env: [] words: [ {<builtin>} {<printf>} {(DQ ($ Id.VSub_DollarName format))} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] spids: [819 832] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.Simple blame_tok: <typeset> more_env: [] words: [ {<typeset>} {<Id.Lit_VarLike '_Dbg_dashes='> (SQ <--------------------------------------------------->)} ] redirects: [] do_fork: T ) (command.ShFunction keyword: <Id.KW_Function function> name_tok: <_Dbg_section> name: _Dbg_section body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName _Dbg_set_highlight)} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <_Dbg_msg> more_env: [] words: [ {<_Dbg_msg>} { (DQ (${ Id.VSub_Name _Dbg_ansi_term_bold) ($ Id.VSub_At '@') (${ Id.VSub_Name _Dbg_ansi_term_normal) ) } ] redirects: [] do_fork: T ) ] spids: [908 920] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<-r>} {<Id.Lit_VarLike 'msg='> (DQ ($ Id.VSub_At '@'))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <_Dbg_msg> more_env: [] words: [ {<_Dbg_msg>} { (DQ ($ Id.VSub_DollarName msg) <Id.Lit_BadBackslash '\\'> <n> (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name _Dbg_dashes> var_name: _Dbg_dashes suffix_op: (suffix_op.Slice begin: {<Id.Lit_Digits 0>} length: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name msg> var_name: msg prefix_op: <Id.VSub_Pound '#'> right: <Id.Right_DollarBrace '}'> ) } ) right: <Id.Arith_RBrace _> ) ) } ] redirects: [] do_fork: T ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction keyword: <Id.KW_Function function> name_tok: <_Dbg_msg_rst> name: _Dbg_msg_rst body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<-r>} {<Id.Lit_VarLike 'msg='> (DQ ($ Id.VSub_At '@'))}] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName _Dbg_set_highlight)} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.DParen left: <Id.Op_DLeftParen _> child: ($ Id.Lit_ArithVarLike _Dbg_working_term_highlight) right: <Id.Op_DRightParen _> redirects: [] ) ] ops: [<Id.Op_DAmp _>] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <typeset> more_env: [] words: [ {<typeset>} {<Id.Lit_VarLike 'opts='> (DQ <'--rst --width='> ($ Id.VSub_DollarName _Dbg_set_linewidth)) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <typeset> more_env: [] words: [ {<typeset>} {<Id.Lit_VarLike 'highlight_cmd='> (DQ (${ Id.VSub_Name _Dbg_libdir) <'/lib/term-highlight.py'>) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<formatted_msg>}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'formatted_msg='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'formatted_msg='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'formatted_msg='> name: formatted_msg ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ ($ Id.VSub_DollarName msg))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <Id.VSub_DollarName '$highlight_cmd'> more_env: [] words: [ {($ Id.VSub_DollarName highlight_cmd)} {($ Id.VSub_DollarName opts)} ] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr children: [ (command.DParen left: <Id.Op_DLeftParen _> child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_QMark '?')} right: {<Id.Lit_Digits 0>} ) right: <Id.Op_DRightParen _> redirects: [] ) (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName formatted_msg)} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) ] ops: [<Id.Op_DAmp _>] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <_Dbg_msg> more_env: [] words: [{<_Dbg_msg>} {(DQ ($ Id.VSub_DollarName formatted_msg))}] redirects: [] do_fork: T ) (command.ControlFlow keyword: <Id.ControlFlow_Return return> ) ] spids: [1055 1080] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] spids: [990 1011] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <_Dbg_msg> more_env: [] words: [{<_Dbg_msg>} {(DQ ($ Id.VSub_DollarName msg))}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <_Dbg_undefined_cmd> name: _Dbg_undefined_cmd body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen left: <Id.Op_DLeftParen _> child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_Pound '#')} right: {<Id.Lit_Digits 2>} ) right: <Id.Op_DRightParen _> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <_Dbg_errmsg> more_env: [] words: [ {<_Dbg_errmsg>} { (DQ <'Undefined '> ($ Id.VSub_Number 1) <' subcommand '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) ($ Id.VSub_Number 2) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'. Try '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) <'help '> ($ Id.VSub_Number 1) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <.> ) } ] redirects: [] do_fork: T ) ] spids: [1118 1133] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.Simple blame_tok: <_Dbg_errmsg> more_env: [] words: [ {<_Dbg_errmsg>} { (DQ <'Undefined command '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) ($ Id.VSub_Number 1) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'. Try '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) <help> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <.> ) } ] redirects: [] do_fork: T ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) ] )