(CommandList
  children: [
    (C {(set)} {(-e)})
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:std) op:Equal rhs:{($ VSub_Number '$1')} spids:[54])]
      spids: [54]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:CC) op:Equal rhs:{($ VSub_Number '$2')} spids:[57])]
      spids: [57]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:expected_list)
          op: Equal
          rhs: {($ VSub_Number '$3')}
          spids: [60]
        )
      ]
      spids: [60]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:all_data_files)
          op: Equal
          rhs: {($ VSub_Number '$4')}
          spids: [63]
        )
      ]
      spids: [63]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:new_list) op:Equal rhs:{(EmptyPart)} spids:[67])]
      spids: [67]
    )
    (ForEach
      iter_name: f
      iter_words: [{($ VSub_Name '$all_data_files')}]
      do_arg_iter: F
      body: 
        (DoGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:h)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Name f>
                        suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(data) (Lit_Slash /)})
                        spids: [83 88]
                      )
                    }
                  spids: [82]
                )
              ]
              spids: [82]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:h)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Name h>
                        suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(-data)})
                        spids: [92 96]
                      )
                    }
                  spids: [91]
                )
              ]
              spids: [91]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:exp)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (C {($ VSub_Name '$CC')} {(-D) ($ VSub_Name '$std')} {(-x)} {(c)} {(-E)} 
                                    {($ VSub_Name '$f')}
                                  )
                                  (C {(sed)} {(-e)} {(SQ <'/^#/d'>)} {(-e)} {(SQ <'/^[ \t]*$/d'>)})
                                ]
                                negated: F
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [100 129]
                      )
                    }
                  spids: [99]
                )
              ]
              spids: [99]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$exp'))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:new_list)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name '$new_list') (' ') ($ VSub_Name '$h'))}
                          spids: [146]
                        )
                      ]
                      spids: [146]
                    )
                  ]
                  spids: [16777215 143]
                )
              ]
              spids: [16777215 154]
            )
          ]
          spids: [79 156]
        )
      spids: [75 77]
    )
    (C {(echo)} 
      {(DQ ('Headers with expectations for ') ($ VSub_Name '$std') (': ') ($ VSub_Name '$new_list'))}
    )
    (C {(echo)} {(DQ ('Expected list: ') ($ VSub_Name '$expected_list'))})
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:rc) op:Equal rhs:{(0)} spids:[176])]
      spids: [176]
    )
    (ForEach
      iter_name: h
      iter_words: [{($ VSub_Name '$expected_list')}]
      do_arg_iter: F
      body: 
        (DoGroup
          children: [
            (Case
              to_match: {(DQ (' ') ($ VSub_Name '$new_list') (' '))}
              arms: [
                (case_arm
                  pat_list: [{(Lit_Other '*') (DQ (' ') ($ VSub_Name '$h') (' ')) (Lit_Other '*')}]
                  spids: [203 211 214 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (C {(echo)} {(DQ ('Missing expectations for ') ($ VSub_Name '$h') (.))})
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:rc) op:Equal rhs:{(1)} spids:[231])]
                      spids: [231]
                    )
                  ]
                  spids: [217 219 235 16777215]
                )
              ]
              spids: [192 200 238]
            )
          ]
          spids: [189 240]
        )
      spids: [185 187]
    )
    (ForEach
      iter_name: h
      iter_words: [{($ VSub_Name '$new_list')}]
      do_arg_iter: F
      body: 
        (DoGroup
          children: [
            (Case
              to_match: {(DQ (' ') ($ VSub_Name '$expected_list') (' '))}
              arms: [
                (case_arm
                  pat_list: [{(Lit_Other '*') (DQ (' ') ($ VSub_Name '$h') (' ')) (Lit_Other '*')}]
                  spids: [266 274 277 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (C {(echo)} {(DQ ('Spurious expectations for ') ($ VSub_Name '$h') (.))})
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:rc) op:Equal rhs:{(1)} spids:[294])]
                      spids: [294]
                    )
                  ]
                  spids: [280 282 298 16777215]
                )
              ]
              spids: [255 263 301]
            )
          ]
          spids: [252 303]
        )
      spids: [248 250]
    )
    (ControlFlow token:<ControlFlow_Exit exit> arg_word:{($ VSub_Name '$rc')})
  ]
)