(command.CommandList children: [ (C {<Id.KW_Set 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 '$('> command_list: (command.CommandList children: [(C {<dirname>} {(DQ ($ Id.VSub_Number '$0'))})] ) ) </unifdef> ) } spids: [93] ) ] ) (command.If arms: [ (if_arm cond: [ (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.Redir op:<Id.Redir_GreatAnd '1>&'> fd:1 arg_word:{<2>})] ) (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 '$('> command_list: (command.CommandList children: [ (C {<mktemp>} {<-d>} { (DQ (braced_var_sub token: <Id.VSub_Name TMPDIR> suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {<Id.Lit_Slash /> <tmp>} ) ) </> (braced_var_sub token: <Id.VSub_Number 0> suffix_op: (suffix_op.Unary op_id: Id.VOp1_DPound arg_word: {<'*'> <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.Redir op: <Id.Redir_Great '>'> fd: -1 arg_word: {(DQ ($ Id.VSub_DollarName '$tmp') </undefs>)} ) ] ) ] negated: F ) (command.Pipeline children: [ (C {<cc>} {<-E>} {<-dM>} {(DQ ($ Id.VSub_At '$@'))}) (command.Simple words: [{<sort>}] redirects: [ (redir.Redir op: <Id.Redir_Great '>'> fd: -1 arg_word: {(DQ ($ Id.VSub_DollarName '$tmp') </defs>)} ) ] ) ] 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.Redir op:<Id.Redir_GreatAnd '1>&'> fd:1 arg_word:{<2>})] ) ] 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 '$@'))} ) ] )