(command.CommandList children: [ (C {(Id.KW_Set set)} {(-e)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:std) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [54] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CC) op: assign_op.Equal rhs: {($ Id.VSub_Number '$2')} spids: [57] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:expected_list) op: assign_op.Equal rhs: {($ Id.VSub_Number '$3')} spids: [60] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:all_data_files) op: assign_op.Equal rhs: {($ Id.VSub_Number '$4')} spids: [63] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:new_list) op: assign_op.Equal rhs: (word.Empty) spids: [67] ) ] ) (command.ForEach iter_name: f iter_words: [{($ Id.VSub_DollarName '$all_data_files')}] do_arg_iter: F body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:h) op: assign_op.Equal rhs: { (braced_var_sub token: (Token id:Id.VSub_Name val:f span_id:84) suffix_op: (suffix_op.Unary op_id: Id.VOp1_Pound arg_word: {(data) (Id.Lit_Slash /)} ) ) } spids: [82] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:h) op: assign_op.Equal rhs: { (braced_var_sub token: (Token id:Id.VSub_Name val:h span_id:93) suffix_op: (suffix_op.Unary op_id:Id.VOp1_Percent arg_word:{(-data)}) ) } spids: [91] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:exp) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:100) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {($ Id.VSub_DollarName '$CC')} {(-D) ($ Id.VSub_DollarName '$std')} {(-x)} {(c)} {(-E)} {($ Id.VSub_DollarName '$f')} ) (C {(sed)} {(-e)} {(SQ (Token id:Id.Lit_Chars val:'/^#/d' span_id:121))} {(-e)} {(SQ (Token id:Id.Lit_Chars val:'/^[ \t]*$/d' span_id:127))} ) ] negated: F ) ] ) ) } spids: [99] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$exp'))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:141) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:new_list) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$new_list') (' ') ($ Id.VSub_DollarName '$h')) } spids: [146] ) ] ) ] spids: [132 143] ) ] ) ] ) ) (C {(echo)} { (DQ ('Headers with expectations for ') ($ Id.VSub_DollarName '$std') (': ') ($ Id.VSub_DollarName '$new_list') ) } ) (C {(echo)} {(DQ ('Expected list: ') ($ Id.VSub_DollarName '$expected_list'))}) (command.ShAssignment pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:rc) op:assign_op.Equal rhs:{(0)} spids:[176])] ) (command.ForEach iter_name: h iter_words: [{($ Id.VSub_DollarName '$expected_list')}] do_arg_iter: F body: (command.DoGroup children: [ (command.Case to_match: {(DQ (' ') ($ Id.VSub_DollarName '$new_list') (' '))} arms: [ (case_arm pat_list: [ {(Id.Lit_Star '*') (DQ (' ') ($ Id.VSub_DollarName '$h') (' ')) (Id.Lit_Star '*')} ] spids: [203 211 214 -1] ) (case_arm pat_list: [{(Id.Lit_Star '*')}] action: [ (C {(echo)} {(DQ ('Missing expectations for ') ($ Id.VSub_DollarName '$h') (.))}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:rc) op: assign_op.Equal rhs: {(1)} spids: [231] ) ] ) ] spids: [217 219 235 -1] ) ] ) ] ) ) (command.ForEach iter_name: h iter_words: [{($ Id.VSub_DollarName '$new_list')}] do_arg_iter: F body: (command.DoGroup children: [ (command.Case to_match: {(DQ (' ') ($ Id.VSub_DollarName '$expected_list') (' '))} arms: [ (case_arm pat_list: [ {(Id.Lit_Star '*') (DQ (' ') ($ Id.VSub_DollarName '$h') (' ')) (Id.Lit_Star '*')} ] spids: [266 274 277 -1] ) (case_arm pat_list: [{(Id.Lit_Star '*')}] action: [ (C {(echo)} {(DQ ('Spurious expectations for ') ($ Id.VSub_DollarName '$h') (.))}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:rc) op: assign_op.Equal rhs: {(1)} spids: [294] ) ] ) ] spids: [280 282 298 -1] ) ] ) ] ) ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:306) arg_word: {($ Id.VSub_DollarName '$rc')} ) ] )