(CommandList
  children: [
    (AndOr
      children: [
        (C {(Lit_Other "[")} {(-z)} {(DQ ($ VSub_Name "$TEST_SRCDIR"))} {(Lit_Other "]")})
        (BraceGroup
          children: [
            (Sentence
              child: 
                (SimpleCommand
                  words: [{(echo)} {(DQ ("TEST_SRCDIR not set!"))}]
                  redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[75])]
                )
              terminator: <Op_Semi ";">
            )
            (Sentence child:(C {(exit)} {(1)}) terminator:<Op_Semi ";">)
          ]
          spids: [67]
        )
      ]
      op_id: Op_DAmp
    )
    (AndOr
      children: [
        (C {(source)} {(DQ (${ VSub_Name TEST_SRCDIR) (/io_bazel/src/test/shell/unittest.bash))})
        (BraceGroup
          children: [
            (Sentence
              child: 
                (SimpleCommand
                  words: [{(echo)} {(DQ ("Failed to source unittest.bash"))}]
                  redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[111])]
                )
              terminator: <Op_Semi ";">
            )
            (Sentence child:(C {(exit)} {(1)}) terminator:<Op_Semi ";">)
          ]
          spids: [103]
        )
      ]
      op_id: Op_DPipe
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:PLATFORM)
          op: Equal
          rhs: 
            {
              (DQ 
                (CommandSubPart
                  command_list: 
                    (CommandList
                      children: [
                        (Pipeline
                          children: [(C {(uname)} {(-s)}) (C {(tr)} {(SQ <A-Z>)} {(SQ <a-z>)})]
                          negated: False
                        )
                      ]
                    )
                  left_token: <Left_CommandSub "$(">
                  spids: [128 144]
                )
              )
            }
          spids: [126]
        )
      ]
      spids: [126]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DBracket
                  expr: 
                    (BoolBinary
                      op_id: BoolBinary_GlobEqual
                      left: {(DQ ($ VSub_Name "$PLATFORM"))}
                      right: {(DQ (linux))}
                    )
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [
            (FuncDef
              name: statfmt
              body: 
                (BraceGroup
                  children: [(C {(stat)} {(-c)} {(DQ ("%s"))} {($ VSub_Number "$1")})]
                  spids: [173]
                )
              spids: [167 172]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:MD5SUM) op:Equal rhs:{(md5sum)} spids:[190])]
              spids: [190]
            )
          ]
          spids: [-1 164]
        )
      ]
      else_action: [
        (FuncDef
          name: statfmt
          body: 
            (BraceGroup
              children: [(C {(stat)} {(-f)} {(DQ ("%z"))} {($ VSub_Number "$1")})]
              spids: [202]
            )
          spids: [196 201]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:MD5SUM) op:Equal rhs:{(/sbin/md5)} spids:[219])]
          spids: [219]
        )
      ]
      spids: [193 222]
    )
  ]
)