(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:SRCDIR)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: (CommandList children:[(C {(atf_get_srcdir)})])
                left_token: <Left_CommandSub '$('>
                spids: [83 85]
              )
            }
          spids: [82]
        )
      ]
      spids: [82]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:TESTER)
          op: Equal
          rhs: {(DQ (${ VSub_Name SRCDIR) (/bsdcat_test))}
          spids: [87]
        )
      ]
      spids: [87]
    )
    (C {(export)} 
      {(Lit_VarLike 'BSDCAT=') 
        (CommandSubPart
          command_list: (CommandList children:[(C {(which)} {(bsdcat)})])
          left_token: <Left_CommandSub '$('>
          spids: [98 102]
        )
      }
    )
    (FuncDef
      name: check
      body: 
        (BraceGroup
          children: [
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:testcase)
                      op: Equal
                      rhs: {(${ VSub_Number 1)}
                      spids: [114]
                    )
                  ]
                  spids: [112]
                )
              terminator: <Op_Semi ';'>
            )
            (C {(shift)})
            (C {(atf_check)} {(-e)} {(ignore)} {(-o)} {(ignore)} {(-s)} 
              {(ControlFlow_Exit exit) (Lit_Other ':') (0)} {(${ VSub_Name TESTER)} {(-d)} {(-r)} {(DQ (${ VSub_Name SRCDIR))} {(-v)} {(DQ (${ VSub_Name testcase))}
            )
          ]
          spids: [109]
        )
      spids: [105 108]
    )
    (FuncDef
      name: atf_init_test_cases
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:testcases)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (SimpleCommand
                                    words: [{(${ VSub_Name TESTER)} {(-h)}]
                                    redirects: [
                                      (Redir
                                        op_id: Redir_GreatAnd
                                        fd: 2
                                        arg_word: {(1)}
                                        spids: [212]
                                      )
                                    ]
                                  )
                                  (C {(awk)} 
                                    {
                                      (SQ 
                                        <
'p != 0 && $1 ~ /^[0-9]+:/ { print $NF } /Available tests:/ { p=1 }'
                                        >
                                      )
                                    }
                                  )
                                ]
                                negated: F
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [205 222]
                      )
                    }
                  spids: [204]
                )
              ]
              spids: [204]
            )
            (ForEach
              iter_name: testcase
              iter_words: [{(${ VSub_Name testcases)}]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (C {(atf_test_case)} {(${ VSub_Name testcase)})
                    (C {(eval)} 
                      {
                        (DQ (${ VSub_Name testcase) ('_body() { check ') (${ VSub_Name testcase) ('; }'))
                      }
                    )
                    (C {(atf_add_test_case)} {(${ VSub_Name testcase)})
                  ]
                  spids: [236 267]
                )
              spids: [230 234]
            )
          ]
          spids: [189]
        )
      spids: [185 188]
    )
  ]
)