(CommandList
  children: [
    (C {(Lit_Other ':')} 
      {
        (BracedVarSub
          token: <VSub_Name srcdir>
          suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(.)})
          spids: [5 9]
        )
      }
    )
    (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:too_big)
          op: Equal
          rhs: {(99999999999999999999999999999999999999999999999999999999999999999999)}
          spids: [24]
        )
      ]
      spids: [24]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:result) op:Equal rhs:{(0)} spids:[27])]
      spids: [27]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (SimpleCommand
          words: [{(test-xstrtol)} {(1)}]
          redirects: [
            (Redir op_id:Redir_DGreat fd:16777215 arg_word:{(out)} spids:[38])
            (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[42])
          ]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:result) op:Equal rhs:{(1)} spids:[47])]
          spids: [47]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (SimpleCommand
          words: [{(test-xstrtol)} {(-1)}]
          redirects: [
            (Redir op_id:Redir_DGreat fd:16777215 arg_word:{(out)} spids:[54])
            (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[58])
          ]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:result) op:Equal rhs:{(1)} spids:[63])]
          spids: [63]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (SimpleCommand
          words: [{(test-xstrtol)} {(1k)}]
          redirects: [
            (Redir op_id:Redir_DGreat fd:16777215 arg_word:{(out)} spids:[70])
            (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[74])
          ]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:result) op:Equal rhs:{(1)} spids:[79])]
          spids: [79]
        )
      ]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (SimpleCommand
          words: [{(test-xstrtol)} {(${ VSub_Name too_big) (h)}]
          redirects: [
            (Redir op_id:Redir_DGreat fd:16777215 arg_word:{(out)} spids:[89])
            (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[93])
          ]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:result) op:Equal rhs:{(1)} spids:[98])]
          spids: [98]
        )
      ]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (SimpleCommand
          words: [{(test-xstrtol)} {($ VSub_Name '$too_big')}]
          redirects: [
            (Redir op_id:Redir_DGreat fd:16777215 arg_word:{(out)} spids:[105])
            (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[109])
          ]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:result) op:Equal rhs:{(1)} spids:[114])]
          spids: [114]
        )
      ]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (SimpleCommand
          words: [{(test-xstrtol)} {(x)}]
          redirects: [
            (Redir op_id:Redir_DGreat fd:16777215 arg_word:{(out)} spids:[121])
            (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[125])
          ]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:result) op:Equal rhs:{(1)} spids:[130])]
          spids: [130]
        )
      ]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (SimpleCommand
          words: [{(test-xstrtol)} {(9x)}]
          redirects: [
            (Redir op_id:Redir_DGreat fd:16777215 arg_word:{(out)} spids:[137])
            (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[141])
          ]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:result) op:Equal rhs:{(1)} spids:[146])]
          spids: [146]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (SimpleCommand
          words: [{(test-xstrtol)} {(010)}]
          redirects: [
            (Redir op_id:Redir_DGreat fd:16777215 arg_word:{(out)} spids:[153])
            (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[157])
          ]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:result) op:Equal rhs:{(1)} spids:[162])]
          spids: [162]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (SimpleCommand
          words: [{(test-xstrtol)} {(MiB)}]
          redirects: [
            (Redir op_id:Redir_DGreat fd:16777215 arg_word:{(out)} spids:[172])
            (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[176])
          ]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:result) op:Equal rhs:{(1)} spids:[181])]
          spids: [181]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (SimpleCommand
          words: [{(test-xstrtoul)} {(1)}]
          redirects: [
            (Redir op_id:Redir_DGreat fd:16777215 arg_word:{(out)} spids:[192])
            (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[196])
          ]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:result) op:Equal rhs:{(1)} spids:[201])]
          spids: [201]
        )
      ]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (SimpleCommand
          words: [{(test-xstrtoul)} {(-1)}]
          redirects: [
            (Redir op_id:Redir_DGreat fd:16777215 arg_word:{(out)} spids:[208])
            (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[212])
          ]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:result) op:Equal rhs:{(1)} spids:[217])]
          spids: [217]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (SimpleCommand
          words: [{(test-xstrtoul)} {(1k)}]
          redirects: [
            (Redir op_id:Redir_DGreat fd:16777215 arg_word:{(out)} spids:[224])
            (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[228])
          ]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:result) op:Equal rhs:{(1)} spids:[233])]
          spids: [233]
        )
      ]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (SimpleCommand
          words: [{(test-xstrtoul)} {(${ VSub_Name too_big) (h)}]
          redirects: [
            (Redir op_id:Redir_DGreat fd:16777215 arg_word:{(out)} spids:[243])
            (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[247])
          ]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:result) op:Equal rhs:{(1)} spids:[252])]
          spids: [252]
        )
      ]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (SimpleCommand
          words: [{(test-xstrtoul)} {($ VSub_Name '$too_big')}]
          redirects: [
            (Redir op_id:Redir_DGreat fd:16777215 arg_word:{(out)} spids:[259])
            (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[263])
          ]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:result) op:Equal rhs:{(1)} spids:[268])]
          spids: [268]
        )
      ]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (SimpleCommand
          words: [{(test-xstrtoul)} {(x)}]
          redirects: [
            (Redir op_id:Redir_DGreat fd:16777215 arg_word:{(out)} spids:[275])
            (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[279])
          ]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:result) op:Equal rhs:{(1)} spids:[284])]
          spids: [284]
        )
      ]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (SimpleCommand
          words: [{(test-xstrtoul)} {(9x)}]
          redirects: [
            (Redir op_id:Redir_DGreat fd:16777215 arg_word:{(out)} spids:[291])
            (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[295])
          ]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:result) op:Equal rhs:{(1)} spids:[300])]
          spids: [300]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (SimpleCommand
          words: [{(test-xstrtoul)} {(010)}]
          redirects: [
            (Redir op_id:Redir_DGreat fd:16777215 arg_word:{(out)} spids:[307])
            (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[311])
          ]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:result) op:Equal rhs:{(1)} spids:[316])]
          spids: [316]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (SimpleCommand
          words: [{(test-xstrtoul)} {(MiB)}]
          redirects: [
            (Redir op_id:Redir_DGreat fd:16777215 arg_word:{(out)} spids:[323])
            (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[327])
          ]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:result) op:Equal rhs:{(1)} spids:[332])]
          spids: [332]
        )
      ]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (Pipeline
                  children: [
                    (C {(echo)} {(solaris)})
                    (C {(tr)} {(-d)} {(SQ <'\\r'>)})
                    (SimpleCommand
                      words: [{(grep)} {(solais)}]
                      redirects: [
                        (Redir
                          op_id: Redir_Great
                          fd: 16777215
                          arg_word: {(/dev/null)}
                          spids: [364]
                        )
                      ]
                    )
                  ]
                  negated: F
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:cr) op:Equal rhs:{(SQ <'\\015'>)} spids:[372])]
              spids: [372]
            )
          ]
          spids: [16777215 369]
        )
      ]
      else_action: [
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:cr) op:Equal rhs:{(SQ <'\\r'>)} spids:[380])]
          spids: [380]
        )
      ]
      spids: [377 385]
    )
    (SimpleCommand
      words: [{(tr)} {(-d)} {(DQ ($ VSub_Name '$cr'))}]
      redirects: [
        (Redir op_id:Redir_Less fd:16777215 arg_word:{(out)} spids:[402])
        (Redir op_id:Redir_Great fd:16777215 arg_word:{(k)} spids:[406])
      ]
      more_env: [(env_pair name:LC_ALL val:{(C)} spids:[391])]
    )
    (C {(mv)} {(k)} {(out)})
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:16777215 arg_word:{(expected)} spids:[422])
        (HereDoc
          op_id: Redir_DLess
          fd: 16777215
          body: 
            {
              (DQ ('1->1 ()\n') ('-1->-1 ()\n') ('1k->1024 ()\n') ("invalid suffix in X argument '") 
                (${ VSub_Name too_big) ("h'\n") ("X argument '") ($ VSub_Name '$too_big') ("' too large\n") ("invalid X argument 'x'\n") 
                ("invalid suffix in X argument '9x'\n") ('010->8 ()\n') ('MiB->1048576 ()\n') ('1->1 ()\n') ("invalid X argument '-1'\n") ('1k->1024 ()\n') 
                ("invalid suffix in X argument '") (${ VSub_Name too_big) ("h'\n") ("X argument '") ($ VSub_Name '$too_big') ("' too large\n") 
                ("invalid X argument 'x'\n") ("invalid suffix in X argument '9x'\n") ('010->8 ()\n') ('MiB->1048576 ()\n')
              )
            }
          do_expansion: True
          here_end: EOF
          was_filled: T
          spids: [426]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(compare)} {(expected)} {(out)})
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:result) op:Equal rhs:{(1)} spids:[469])]
          spids: [469]
        )
      ]
    )
    (C {(Exit)} {($ VSub_Name '$result')})
  ]
)