(command.CommandList
  children: [
    (C {<Id.Lit_Colon ':'>} 
      {
        (braced_var_sub
          token: <Id.VSub_Name srcdir>
          suffix_op: (suffix_op.Unary tok:<Id.VTest_Equals '='> arg_word:{<.>})
        )
      }
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: (C {<.>} {(DQ ($ Id.VSub_DollarName '$srcdir') <'/init.sh'>)})
          terminator: <Id.Op_Semi _>
        )
        (C {<path_prepend_>} {<.>})
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:LC_ALL)
          op: assign_op.Equal
          rhs: {<C>}
          spids: [27]
        )
      ]
    )
    (C {<export>} {<LC_ALL>})
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Pipeline
                      children: [
                        (C {<echo>} {<solaris>})
                        (C {<tr>} {<-d>} {(SQ <'\\r'>)})
                        (command.Simple
                          words: [{<grep>} {<solais>}]
                          redirects: [
                            (redir
                              op: <Id.Redir_Great '>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<'/dev/null'>}
                            )
                          ]
                          do_fork: T
                        )
                      ]
                      negated: F
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:cr)
                  op: assign_op.Equal
                  rhs: {(SQ <'\\015'>)}
                  spids: [71]
                )
              ]
            )
          ]
          spids: [41 68]
        )
      ]
      else_action: [
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:cr)
              op: assign_op.Equal
              rhs: {(SQ <'\\r'>)}
              spids: [79]
            )
          ]
        )
      ]
    )
    (command.Simple
      words: [{<tr>} {<Id.Lit_At '@'>} {(SQ <'\\177'>)}]
      redirects: [
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              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:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<in.tmp>})
      ]
      do_fork: T
    )
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {<EOF>}
              here_end_span_id: 128
              stdin_parts: [<'N\n'> <'Y\n'> <'Y\n'> <'N\n'> <'n\n'>]
            )
        )
        (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<xout.tmp>})
      ]
      do_fork: T
    )
    (command.ShAssignment
      pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:fail) op:assign_op.Equal rhs:{<0>} spids:[130])]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (command.Subshell
          child: 
            (command.CommandList
              children: [
                (command.Sentence child:(C {<test-yesno>}) terminator:<Id.Op_Semi _>)
                (command.Sentence
                  child: (C {<test-yesno>} {<3>})
                  terminator: <Id.Op_Semi _>
                )
                (C {<cat>})
              ]
            )
          redirects: [
            (redir op:<Id.Redir_Less '<'> loc:(redir_loc.Fd fd:0) arg:{<in.tmp>})
            (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<out1.tmp>})
          ]
        )
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:fail)
              op: assign_op.Equal
              rhs: {<1>}
              spids: [155]
            )
          ]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (command.Simple
          words: [{<tr>} {<-d>} {(DQ ($ Id.VSub_DollarName '$cr'))}]
          redirects: [
            (redir op:<Id.Redir_Less '<'> loc:(redir_loc.Fd fd:0) arg:{<out1.tmp>})
            (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<out.tmp>})
          ]
          more_env: [(env_pair name:LC_ALL val:{<C>} spids:[158])]
          do_fork: T
        )
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:fail)
              op: assign_op.Equal
              rhs: {<1>}
              spids: [179]
            )
          ]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {<cmp>} {<xout.tmp>} {<out.tmp>})
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:fail)
              op: assign_op.Equal
              rhs: {<1>}
              spids: [190]
            )
          ]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (command.Subshell
          child: 
            (command.CommandList
              children: [
                (command.Sentence
                  child: (C {<test-yesno>} {<3>})
                  terminator: <Id.Op_Semi _>
                )
                (command.Sentence child:(C {<test-yesno>}) terminator:<Id.Op_Semi _>)
                (C {<cat>})
              ]
            )
          redirects: [
            (redir op:<Id.Redir_Less '<'> loc:(redir_loc.Fd fd:0) arg:{<in.tmp>})
            (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<out1.tmp>})
          ]
        )
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:fail)
              op: assign_op.Equal
              rhs: {<1>}
              spids: [216]
            )
          ]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (command.Simple
          words: [{<tr>} {<-d>} {(DQ ($ Id.VSub_DollarName '$cr'))}]
          redirects: [
            (redir op:<Id.Redir_Less '<'> loc:(redir_loc.Fd fd:0) arg:{<out1.tmp>})
            (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<out.tmp>})
          ]
          more_env: [(env_pair name:LC_ALL val:{<C>} spids:[219])]
          do_fork: T
        )
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:fail)
              op: assign_op.Equal
              rhs: {<1>}
              spids: [240]
            )
          ]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {<cmp>} {<xout.tmp>} {<out.tmp>})
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:fail)
              op: assign_op.Equal
              rhs: {<1>}
              spids: [251]
            )
          ]
        )
      ]
    )
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {<EOF>}
              here_end_span_id: 270
              stdin_parts: [<'Y\n'> <'N\n'>]
            )
        )
        (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<xout.tmp>})
      ]
      do_fork: T
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (command.Pipeline
          children: [
            (C {<echo>} {<yes>})
            (command.Simple
              words: [{<test-yesno>} {<2>}]
              redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<out1.tmp>})]
              do_fork: T
            )
          ]
          negated: F
        )
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:fail)
              op: assign_op.Equal
              rhs: {<1>}
              spids: [287]
            )
          ]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (command.Simple
          words: [{<tr>} {<-d>} {(DQ ($ Id.VSub_DollarName '$cr'))}]
          redirects: [
            (redir op:<Id.Redir_Less '<'> loc:(redir_loc.Fd fd:0) arg:{<out1.tmp>})
            (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<out.tmp>})
          ]
          more_env: [(env_pair name:LC_ALL val:{<C>} spids:[290])]
          do_fork: T
        )
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:fail)
              op: assign_op.Equal
              rhs: {<1>}
              spids: [311]
            )
          ]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {<cmp>} {<xout.tmp>} {<out.tmp>})
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:fail)
              op: assign_op.Equal
              rhs: {<1>}
              spids: [322]
            )
          ]
        )
      ]
    )
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: (redir_param.HereDoc here_begin:{<EOF>} here_end_span_id:340 stdin_parts:[<'N\n'>])
        )
        (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<xout.tmp>})
      ]
      do_fork: T
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (command.Simple
          words: [{<test-yesno>}]
          redirects: [
            (redir op:<Id.Redir_Less '<'> loc:(redir_loc.Fd fd:0) arg:{<'/dev/null'>})
            (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<out1.tmp>})
          ]
          do_fork: T
        )
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:fail)
              op: assign_op.Equal
              rhs: {<1>}
              spids: [352]
            )
          ]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (command.Simple
          words: [{<tr>} {<-d>} {(DQ ($ Id.VSub_DollarName '$cr'))}]
          redirects: [
            (redir op:<Id.Redir_Less '<'> loc:(redir_loc.Fd fd:0) arg:{<out1.tmp>})
            (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<out.tmp>})
          ]
          more_env: [(env_pair name:LC_ALL val:{<C>} spids:[355])]
          do_fork: T
        )
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:fail)
              op: assign_op.Equal
              rhs: {<1>}
              spids: [376]
            )
          ]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {<cmp>} {<xout.tmp>} {<out.tmp>})
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:fail)
              op: assign_op.Equal
              rhs: {<1>}
              spids: [387]
            )
          ]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (command.Simple
          words: [{<test-yesno>} {<0>}]
          redirects: [
            (redir op:<Id.Redir_LessAnd '<&'> loc:(redir_loc.Fd fd:0) arg:{<->})
            (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<out1.tmp>})
            (redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<err.tmp>})
          ]
          do_fork: T
        )
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:fail)
              op: assign_op.Equal
              rhs: {<1>}
              spids: [411]
            )
          ]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (command.Simple
          words: [{<tr>} {<-d>} {(DQ ($ Id.VSub_DollarName '$cr'))}]
          redirects: [
            (redir op:<Id.Redir_Less '<'> loc:(redir_loc.Fd fd:0) arg:{<out1.tmp>})
            (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<out.tmp>})
          ]
          more_env: [(env_pair name:LC_ALL val:{<C>} spids:[414])]
          do_fork: T
        )
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:fail)
              op: assign_op.Equal
              rhs: {<1>}
              spids: [435]
            )
          ]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {<cmp>} {<xout.tmp>} {<out.tmp>})
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:fail)
              op: assign_op.Equal
              rhs: {<1>}
              spids: [446]
            )
          ]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {<test>} {<-s>} {<err.tmp>})
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:fail)
              op: assign_op.Equal
              rhs: {<1>}
              spids: [457]
            )
          ]
        )
      ]
    )
    (C {<Exit>} {($ Id.VSub_DollarName '$fail')})
  ]
)