(CommandList
  children: [
    (C {(cd)} 
      {
        (CommandSubPart
          command_list: (CommandList children:[(C {(dirname)} {($ VSub_Number "$0")})])
          left_token: <Left_CommandSub "$(">
          spids: [68 72]
        ) (/../../..)
      }
    )
    (C {(export)} 
      {(Lit_VarLike "JAVA_HOME=") 
        (CommandSubPart
          command_list: 
            (CommandList
              children: [
                (Pipeline
                  children: [
                    (SimpleCommand
                      words: [
                        {(ls)}
                        {(-d)}
                        {(c) (Lit_Other ":") (/Program) 
                          (EscapedLiteralPart token:<Lit_EscapedChar "\\ ">) (Files/Java/jdk) (Lit_Other "*")
                        }
                      ]
                      redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[97])]
                    )
                    (C {(head)} {(-n)} {(1)})
                  ]
                  negated: False
                )
              ]
            )
          left_token: <Left_CommandSub "$(">
          spids: [85 108]
        )
      }
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DBracket
                  expr: (BoolBinary op_id:BoolBinary_GlobDEqual left:{(DQ ($ VSub_Name "$JAVA_HOME"))} right:{(DQ )})
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [
            (SimpleCommand
              words: [
                {(echo)}
                {
                  (DQ ("JDK not found under c:") (EscapedLiteralPart token:<Lit_EscapedChar "\\\\">) 
                    ("Program Files") (EscapedLiteralPart token:<Lit_EscapedChar "\\\\">) (Java)
                  )
                }
              ]
              redirects: [(Redir op_id:Redir_GreatAnd fd:1 arg_word:{(2)} spids:[139])]
            )
            (C {(exit)} {(1)})
          ]
          spids: [-1 126]
        )
      ]
      spids: [-1 148]
    )
    (C {(export)} 
      {(Lit_VarLike "BAZEL_SH=") 
        (DQ 
          (CommandSubPart
            command_list: (CommandList children:[(C {(cygpath)} {(--windows)} {(/bin/bash)})])
            left_token: <Left_CommandSub "$(">
            spids: [158 164]
          )
        )
      }
    )
    (C {(export)} 
      {(Lit_VarLike "TMPDIR=") 
        (BracedVarSub
          token: <VSub_Name TMPDIR>
          suffix_op: 
            (StringUnary
              op_id: VTest_ColonHyphen
              arg_word: {("c:") (Lit_Slash /) (bazel_ci) (Lit_Slash /) (temp)}
            )
          spids: [170 178]
        )
      }
    )
    (C {(export)} {(Lit_VarLike "PATH=") (DQ (${ VSub_Name PATH) (":/c/python_27_amd64/files"))})
    (C {(mkdir)} {(-p)} {(DQ (${ VSub_Name TMPDIR))})
    (C {(echo)} {(DQ ("Bootstrapping Bazel"))})
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:retCode) op:Equal rhs:{(0)} spids:[216])]
      spids: [216]
    )
    (C {(source)} {(./scripts/ci/build.sh)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:release_label)
          op: Equal
          rhs: 
            {
              (DQ 
                (CommandSubPart
                  command_list: (CommandList children:[(C {(get_full_release_name)})])
                  left_token: <Left_CommandSub "$(">
                  spids: [232 234]
                )
              )
            }
          spids: [230]
        )
      ]
      spids: [230]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(Lit_Other "[")} {(-n)} {(DQ (${ VSub_Name release_label))} {(Lit_Other "]")})
              terminator: <Op_Semi ";">
            )
          ]
          action: [(C {(export)} {(Lit_VarLike "EMBED_LABEL=") (DQ (${ VSub_Name release_label))})]
          spids: [-1 253]
        )
      ]
      spids: [-1 265]
    )
    (AndOr
      children: [
        (C {(./compile.sh)} {(DQ ($ VSub_Star "$*"))})
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:retCode)
              op: Equal
              rhs: {($ VSub_QMark "$?")}
              spids: [275]
            )
          ]
          spids: [275]
        )
      ]
      op_id: Op_DPipe
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DParen
                  child: 
                    (ArithBinary
                      op_id: Arith_NEqual
                      left: (ArithWord w:{($ VSub_Name "$retCode")})
                      right: (ArithWord w:{(Lit_Digits 0)})
                    )
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [
            (SimpleCommand
              words: [{(echo)} {(DQ ($ VSub_Name "$retCode"))}]
              redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(.unstable)} spids:[301])]
            )
            (C {(exit)} {(0)})
          ]
          spids: [-1 292]
        )
      ]
      spids: [-1 310]
    )
    (C {(mkdir)} {(-p)} {(output/ci)})
    (C {(cp)} {(output/bazel.exe)} 
      {(output/ci/bazel-) 
        (CommandSubPart
          command_list: (CommandList children:[(C {(get_full_release_name)})])
          left_token: <Left_CommandSub "$(">
          spids: [327 329]
        ) (.exe)
      }
    )
    (C {(zip)} {(-j)} 
      {(output/ci/bazel-) 
        (CommandSubPart
          command_list: (CommandList children:[(C {(get_full_release_name)})])
          left_token: <Left_CommandSub "$(">
          spids: [337 339]
        ) (.zip)
      } {(output/bazel.exe)}
    )
    (C {(echo)} {(DQ ("Running tests"))})
    (C {(./output/bazel)} {(test)} {(-k)} {(--test_output) (Lit_Other "=") (all)} {(--test_tag_filters)} 
      {(-no_windows)} {(//src/test/shell/bazel) (Lit_Other ":") (bazel_windows_example_test)} {(//src/test/java/...)}
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:retCode) op:Equal rhs:{($ VSub_QMark "$?")} spids:[377])]
      spids: [377]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DParen
                  child: 
                    (ArithBinary
                      op_id: Arith_NEqual
                      left: (ArithWord w:{($ VSub_Name "$retCode")})
                      right: (ArithWord w:{(Lit_Digits 0)})
                    )
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [
            (SimpleCommand
              words: [{(echo)} {(DQ ($ VSub_Name "$retCode"))}]
              redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(.unstable)} spids:[407])]
            )
          ]
          spids: [-1 398]
        )
      ]
      spids: [-1 411]
    )
  ]
)