(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_description)
          op: Equal
          rhs: {(SQ <"test GIT_CEILING_DIRECTORIES">)}
          spids: [4]
        )
      ]
      spids: [4]
    )
    (C {(.)} {(./test-lib.sh)})
    (FuncDef
      name: test_prefix
      body: 
        (BraceGroup
          children: [
            (C {(test_expect_success)} {(DQ ($ VSub_Number "$1"))} 
              {
                (DQ ("test '") ($ VSub_Number "$2") ("' = ") 
                  (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("(git rev-parse --show-prefix)") 
                  (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">)
                )
              }
            )
          ]
          spids: [18]
        )
      spids: [14 17]
    )
    (FuncDef
      name: test_fail
      body: 
        (BraceGroup
          children: [
            (C {(test_expect_success)} {(DQ ($ VSub_Number "$1") (": prefix"))} 
              {(SQ <"\n"> <"\t\ttest_expect_code 128 git rev-parse --show-prefix\n"> <"\t">)}
            )
          ]
          spids: [46]
        )
      spids: [42 45]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:TRASH_ROOT)
          op: Equal
          rhs: {(DQ ($ VSub_Name "$PWD"))}
          spids: [65]
        )
      ]
      spids: [65]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:ROOT_PARENT)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [(C {(dirname)} {(DQ ($ VSub_Name "$TRASH_ROOT"))})]
                  )
                left_token: <Left_CommandSub "$(">
                spids: [71 77]
              )
            }
          spids: [70]
        )
      ]
      spids: [70]
    )
    (C {(unset)} {(GIT_CEILING_DIRECTORIES)})
    (C {(test_prefix)} {(no_ceil)} {(DQ )})
    (C {(export)} {(GIT_CEILING_DIRECTORIES)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:GIT_CEILING_DIRECTORIES)
          op: Equal
          rhs: {(DQ )}
          spids: [98]
        )
      ]
      spids: [98]
    )
    (C {(test_prefix)} {(ceil_empty)} {(DQ )})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:GIT_CEILING_DIRECTORIES)
          op: Equal
          rhs: {(DQ ($ VSub_Name "$ROOT_PARENT"))}
          spids: [110]
        )
      ]
      spids: [110]
    )
    (C {(test_prefix)} {(ceil_at_parent)} {(DQ )})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:GIT_CEILING_DIRECTORIES)
          op: Equal
          rhs: {(DQ ($ VSub_Name "$ROOT_PARENT") (/))}
          spids: [123]
        )
      ]
      spids: [123]
    )
    (C {(test_prefix)} {(ceil_at_parent_slash)} {(DQ )})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:GIT_CEILING_DIRECTORIES)
          op: Equal
          rhs: {(DQ ($ VSub_Name "$TRASH_ROOT"))}
          spids: [137]
        )
      ]
      spids: [137]
    )
    (C {(test_prefix)} {(ceil_at_trash)} {(DQ )})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:GIT_CEILING_DIRECTORIES)
          op: Equal
          rhs: {(DQ ($ VSub_Name "$TRASH_ROOT") (/))}
          spids: [150]
        )
      ]
      spids: [150]
    )
    (C {(test_prefix)} {(ceil_at_trash_slash)} {(DQ )})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:GIT_CEILING_DIRECTORIES)
          op: Equal
          rhs: {(DQ ($ VSub_Name "$TRASH_ROOT") (/sub))}
          spids: [164]
        )
      ]
      spids: [164]
    )
    (C {(test_prefix)} {(ceil_at_sub)} {(DQ )})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:GIT_CEILING_DIRECTORIES)
          op: Equal
          rhs: {(DQ ($ VSub_Name "$TRASH_ROOT") (/sub/))}
          spids: [178]
        )
      ]
      spids: [178]
    )
    (C {(test_prefix)} {(ceil_at_sub_slash)} {(DQ )})
    (If
      arms: [
        (if_arm
          cond: [(C {(test_have_prereq)} {(SYMLINKS)})]
          action: [(C {(ln)} {(-s)} {(sub)} {(top)})]
          spids: [-1 198]
        )
      ]
      spids: [-1 209]
    )
    (AndOr children:[(C {(mkdir)} {(-p)} {(sub/dir)})(C {(exit)} {(1)})] op_id:Op_DPipe)
    (AndOr children:[(C {(cd)} {(sub/dir)})(C {(exit)} {(1)})] op_id:Op_DPipe)
    (C {(unset)} {(GIT_CEILING_DIRECTORIES)})
    (C {(test_prefix)} {(subdir_no_ceil)} {(DQ (sub/dir/))})
    (C {(export)} {(GIT_CEILING_DIRECTORIES)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:GIT_CEILING_DIRECTORIES)
          op: Equal
          rhs: {(DQ )}
          spids: [253]
        )
      ]
      spids: [253]
    )
    (C {(test_prefix)} {(subdir_ceil_empty)} {(DQ (sub/dir/))})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:GIT_CEILING_DIRECTORIES)
          op: Equal
          rhs: {(DQ ($ VSub_Name "$TRASH_ROOT"))}
          spids: [266]
        )
      ]
      spids: [266]
    )
    (C {(test_fail)} {(subdir_ceil_at_trash)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:GIT_CEILING_DIRECTORIES)
          op: Equal
          rhs: {(DQ ($ VSub_Name "$TRASH_ROOT") (/))}
          spids: [276]
        )
      ]
      spids: [276]
    )
    (C {(test_fail)} {(subdir_ceil_at_trash_slash)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:GIT_CEILING_DIRECTORIES)
          op: Equal
          rhs: {(DQ ($ VSub_Name "$TRASH_ROOT") (/sub))}
          spids: [287]
        )
      ]
      spids: [287]
    )
    (C {(test_fail)} {(subdir_ceil_at_sub)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:GIT_CEILING_DIRECTORIES)
          op: Equal
          rhs: {(DQ ($ VSub_Name "$TRASH_ROOT") (/sub/))}
          spids: [298]
        )
      ]
      spids: [298]
    )
    (C {(test_fail)} {(subdir_ceil_at_sub_slash)})
    (If
      arms: [
        (if_arm
          cond: [(C {(test_have_prereq)} {(SYMLINKS)})]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:GIT_CEILING_DIRECTORIES)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name "$TRASH_ROOT") (/top))}
                  spids: [318]
                )
              ]
              spids: [318]
            )
            (C {(test_fail)} {(subdir_ceil_at_top)})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:GIT_CEILING_DIRECTORIES)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name "$TRASH_ROOT") (/top/))}
                  spids: [330]
                )
              ]
              spids: [330]
            )
            (C {(test_fail)} {(subdir_ceil_at_top_slash)})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:GIT_CEILING_DIRECTORIES)
                  op: Equal
                  rhs: {(DQ (":") ($ VSub_Name "$TRASH_ROOT") (/top))}
                  spids: [343]
                )
              ]
              spids: [343]
            )
            (C {(test_prefix)} {(subdir_ceil_at_top_no_resolve)} {(DQ (sub/dir/))})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:GIT_CEILING_DIRECTORIES)
                  op: Equal
                  rhs: {(DQ (":") ($ VSub_Name "$TRASH_ROOT") (/top/))}
                  spids: [360]
                )
              ]
              spids: [360]
            )
            (C {(test_prefix)} {(subdir_ceil_at_top_slash_no_resolve)} {(DQ (sub/dir/))})
          ]
          spids: [-1 315]
        )
      ]
      spids: [-1 376]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:GIT_CEILING_DIRECTORIES)
          op: Equal
          rhs: {(DQ ($ VSub_Name "$TRASH_ROOT") (/sub/dir))}
          spids: [379]
        )
      ]
      spids: [379]
    )
    (C {(test_prefix)} {(subdir_ceil_at_subdir)} {(DQ (sub/dir/))})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:GIT_CEILING_DIRECTORIES)
          op: Equal
          rhs: {(DQ ($ VSub_Name "$TRASH_ROOT") (/sub/dir/))}
          spids: [394]
        )
      ]
      spids: [394]
    )
    (C {(test_prefix)} {(subdir_ceil_at_subdir_slash)} {(DQ (sub/dir/))})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:GIT_CEILING_DIRECTORIES)
          op: Equal
          rhs: {(DQ ($ VSub_Name "$TRASH_ROOT") (/su))}
          spids: [410]
        )
      ]
      spids: [410]
    )
    (C {(test_prefix)} {(subdir_ceil_at_su)} {(DQ (sub/dir/))})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:GIT_CEILING_DIRECTORIES)
          op: Equal
          rhs: {(DQ ($ VSub_Name "$TRASH_ROOT") (/su/))}
          spids: [425]
        )
      ]
      spids: [425]
    )
    (C {(test_prefix)} {(subdir_ceil_at_su_slash)} {(DQ (sub/dir/))})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:GIT_CEILING_DIRECTORIES)
          op: Equal
          rhs: {(DQ ($ VSub_Name "$TRASH_ROOT") (/sub/di))}
          spids: [440]
        )
      ]
      spids: [440]
    )
    (C {(test_prefix)} {(subdir_ceil_at_sub_di)} {(DQ (sub/dir/))})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:GIT_CEILING_DIRECTORIES)
          op: Equal
          rhs: {(DQ ($ VSub_Name "$TRASH_ROOT") (/sub/di))}
          spids: [455]
        )
      ]
      spids: [455]
    )
    (C {(test_prefix)} {(subdir_ceil_at_sub_di_slash)} {(DQ (sub/dir/))})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:GIT_CEILING_DIRECTORIES)
          op: Equal
          rhs: {(DQ ($ VSub_Name "$TRASH_ROOT") (/subdi))}
          spids: [470]
        )
      ]
      spids: [470]
    )
    (C {(test_prefix)} {(subdir_ceil_at_subdi)} {(DQ (sub/dir/))})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:GIT_CEILING_DIRECTORIES)
          op: Equal
          rhs: {(DQ ($ VSub_Name "$TRASH_ROOT") (/subdi))}
          spids: [485]
        )
      ]
      spids: [485]
    )
    (C {(test_prefix)} {(subdir_ceil_at_subdi_slash)} {(DQ (sub/dir/))})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:GIT_CEILING_DIRECTORIES)
          op: Equal
          rhs: {(DQ ("/foo:") ($ VSub_Name "$TRASH_ROOT") (/sub))}
          spids: [501]
        )
      ]
      spids: [501]
    )
    (C {(test_fail)} {(second_of_two)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:GIT_CEILING_DIRECTORIES)
          op: Equal
          rhs: {(DQ ($ VSub_Name "$TRASH_ROOT") ("/sub:/bar"))}
          spids: [513]
        )
      ]
      spids: [513]
    )
    (C {(test_fail)} {(first_of_two)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:GIT_CEILING_DIRECTORIES)
          op: Equal
          rhs: {(DQ ("/foo:") ($ VSub_Name "$TRASH_ROOT") ("/sub:/bar"))}
          spids: [524]
        )
      ]
      spids: [524]
    )
    (C {(test_fail)} {(second_of_three)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:GIT_CEILING_DIRECTORIES)
          op: Equal
          rhs: {(DQ ($ VSub_Name "$TRASH_ROOT") (/sub))}
          spids: [537]
        )
      ]
      spids: [537]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:GIT_DIR) op:Equal rhs:{(../../.git)} spids:[543])]
      spids: [543]
    )
    (C {(export)} {(GIT_DIR)})
    (C {(test_prefix)} {(git_dir_specified)} {(DQ )})
    (C {(unset)} {(GIT_DIR)})
    (AndOr children:[(C {(cd)} {(../..)})(C {(exit)} {(1)})] op_id:Op_DPipe)
    (AndOr children:[(C {(mkdir)} {(-p)} {(s/d)})(C {(exit)} {(1)})] op_id:Op_DPipe)
    (AndOr children:[(C {(cd)} {(s/d)})(C {(exit)} {(1)})] op_id:Op_DPipe)
    (C {(unset)} {(GIT_CEILING_DIRECTORIES)})
    (C {(test_prefix)} {(sd_no_ceil)} {(DQ (s/d/))})
    (C {(export)} {(GIT_CEILING_DIRECTORIES)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:GIT_CEILING_DIRECTORIES)
          op: Equal
          rhs: {(DQ )}
          spids: [614]
        )
      ]
      spids: [614]
    )
    (C {(test_prefix)} {(sd_ceil_empty)} {(DQ (s/d/))})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:GIT_CEILING_DIRECTORIES)
          op: Equal
          rhs: {(DQ ($ VSub_Name "$TRASH_ROOT"))}
          spids: [627]
        )
      ]
      spids: [627]
    )
    (C {(test_fail)} {(sd_ceil_at_trash)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:GIT_CEILING_DIRECTORIES)
          op: Equal
          rhs: {(DQ ($ VSub_Name "$TRASH_ROOT") (/))}
          spids: [637]
        )
      ]
      spids: [637]
    )
    (C {(test_fail)} {(sd_ceil_at_trash_slash)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:GIT_CEILING_DIRECTORIES)
          op: Equal
          rhs: {(DQ ($ VSub_Name "$TRASH_ROOT") (/s))}
          spids: [648]
        )
      ]
      spids: [648]
    )
    (C {(test_fail)} {(sd_ceil_at_s)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:GIT_CEILING_DIRECTORIES)
          op: Equal
          rhs: {(DQ ($ VSub_Name "$TRASH_ROOT") (/s/))}
          spids: [659]
        )
      ]
      spids: [659]
    )
    (C {(test_fail)} {(sd_ceil_at_s_slash)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:GIT_CEILING_DIRECTORIES)
          op: Equal
          rhs: {(DQ ($ VSub_Name "$TRASH_ROOT") (/s/d))}
          spids: [670]
        )
      ]
      spids: [670]
    )
    (C {(test_prefix)} {(sd_ceil_at_sd)} {(DQ (s/d/))})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:GIT_CEILING_DIRECTORIES)
          op: Equal
          rhs: {(DQ ($ VSub_Name "$TRASH_ROOT") (/s/d/))}
          spids: [685]
        )
      ]
      spids: [685]
    )
    (C {(test_prefix)} {(sd_ceil_at_sd_slash)} {(DQ (s/d/))})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:GIT_CEILING_DIRECTORIES)
          op: Equal
          rhs: {(DQ ($ VSub_Name "$TRASH_ROOT") (/su))}
          spids: [701]
        )
      ]
      spids: [701]
    )
    (C {(test_prefix)} {(sd_ceil_at_su)} {(DQ (s/d/))})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:GIT_CEILING_DIRECTORIES)
          op: Equal
          rhs: {(DQ ($ VSub_Name "$TRASH_ROOT") (/su/))}
          spids: [716]
        )
      ]
      spids: [716]
    )
    (C {(test_prefix)} {(sd_ceil_at_su_slash)} {(DQ (s/d/))})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:GIT_CEILING_DIRECTORIES)
          op: Equal
          rhs: {(DQ ($ VSub_Name "$TRASH_ROOT") (/s/di))}
          spids: [731]
        )
      ]
      spids: [731]
    )
    (C {(test_prefix)} {(sd_ceil_at_s_di)} {(DQ (s/d/))})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:GIT_CEILING_DIRECTORIES)
          op: Equal
          rhs: {(DQ ($ VSub_Name "$TRASH_ROOT") (/s/di))}
          spids: [746]
        )
      ]
      spids: [746]
    )
    (C {(test_prefix)} {(sd_ceil_at_s_di_slash)} {(DQ (s/d/))})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:GIT_CEILING_DIRECTORIES)
          op: Equal
          rhs: {(DQ ($ VSub_Name "$TRASH_ROOT") (/sdi))}
          spids: [761]
        )
      ]
      spids: [761]
    )
    (C {(test_prefix)} {(sd_ceil_at_sdi)} {(DQ (s/d/))})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:GIT_CEILING_DIRECTORIES)
          op: Equal
          rhs: {(DQ ($ VSub_Name "$TRASH_ROOT") (/sdi))}
          spids: [776]
        )
      ]
      spids: [776]
    )
    (C {(test_prefix)} {(sd_ceil_at_sdi_slash)} {(DQ (s/d/))})
    (C {(test_done)})
  ]
)