(command.CommandList children: [ (C {<typeset>} {<-i>} {<Id.Lit_VarLike '_Dbg_action_count='> <0>}) (command.CommandList children: [ (command.Sentence child: (C {<typeset>} {<-a>} {<_Dbg_action_enable>}) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_Dbg_action_enable) op: assign_op.Equal rhs: {(sh_array_literal left:<Id.Op_LParen _>)} spids: [80] ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<typeset>} {<-a>} {<_Dbg_action_file>}) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_Dbg_action_file) op: assign_op.Equal rhs: {(sh_array_literal left:<Id.Op_LParen _>)} spids: [95] ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<typeset>} {<-a>} {<_Dbg_action_line>}) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_Dbg_action_line) op: assign_op.Equal rhs: {(sh_array_literal left:<Id.Op_LParen _>)} spids: [110] ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<typeset>} {<-a>} {<_Dbg_action_stmt>}) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_Dbg_action_stmt) op: assign_op.Equal rhs: {(sh_array_literal left:<Id.Op_LParen _>)} spids: [125] ) ] ) ] ) (C {<typeset>} {<-i>} {<Id.Lit_VarLike '_Dbg_action_max='> <0>}) (command.CommandList children: [ (command.Sentence child: (C {<typeset>} {<-A>} {<_Dbg_action_file2action>}) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_Dbg_action_file2action) op: assign_op.Equal rhs: {(sh_array_literal left:<Id.Op_LParen _>)} spids: [154] ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<typeset>} {<-A>} {<_Dbg_action_file2linenos>}) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_Dbg_action_file2linenos) op: assign_op.Equal rhs: {(sh_array_literal left:<Id.Op_LParen _>)} spids: [169] ) ] ) ] ) (command.ShFunction name: _Dbg_save_actions body: (BraceGroup children: [ (command.Simple words: [{<typeset>} {<-p>} {<_Dbg_action_line>}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$_Dbg_statefile')} ) ] do_fork: T ) (command.Simple words: [{<typeset>} {<-p>} {<_Dbg_action_file>}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$_Dbg_statefile')} ) ] do_fork: T ) (command.Simple words: [{<typeset>} {<-p>} {<_Dbg_action_enable>}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$_Dbg_statefile')} ) ] do_fork: T ) (command.Simple words: [{<typeset>} {<-p>} {<_Dbg_action_stmt>}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$_Dbg_statefile')} ) ] do_fork: T ) (command.Simple words: [{<typeset>} {<-p>} {<_Dbg_action_max>}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$_Dbg_statefile')} ) ] do_fork: T ) (command.Simple words: [{<typeset>} {<-p>} {<_Dbg_action_file2linenos>}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$_Dbg_statefile')} ) ] do_fork: T ) (command.Simple words: [{<typeset>} {<-p>} {<_Dbg_action_file2action>}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$_Dbg_statefile')} ) ] do_fork: T ) ] ) ) (command.ShFunction name: _Dbg_list_action body: (BraceGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} { (braced_var_sub token: <Id.VSub_Name _Dbg_action_line> prefix_op: (Id.VSub_Pound) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<_Dbg_msg>} {(DQ <'Actions at following places:'>)}) (C {<typeset>} {<-i>} {<i>}) (C {<_Dbg_section>} {(DQ <'Num Enb Stmt file:line'>)}) (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: <Id.Lit_ArithVarLike i> right: {<Id.Lit_Digits 1>} ) cond: (arith_expr.Binary op_id: Id.Arith_LessEqual left: <Id.Lit_ArithVarLike i> right: <Id.Lit_ArithVarLike _Dbg_action_max> ) update: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: <Id.Lit_ArithVarLike i> ) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: { (braced_var_sub token: <Id.VSub_Name _Dbg_action_line> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$i')} ) ) } ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<typeset>} {<Id.Lit_VarLike 'source_file='> (braced_var_sub token: <Id.VSub_Name _Dbg_action_file> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$i')} ) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:source_file) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<_Dbg_adjust_filename>} {(DQ ($ Id.VSub_DollarName '$source_file'))} ) ) } spids: [395] ) ] ) (C {<_Dbg_printf>} {(DQ <'%-3d %3d %-18s %s:%s'>)} {($ Id.VSub_DollarName '$i')} { (braced_var_sub token: <Id.VSub_Name _Dbg_action_enable> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$i')} ) ) } { (DQ (braced_var_sub token: <Id.VSub_Name _Dbg_action_stmt> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$i')} ) ) ) } {($ Id.VSub_DollarName '$source_file')} { (braced_var_sub token: <Id.VSub_Name _Dbg_action_line> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$i')} ) ) } ) ] spids: [364 381] ) ] ) ] ) ) ] spids: [285 305] ) ] else_action: [(C {<_Dbg_msg>} {(DQ <'No actions have been set.'>)})] ) ] ) ) (command.ShFunction name: _Dbg_set_action body: (BraceGroup children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DParen child: (arith_expr.Binary op_id: Id.Arith_NEqual left: {($ Id.VSub_Pound '$#')} right: {<Id.Lit_Digits 3>} ) ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] ) (C {<typeset>} {<source_file>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:source_file) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<_Dbg_expand_filename>} {(DQ ($ Id.VSub_Number '$1'))}) ) } spids: [498] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<_Dbg_is_int>} {($ Id.VSub_Number '$2')}) ) } ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] ) (C {<typeset>} {<-ri>} {<Id.Lit_VarLike 'lineno='> ($ Id.VSub_Number '$2')}) (C {<typeset>} {<-r>} {<Id.Lit_VarLike 'stmt='> ($ Id.VSub_Number '$3')}) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: <Id.Lit_ArithVarLike _Dbg_action_max> ) ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: <Id.Lit_ArithVarLike _Dbg_action_count> ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name: _Dbg_action_line index: {($ Id.VSub_DollarName '$_Dbg_action_max')} ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$lineno')} spids: [558] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name: _Dbg_action_file index: {($ Id.VSub_DollarName '$_Dbg_action_max')} ) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$source_file'))} spids: [566] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name: _Dbg_action_stmt index: {($ Id.VSub_DollarName '$_Dbg_action_max')} ) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$stmt'))} spids: [576] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name: _Dbg_action_enable index: {($ Id.VSub_DollarName '$_Dbg_action_max')} ) op: assign_op.Equal rhs: {<1>} spids: [586] ) ] ) (C {<typeset>} {<dq_source_file>}) (C {<typeset>} {<Id.Lit_VarLike 'dq_source_file='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<_Dbg_esc_dq>} {(DQ ($ Id.VSub_DollarName '$source_file'))}) ) } ) (C {<typeset>} {<Id.Lit_VarLike 'dq_stmt='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<_Dbg_esc_dq>} {(DQ ($ Id.VSub_DollarName '$stmt'))}) ) } ) (C {<_Dbg_write_journal>} { (DQ <'_Dbg_action_line['> ($ Id.VSub_DollarName '$_Dbg_action_max') <']='> ($ Id.VSub_DollarName '$lineno') ) } ) (C {<_Dbg_write_journal>} { (DQ <'_Dbg_action_file['> ($ Id.VSub_DollarName '$_Dbg_action_max') <']='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ($ Id.VSub_DollarName '$dq_source_file') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ) } ) (C {<_Dbg_write_journal>} { (DQ <'_Dbg_action_stmt['> ($ Id.VSub_DollarName '$_Dbg_action_max') <']='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ($ Id.VSub_DollarName '$dq_stmt') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ) } ) (C {<_Dbg_write_journal>} {(DQ <'_Dbg_action_enable['> ($ Id.VSub_DollarName '$_Dbg_action_max') <']=1'>)} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name: _Dbg_action_file2linenos index: {($ Id.VSub_DollarName '$source_file')} ) op: assign_op.PlusEqual rhs: {(DQ <' '> ($ Id.VSub_DollarName '$lineno') <' '>)} spids: [677] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name: _Dbg_action_file2action index: {($ Id.VSub_DollarName '$source_file')} ) op: assign_op.PlusEqual rhs: {(DQ <' '> ($ Id.VSub_DollarName '$_Dbg_action_max') <' '>)} spids: [689] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:source_file) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<_Dbg_adjust_filename>} {(DQ ($ Id.VSub_DollarName '$source_file'))}) ) } spids: [702] ) ] ) (C {<_Dbg_msg>} { (DQ <'Action '> ($ Id.VSub_DollarName '$_Dbg_action_max') <' set in file '> (${ Id.VSub_Name source_file) <', line '> ($ Id.VSub_DollarName '$lineno') <.> ) } ) (C {<_Dbg_write_journal>} {(DQ <'_Dbg_action_max='> ($ Id.VSub_DollarName '$_Dbg_action_max'))} ) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>}) ] ) ) (command.ShFunction name: _Dbg_unset_action body: (BraceGroup children: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_Pound '$#')} right: {<Id.Lit_Digits 2>} ) ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] ) (C {<typeset>} {<-r>} {<Id.Lit_VarLike 'filename='> (DQ ($ Id.VSub_Number '$1'))}) (command.AndOr ops: [Id.Op_DPipe] children: [ (C { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<_Dbg_is_int>} {(DQ ($ Id.VSub_Number '$2'))}) ) } ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] ) (C {<typeset>} {<-i>} {<Id.Lit_VarLike 'lineno='> ($ Id.VSub_Number '$2')}) (C {<typeset>} {<fullname>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fullname) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<_Dbg_expand_filename>} {(DQ ($ Id.VSub_DollarName '$filename'))}) ) } spids: [814] ) ] ) (C {<typeset>} {<-a>} {<linenos>}) (C {<eval>} { (DQ <'linenos=('> (braced_var_sub token: <Id.VSub_Name _Dbg_action_file2linenos> bracket_op: (bracket_op.ArrayIndex expr:{($ Id.VSub_DollarName '$fullname')}) ) <')'> ) } ) (C {<typeset>} {<-a>} {<action_nos>}) (C {<eval>} { (DQ <'action_nos=('> (braced_var_sub token: <Id.VSub_Name _Dbg_action_file2action> bracket_op: (bracket_op.ArrayIndex expr:{($ Id.VSub_DollarName '$fullname')}) ) <')'> ) } ) (C {<typeset>} {<-i>} {<i>}) (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: <Id.Lit_ArithVarLike i> right: {<Id.Lit_Digits 0>} ) cond: (arith_expr.Binary op_id: Id.Arith_Less left: <Id.Lit_ArithVarLike i> right: { (braced_var_sub token: <Id.VSub_Name linenos> prefix_op: (Id.VSub_Pound) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } ) update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:<Id.Lit_ArithVarLike i>) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: (arith_expr.Binary op_id: Id.Arith_LBracket left: <Id.Lit_ArithVarLike linenos> right: <Id.Lit_ArithVarLike i> ) right: <Id.Lit_ArithVarLike lineno> ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<typeset>} {<-i>} {<action_num>}) (command.DParen child: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: <Id.Lit_ArithVarLike action_num> right: (arith_expr.Binary op_id: Id.Arith_LBracket left: <Id.Lit_ArithVarLike action_nos> right: <Id.Lit_ArithVarLike i> ) ) ) (C {<_Dbg_unset_action_arrays>} {($ Id.VSub_DollarName '$action_num')}) (C {<unset>} {<Id.Lit_ArrayLhsOpen 'linenos['> <i> <Id.Lit_RBracket ']'>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name: _Dbg_action_file2linenos index: {($ Id.VSub_DollarName '$fullname')} ) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name linenos> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } spids: [968] ) ] ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [909 927] ) ] ) ] ) ) (C {<_Dbg_errmsg>} { (DQ <'No action found in file '> (${ Id.VSub_Name filename) <', line '> ($ Id.VSub_DollarName '$lineno') <.> ) } ) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<1>}) ] ) ) (command.ShFunction name: _Dbg_unset_action_arrays body: (BraceGroup children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DParen child: (arith_expr.Binary op_id: Id.Arith_NEqual left: {($ Id.VSub_Pound '$#')} right: {<Id.Lit_Digits 1>} ) ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] ) (C {<typeset>} {<-i>} {<Id.Lit_VarLike 'del='> ($ Id.VSub_Number '$1')}) (C {<_Dbg_write_journal_eval>} {(DQ <'unset _Dbg_action_enable['> ($ Id.VSub_DollarName '$del') <']'>)} ) (C {<_Dbg_write_journal_eval>} {(DQ <'unset _Dbg_action_file['> ($ Id.VSub_DollarName '$del') <']'>)} ) (C {<_Dbg_write_journal_eval>} {(DQ <'unset _Dbg_action_line['> ($ Id.VSub_DollarName '$del') <']'>)} ) (C {<_Dbg_write_journal_eval>} {(DQ <'unset _Dbg_action_stmt['> ($ Id.VSub_DollarName '$del') <']'>)} ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDMinus child: <Id.Lit_ArithVarLike _Dbg_action_count> ) ) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>}) ] ) ) ] )