(CommandList
  children: [
    (C {(Lit_Other ':')} 
      {
        (BracedVarSub
          token: <VSub_Name srcdir>
          suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(.)})
          spids: [5 9]
        )
      }
    )
    (CommandList
      children: [
        (Sentence
          child: (C {(.)} {(DQ ($ VSub_Name '$srcdir') (/init.sh))})
          terminator: <Op_Semi ';'>
        )
        (C {(path_prepend_)} {(.)})
      ]
    )
    (Pipeline
      children: [
        (SimpleCommand
          words: [{(test-perror)}]
          redirects: [
            (Redir op:<Redir_GreatAnd '2>&'> fd:2 arg_word:{(1)})
            (Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/dev/null)})
          ]
        )
        (SimpleCommand
          words: [{(tr)} {(-d)} {(SQ <'\\r'>)}]
          redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(t-perror.tmp)})]
          more_env: [(env_pair name:LC_ALL val:{(C)} spids:[37])]
        )
      ]
      negated: F
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (SimpleCommand
          words: [{(grep)} {(SQ <'[0-9]'>)} {(t-perror.tmp)}]
          redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/dev/null)})]
        )
        (C {(fail_)} {(DQ ('result should not contain a number'))})
      ]
    )
    (Pipeline
      children: [
        (SimpleCommand
          words: [{(test-perror)} {(SQ )}]
          redirects: [
            (Redir op:<Redir_GreatAnd '2>&'> fd:2 arg_word:{(1)})
            (Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/dev/null)})
          ]
        )
        (SimpleCommand
          words: [{(tr)} {(-d)} {(SQ <'\\r'>)}]
          redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(t-perror1.tmp)})]
          more_env: [(env_pair name:LC_ALL val:{(C)} spids:[91])]
        )
      ]
      negated: F
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(diff)} {(t-perror.tmp)} {(t-perror1.tmp)})
        (C {(fail_)} {(DQ ('empty prefix should behave like NULL argument'))})
      ]
    )
    (Pipeline
      children: [
        (SimpleCommand
          words: [{(test-perror)} {(foo)}]
          redirects: [
            (Redir op:<Redir_GreatAnd '2>&'> fd:2 arg_word:{(1)})
            (Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/dev/null)})
          ]
        )
        (SimpleCommand
          words: [{(tr)} {(-d)} {(SQ <'\\r'>)}]
          redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(t-perror3.tmp)})]
          more_env: [(env_pair name:LC_ALL val:{(C)} spids:[138])]
        )
      ]
      negated: F
    )
    (SimpleCommand
      words: [{(sed)} {(-e)} {(SQ <'s/^/foo: /'>)}]
      redirects: [
        (Redir op:<Redir_Less '<'> fd:16777215 arg_word:{(t-perror.tmp)})
        (Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(t-perror2.tmp)})
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(diff)} {(t-perror2.tmp)} {(t-perror3.tmp)})
        (C {(fail_)} {(DQ ('prefix applied incorrectly'))})
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (SimpleCommand
          words: [{(test-perror)}]
          redirects: [
            (Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(out)})
            (Redir op:<Redir_Great '2>'> fd:2 arg_word:{(/dev/null)})
          ]
        )
        (C {(fail_)} {(DQ ('unexpected exit status'))})
      ]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [(C {(test)} {(-s)} {(out)}) (C {(fail_)} {(DQ ('unexpected output'))})]
    )
    (C {(Exit)} {(0)})
  ]
)