(command.CommandList children: [ (C {<set>} {<-e>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:unifdef) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<dirname>} {(DQ ($ Id.VSub_Number '$0'))}) ) <'/unifdef'> ) } spids: [93] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-e>} {(DQ ($ Id.VSub_DollarName '$unifdef'))} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:unifdef) op: assign_op.Equal rhs: {<unifdef>} spids: [122] ) ] ) ] spids: [105 119] ) ] ) (command.Case to_match: {(DQ ($ Id.VSub_At '$@'))} arms: [ (case_arm pat_list: [{(DQ <'-d '>) <Id.Lit_Star '*'>}] action: [ (command.Simple words: [{<echo>} {<DEBUGGING>}] redirects: [(redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:debug) op: assign_op.Equal rhs: {<-d>} spids: [150] ) ] ) (C {<shift>}) ] spids: [136 140 -1 156] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:tmp) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<mktemp>} {<-d>} { (DQ (braced_var_sub token: <Id.VSub_Name TMPDIR> suffix_op: (suffix_op.Unary tok: <Id.VTest_ColonHyphen ':-'> arg_word: {<Id.Lit_Slash '/'> <tmp>} ) ) <'/'> (braced_var_sub token: <Id.VSub_Number 0> suffix_op: (suffix_op.Unary tok: <Id.VOp1_DPound '##'> arg_word: {<Id.Lit_Other '*'> <Id.Lit_Slash '/'>} ) ) <.XXXXXXXXXX> ) } ) ) } spids: [159] ) ] ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<2>}) ] ) (C {<trap>} {(SQ <'rm -r "$tmp" || exit 2'>)} {<EXIT>}) (C {<export>} {<Id.Lit_VarLike 'LC_ALL='> <C>}) (command.Pipeline children: [ (C {(DQ ($ Id.VSub_DollarName '$unifdef'))} {($ Id.VSub_DollarName '$debug')} {<-s>} {(DQ ($ Id.VSub_At '$@'))} ) (C {<sort>} {<-u>}) (command.Simple words: [{<sed>} {(SQ <'s/^/#undef /'>)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(DQ ($ Id.VSub_DollarName '$tmp') <'/undefs'>)} ) ] do_fork: T ) ] negated: F ) (command.Pipeline children: [ (C {<cc>} {<-E>} {<-dM>} {(DQ ($ Id.VSub_At '$@'))}) (command.Simple words: [{<sort>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(DQ ($ Id.VSub_DollarName '$tmp') <'/defs'>)} ) ] do_fork: T ) ] negated: F ) (command.Case to_match: {($ Id.VSub_DollarName '$debug')} arms: [ (case_arm pat_list: [{<-d>}] action: [ (command.Simple words: [ {<cat>} {(DQ ($ Id.VSub_DollarName '$tmp') <'/undefs'>)} {(DQ ($ Id.VSub_DollarName '$tmp') <'/defs'>)} ] redirects: [(redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) ] spids: [269 270 -1 287] ) ] ) (C {(DQ ($ Id.VSub_DollarName '$unifdef'))} {($ Id.VSub_DollarName '$debug')} {<-k>} {<-f>} {(DQ ($ Id.VSub_DollarName '$tmp') <'/undefs'>)} {<-f>} {(DQ ($ Id.VSub_DollarName '$tmp') <'/defs'>)} {(DQ ($ Id.VSub_At '$@'))} ) ] )