(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_)} {(.)})
      ]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:LC_ALL) op:Equal rhs:{(C)} spids:[27])]
      spids: [27]
    )
    (C {(export)} {(LC_ALL)})
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (Pipeline
                  children: [
                    (C {(echo)} {(solaris)})
                    (C {(tr)} {(-d)} {(SQ <'\\r'>)})
                    (SimpleCommand
                      words: [{(grep)} {(solais)}]
                      redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/dev/null)})]
                    )
                  ]
                  negated: F
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:cr) op:Equal rhs:{(SQ <'\\015'>)} spids:[71])]
              spids: [71]
            )
          ]
          spids: [16777215 68]
        )
      ]
      else_action: [
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:cr) op:Equal rhs:{(SQ <'\\r'>)} spids:[79])]
          spids: [79]
        )
      ]
      spids: [76 84]
    )
    (SimpleCommand
      words: [{(tr)} {(Lit_Other '@')} {(SQ <'\\177'>)}]
      redirects: [
        (HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(EOF)}
          here_end_span_id: 111
          stdin_parts: [
            ('nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn - entire line consumed\n')
            ('y@n - backspace does not change result\n')
            ('y\n')
            ('does not match either yesexpr or noexpr\n')
            ('n\n')
          ]
        )
        (Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(in.tmp)})
      ]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(EOF)}
          here_end_span_id: 128
          stdin_parts: [('N\n') ('Y\n') ('Y\n') ('N\n') ('n\n')]
        )
        (Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(xout.tmp)})
      ]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(0)} spids:[130])]
      spids: [130]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (Subshell
          child: 
            (CommandList
              children: [
                (Sentence child:(C {(test-yesno)}) terminator:<Op_Semi ';'>)
                (Sentence child:(C {(test-yesno)} {(3)}) terminator:<Op_Semi ';'>)
                (C {(cat)})
              ]
            )
          redirects: [
            (Redir op:<Redir_Less '<'> fd:16777215 arg_word:{(in.tmp)})
            (Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(out1.tmp)})
          ]
          spids: [133 143]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[155])]
          spids: [155]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (SimpleCommand
          words: [{(tr)} {(-d)} {(DQ ($ VSub_Name '$cr'))}]
          redirects: [
            (Redir op:<Redir_Less '<'> fd:16777215 arg_word:{(out1.tmp)})
            (Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(out.tmp)})
          ]
          more_env: [(env_pair name:LC_ALL val:{(C)} spids:[158])]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[179])]
          spids: [179]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(cmp)} {(xout.tmp)} {(out.tmp)})
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[190])]
          spids: [190]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (Subshell
          child: 
            (CommandList
              children: [
                (Sentence child:(C {(test-yesno)} {(3)}) terminator:<Op_Semi ';'>)
                (Sentence child:(C {(test-yesno)}) terminator:<Op_Semi ';'>)
                (C {(cat)})
              ]
            )
          redirects: [
            (Redir op:<Redir_Less '<'> fd:16777215 arg_word:{(in.tmp)})
            (Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(out1.tmp)})
          ]
          spids: [194 204]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[216])]
          spids: [216]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (SimpleCommand
          words: [{(tr)} {(-d)} {(DQ ($ VSub_Name '$cr'))}]
          redirects: [
            (Redir op:<Redir_Less '<'> fd:16777215 arg_word:{(out1.tmp)})
            (Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(out.tmp)})
          ]
          more_env: [(env_pair name:LC_ALL val:{(C)} spids:[219])]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[240])]
          spids: [240]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(cmp)} {(xout.tmp)} {(out.tmp)})
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[251])]
          spids: [251]
        )
      ]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(EOF)}
          here_end_span_id: 270
          stdin_parts: [('Y\n') ('N\n')]
        )
        (Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(xout.tmp)})
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (Pipeline
          children: [
            (C {(echo)} {(yes)})
            (SimpleCommand
              words: [{(test-yesno)} {(2)}]
              redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(out1.tmp)})]
            )
          ]
          negated: F
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[287])]
          spids: [287]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (SimpleCommand
          words: [{(tr)} {(-d)} {(DQ ($ VSub_Name '$cr'))}]
          redirects: [
            (Redir op:<Redir_Less '<'> fd:16777215 arg_word:{(out1.tmp)})
            (Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(out.tmp)})
          ]
          more_env: [(env_pair name:LC_ALL val:{(C)} spids:[290])]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[311])]
          spids: [311]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(cmp)} {(xout.tmp)} {(out.tmp)})
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[322])]
          spids: [322]
        )
      ]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(EOF)}
          here_end_span_id: 340
          stdin_parts: [('N\n')]
        )
        (Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(xout.tmp)})
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (SimpleCommand
          words: [{(test-yesno)}]
          redirects: [
            (Redir op:<Redir_Less '<'> fd:16777215 arg_word:{(/dev/null)})
            (Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(out1.tmp)})
          ]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[352])]
          spids: [352]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (SimpleCommand
          words: [{(tr)} {(-d)} {(DQ ($ VSub_Name '$cr'))}]
          redirects: [
            (Redir op:<Redir_Less '<'> fd:16777215 arg_word:{(out1.tmp)})
            (Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(out.tmp)})
          ]
          more_env: [(env_pair name:LC_ALL val:{(C)} spids:[355])]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[376])]
          spids: [376]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(cmp)} {(xout.tmp)} {(out.tmp)})
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[387])]
          spids: [387]
        )
      ]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (SimpleCommand
          words: [{(test-yesno)} {(0)}]
          redirects: [
            (Redir op:<Redir_LessAnd '<&'> fd:16777215 arg_word:{(-)})
            (Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(out1.tmp)})
            (Redir op:<Redir_Great '2>'> fd:2 arg_word:{(err.tmp)})
          ]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[411])]
          spids: [411]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (SimpleCommand
          words: [{(tr)} {(-d)} {(DQ ($ VSub_Name '$cr'))}]
          redirects: [
            (Redir op:<Redir_Less '<'> fd:16777215 arg_word:{(out1.tmp)})
            (Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(out.tmp)})
          ]
          more_env: [(env_pair name:LC_ALL val:{(C)} spids:[414])]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[435])]
          spids: [435]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(cmp)} {(xout.tmp)} {(out.tmp)})
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[446])]
          spids: [446]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(test)} {(-s)} {(err.tmp)})
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[457])]
          spids: [457]
        )
      ]
    )
    (C {(Exit)} {($ VSub_Name '$fail')})
  ]
)