(command.CommandList
  children: [
    (command.ShAssignment
      left: <Id.Lit_VarLike 'test_description='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'test_description='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'test_description='> name:test_description)
          op: assign_op.Equal
          rhs: {(SQ <'test GIT_CEILING_DIRECTORIES'>)}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <.>
      more_env: []
      words: [{<.>} {<'./test-lib.sh'>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <test_prefix>
      name: test_prefix
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <test_expect_success>
              more_env: []
              words: [
                {<test_expect_success>}
                {(DQ ($ Id.VSub_Number 1))}
                {
                  (DQ <'test \''> ($ Id.VSub_Number 2) <'\' = '> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'(git rev-parse --show-prefix)'> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    )
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <test_fail>
      name: test_fail
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <test_expect_success>
              more_env: []
              words: [
                {<test_expect_success>}
                {(DQ ($ Id.VSub_Number 1) <': prefix'>)}
                {(SQ <'\n'> <'\t\ttest_expect_code 128 git rev-parse --show-prefix\n'> <'\t'>)}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'TRASH_ROOT='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'TRASH_ROOT='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TRASH_ROOT='> name:TRASH_ROOT)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName PWD))}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'ROOT_PARENT='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'ROOT_PARENT='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ROOT_PARENT='> name:ROOT_PARENT)
          op: assign_op.Equal
          rhs: 
            {
              (CommandSub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (command.Simple
                    blame_tok: <dirname>
                    more_env: []
                    words: [{<dirname>} {(DQ ($ Id.VSub_DollarName TRASH_ROOT))}]
                    redirects: []
                    do_fork: T
                  )
                right: <Id.Eof_RParen _>
              )
            }
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <unset>
      more_env: []
      words: [{<unset>} {<GIT_CEILING_DIRECTORIES>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_prefix>
      more_env: []
      words: [{<test_prefix>} {<no_ceil>} {(DQ )}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <export>
      more_env: []
      words: [{<export>} {<GIT_CEILING_DIRECTORIES>}]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
              name: GIT_CEILING_DIRECTORIES
            )
          op: assign_op.Equal
          rhs: {(DQ )}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <test_prefix>
      more_env: []
      words: [{<test_prefix>} {<ceil_empty>} {(DQ )}]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
              name: GIT_CEILING_DIRECTORIES
            )
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName ROOT_PARENT))}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <test_prefix>
      more_env: []
      words: [{<test_prefix>} {<ceil_at_parent>} {(DQ )}]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
              name: GIT_CEILING_DIRECTORIES
            )
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName ROOT_PARENT) <'/'>)}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <test_prefix>
      more_env: []
      words: [{<test_prefix>} {<ceil_at_parent_slash>} {(DQ )}]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
              name: GIT_CEILING_DIRECTORIES
            )
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName TRASH_ROOT))}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <test_prefix>
      more_env: []
      words: [{<test_prefix>} {<ceil_at_trash>} {(DQ )}]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
              name: GIT_CEILING_DIRECTORIES
            )
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName TRASH_ROOT) <'/'>)}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <test_prefix>
      more_env: []
      words: [{<test_prefix>} {<ceil_at_trash_slash>} {(DQ )}]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
              name: GIT_CEILING_DIRECTORIES
            )
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName TRASH_ROOT) <'/sub'>)}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <test_prefix>
      more_env: []
      words: [{<test_prefix>} {<ceil_at_sub>} {(DQ )}]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
              name: GIT_CEILING_DIRECTORIES
            )
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName TRASH_ROOT) <'/sub/'>)}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <test_prefix>
      more_env: []
      words: [{<test_prefix>} {<ceil_at_sub_slash>} {(DQ )}]
      redirects: []
      do_fork: T
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Simple
                  blame_tok: <test_have_prereq>
                  more_env: []
                  words: [{<test_have_prereq>} {<SYMLINKS>}]
                  redirects: []
                  do_fork: T
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <ln>
              more_env: []
              words: [{<ln>} {<-s>} {<sub>} {<top>}]
              redirects: []
              do_fork: T
            )
          ]
          spids: [192 198]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <mkdir>
          more_env: []
          words: [{<mkdir>} {<-p>} {<'sub/dir'>}]
          redirects: []
          do_fork: T
        )
        (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
      ]
      ops: [<Id.Op_DPipe _>]
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <cd>
          more_env: []
          words: [{<cd>} {<'sub/dir'>}]
          redirects: []
          do_fork: T
        )
        (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
      ]
      ops: [<Id.Op_DPipe _>]
    )
    (command.Simple
      blame_tok: <unset>
      more_env: []
      words: [{<unset>} {<GIT_CEILING_DIRECTORIES>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_prefix>
      more_env: []
      words: [{<test_prefix>} {<subdir_no_ceil>} {(DQ <'sub/dir/'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <export>
      more_env: []
      words: [{<export>} {<GIT_CEILING_DIRECTORIES>}]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
              name: GIT_CEILING_DIRECTORIES
            )
          op: assign_op.Equal
          rhs: {(DQ )}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <test_prefix>
      more_env: []
      words: [{<test_prefix>} {<subdir_ceil_empty>} {(DQ <'sub/dir/'>)}]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
              name: GIT_CEILING_DIRECTORIES
            )
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName TRASH_ROOT))}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <test_fail>
      more_env: []
      words: [{<test_fail>} {<subdir_ceil_at_trash>}]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
              name: GIT_CEILING_DIRECTORIES
            )
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName TRASH_ROOT) <'/'>)}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <test_fail>
      more_env: []
      words: [{<test_fail>} {<subdir_ceil_at_trash_slash>}]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
              name: GIT_CEILING_DIRECTORIES
            )
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName TRASH_ROOT) <'/sub'>)}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <test_fail>
      more_env: []
      words: [{<test_fail>} {<subdir_ceil_at_sub>}]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
              name: GIT_CEILING_DIRECTORIES
            )
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName TRASH_ROOT) <'/sub/'>)}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <test_fail>
      more_env: []
      words: [{<test_fail>} {<subdir_ceil_at_sub_slash>}]
      redirects: []
      do_fork: T
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Simple
                  blame_tok: <test_have_prereq>
                  more_env: []
                  words: [{<test_have_prereq>} {<SYMLINKS>}]
                  redirects: []
                  do_fork: T
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
                      name: GIT_CEILING_DIRECTORIES
                    )
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName TRASH_ROOT) <'/top'>)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <test_fail>
              more_env: []
              words: [{<test_fail>} {<subdir_ceil_at_top>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
                      name: GIT_CEILING_DIRECTORIES
                    )
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName TRASH_ROOT) <'/top/'>)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <test_fail>
              more_env: []
              words: [{<test_fail>} {<subdir_ceil_at_top_slash>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
                      name: GIT_CEILING_DIRECTORIES
                    )
                  op: assign_op.Equal
                  rhs: {(DQ <':'> ($ Id.VSub_DollarName TRASH_ROOT) <'/top'>)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <test_prefix>
              more_env: []
              words: [{<test_prefix>} {<subdir_ceil_at_top_no_resolve>} {(DQ <'sub/dir/'>)}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
                      name: GIT_CEILING_DIRECTORIES
                    )
                  op: assign_op.Equal
                  rhs: {(DQ <':'> ($ Id.VSub_DollarName TRASH_ROOT) <'/top/'>)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <test_prefix>
              more_env: []
              words: [{<test_prefix>} {<subdir_ceil_at_top_slash_no_resolve>} {(DQ <'sub/dir/'>)}]
              redirects: []
              do_fork: T
            )
          ]
          spids: [309 315]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
              name: GIT_CEILING_DIRECTORIES
            )
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName TRASH_ROOT) <'/sub/dir'>)}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <test_prefix>
      more_env: []
      words: [{<test_prefix>} {<subdir_ceil_at_subdir>} {(DQ <'sub/dir/'>)}]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
              name: GIT_CEILING_DIRECTORIES
            )
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName TRASH_ROOT) <'/sub/dir/'>)}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <test_prefix>
      more_env: []
      words: [{<test_prefix>} {<subdir_ceil_at_subdir_slash>} {(DQ <'sub/dir/'>)}]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
              name: GIT_CEILING_DIRECTORIES
            )
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName TRASH_ROOT) <'/su'>)}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <test_prefix>
      more_env: []
      words: [{<test_prefix>} {<subdir_ceil_at_su>} {(DQ <'sub/dir/'>)}]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
              name: GIT_CEILING_DIRECTORIES
            )
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName TRASH_ROOT) <'/su/'>)}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <test_prefix>
      more_env: []
      words: [{<test_prefix>} {<subdir_ceil_at_su_slash>} {(DQ <'sub/dir/'>)}]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
              name: GIT_CEILING_DIRECTORIES
            )
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName TRASH_ROOT) <'/sub/di'>)}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <test_prefix>
      more_env: []
      words: [{<test_prefix>} {<subdir_ceil_at_sub_di>} {(DQ <'sub/dir/'>)}]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
              name: GIT_CEILING_DIRECTORIES
            )
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName TRASH_ROOT) <'/sub/di'>)}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <test_prefix>
      more_env: []
      words: [{<test_prefix>} {<subdir_ceil_at_sub_di_slash>} {(DQ <'sub/dir/'>)}]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
              name: GIT_CEILING_DIRECTORIES
            )
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName TRASH_ROOT) <'/subdi'>)}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <test_prefix>
      more_env: []
      words: [{<test_prefix>} {<subdir_ceil_at_subdi>} {(DQ <'sub/dir/'>)}]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
              name: GIT_CEILING_DIRECTORIES
            )
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName TRASH_ROOT) <'/subdi'>)}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <test_prefix>
      more_env: []
      words: [{<test_prefix>} {<subdir_ceil_at_subdi_slash>} {(DQ <'sub/dir/'>)}]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
              name: GIT_CEILING_DIRECTORIES
            )
          op: assign_op.Equal
          rhs: {(DQ <'/foo:'> ($ Id.VSub_DollarName TRASH_ROOT) <'/sub'>)}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <test_fail>
      more_env: []
      words: [{<test_fail>} {<second_of_two>}]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
              name: GIT_CEILING_DIRECTORIES
            )
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName TRASH_ROOT) <'/sub:/bar'>)}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <test_fail>
      more_env: []
      words: [{<test_fail>} {<first_of_two>}]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
              name: GIT_CEILING_DIRECTORIES
            )
          op: assign_op.Equal
          rhs: {(DQ <'/foo:'> ($ Id.VSub_DollarName TRASH_ROOT) <'/sub:/bar'>)}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <test_fail>
      more_env: []
      words: [{<test_fail>} {<second_of_three>}]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
              name: GIT_CEILING_DIRECTORIES
            )
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName TRASH_ROOT) <'/sub'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GIT_DIR='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GIT_DIR='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'GIT_DIR='> name:GIT_DIR)
          op: assign_op.Equal
          rhs: {<'../../.git'>}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <export>
      more_env: []
      words: [{<export>} {<GIT_DIR>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_prefix>
      more_env: []
      words: [{<test_prefix>} {<git_dir_specified>} {(DQ )}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <unset>
      more_env: []
      words: [{<unset>} {<GIT_DIR>}]
      redirects: []
      do_fork: T
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <cd>
          more_env: []
          words: [{<cd>} {<'../..'>}]
          redirects: []
          do_fork: T
        )
        (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
      ]
      ops: [<Id.Op_DPipe _>]
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <mkdir>
          more_env: []
          words: [{<mkdir>} {<-p>} {<'s/d'>}]
          redirects: []
          do_fork: T
        )
        (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
      ]
      ops: [<Id.Op_DPipe _>]
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <cd>
          more_env: []
          words: [{<cd>} {<'s/d'>}]
          redirects: []
          do_fork: T
        )
        (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
      ]
      ops: [<Id.Op_DPipe _>]
    )
    (command.Simple
      blame_tok: <unset>
      more_env: []
      words: [{<unset>} {<GIT_CEILING_DIRECTORIES>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_prefix>
      more_env: []
      words: [{<test_prefix>} {<sd_no_ceil>} {(DQ <'s/d/'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <export>
      more_env: []
      words: [{<export>} {<GIT_CEILING_DIRECTORIES>}]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
              name: GIT_CEILING_DIRECTORIES
            )
          op: assign_op.Equal
          rhs: {(DQ )}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <test_prefix>
      more_env: []
      words: [{<test_prefix>} {<sd_ceil_empty>} {(DQ <'s/d/'>)}]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
              name: GIT_CEILING_DIRECTORIES
            )
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName TRASH_ROOT))}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <test_fail>
      more_env: []
      words: [{<test_fail>} {<sd_ceil_at_trash>}]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
              name: GIT_CEILING_DIRECTORIES
            )
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName TRASH_ROOT) <'/'>)}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <test_fail>
      more_env: []
      words: [{<test_fail>} {<sd_ceil_at_trash_slash>}]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
              name: GIT_CEILING_DIRECTORIES
            )
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName TRASH_ROOT) <'/s'>)}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <test_fail>
      more_env: []
      words: [{<test_fail>} {<sd_ceil_at_s>}]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
              name: GIT_CEILING_DIRECTORIES
            )
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName TRASH_ROOT) <'/s/'>)}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <test_fail>
      more_env: []
      words: [{<test_fail>} {<sd_ceil_at_s_slash>}]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
              name: GIT_CEILING_DIRECTORIES
            )
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName TRASH_ROOT) <'/s/d'>)}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <test_prefix>
      more_env: []
      words: [{<test_prefix>} {<sd_ceil_at_sd>} {(DQ <'s/d/'>)}]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
              name: GIT_CEILING_DIRECTORIES
            )
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName TRASH_ROOT) <'/s/d/'>)}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <test_prefix>
      more_env: []
      words: [{<test_prefix>} {<sd_ceil_at_sd_slash>} {(DQ <'s/d/'>)}]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
              name: GIT_CEILING_DIRECTORIES
            )
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName TRASH_ROOT) <'/su'>)}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <test_prefix>
      more_env: []
      words: [{<test_prefix>} {<sd_ceil_at_su>} {(DQ <'s/d/'>)}]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
              name: GIT_CEILING_DIRECTORIES
            )
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName TRASH_ROOT) <'/su/'>)}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <test_prefix>
      more_env: []
      words: [{<test_prefix>} {<sd_ceil_at_su_slash>} {(DQ <'s/d/'>)}]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
              name: GIT_CEILING_DIRECTORIES
            )
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName TRASH_ROOT) <'/s/di'>)}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <test_prefix>
      more_env: []
      words: [{<test_prefix>} {<sd_ceil_at_s_di>} {(DQ <'s/d/'>)}]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
              name: GIT_CEILING_DIRECTORIES
            )
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName TRASH_ROOT) <'/s/di'>)}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <test_prefix>
      more_env: []
      words: [{<test_prefix>} {<sd_ceil_at_s_di_slash>} {(DQ <'s/d/'>)}]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
              name: GIT_CEILING_DIRECTORIES
            )
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName TRASH_ROOT) <'/sdi'>)}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <test_prefix>
      more_env: []
      words: [{<test_prefix>} {<sd_ceil_at_sdi>} {(DQ <'s/d/'>)}]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'GIT_CEILING_DIRECTORIES='>
              name: GIT_CEILING_DIRECTORIES
            )
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName TRASH_ROOT) <'/sdi'>)}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <test_prefix>
      more_env: []
      words: [{<test_prefix>} {<sd_ceil_at_sdi_slash>} {(DQ <'s/d/'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_done>
      more_env: []
      words: [{<test_done>}]
      redirects: []
      do_fork: T
    )
  ]
)