(CommandList
  children: [
    (C {(set)} {(-eu)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:OUTPUT)
          op: Equal
          rhs: {(DQ (${ VSub_Name PWD) (/) ($ VSub_Number "$1"))}
          spids: [53]
        )
      ]
      spids: [53]
    )
    (C {(shift)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:TMP_DIR)
          op: Equal
          rhs: 
            {
              (BracedVarSub
                token: <VSub_Name TMPDIR>
                suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(Lit_Slash /) (tmp)})
                spids: [66 71]
              )
            }
          spids: [65]
        )
      ]
      spids: [65]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:PACKAGE_DIR)
          op: Equal
          rhs: 
            {
              (DQ 
                (CommandSubPart
                  command_list: 
                    (CommandList
                      children: [
                        (C {(mktemp)} {(-d)} 
                          {
                            (BracedVarSub
                              token: <VSub_Name TMP_DIR>
                              suffix_op: (StringUnary op_id:VOp1_DPercent arg_word:{(Lit_Slash /)})
                              spids: [80 84]
                            ) (/bazel.XXXXXXXX)
                          }
                        )
                      ]
                    )
                  left_token: <Left_CommandSub "$(">
                  spids: [75 86]
                )
              )
            }
          spids: [73]
        )
      ]
      spids: [73]
    )
    (C {(trap)} 
      {
        (DQ ("rm -fr ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (${ VSub_Name PACKAGE_DIR) 
          (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">)
        )
      } {(EXIT)}
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:JAVA_SRC_DIR)
          op: Equal
          rhs: {(DQ (${ VSub_Name PACKAGE_DIR) (/derived/src/java))}
          spids: [102]
        )
      ]
      spids: [102]
    )
    (C {(mkdir)} {(-p)} {(DQ (${ VSub_Name JAVA_SRC_DIR))})
    (ForEach
      iter_name: i
      iter_words: [{($ VSub_Star "$*")}]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:JARFILE)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name PWD) (/) ($ VSub_Name "$i"))}
                  spids: [132]
                )
              ]
              spids: [132]
            )
            (Subshell
              child: 
                (AndOr
                  children: [
                    (C {(cd)} {(DQ (${ VSub_Name JAVA_SRC_DIR))})
                    (C {(jar)} {(xf)} {(DQ (${ VSub_Name JARFILE))})
                  ]
                  op_id: Op_DAmp
                )
              spids: [142 162]
            )
          ]
          spids: [129 164]
        )
      spids: [126 -1]
    )
    (C {(find)} {(DQ (${ VSub_Name PACKAGE_DIR))} {(-exec)} {(touch)} {(-t)} {(198001010000.00)} 
      {(SQ <"{}">)} {(SQ <"+">)}
    )
    (Subshell
      child: 
        (AndOr
          children: [
            (C {(cd)} {(DQ (${ VSub_Name PACKAGE_DIR))})
            (Pipeline
              children: [
                (C {(find)} {(.)} {(-type)} {(f)})
                (C {(sort)})
                (C {(zip)} {(-qDX) (Lit_Other "@")} {(DQ (${ VSub_Name OUTPUT))})
              ]
              negated: False
            )
          ]
          op_id: Op_DAmp
        )
      spids: [191 226]
    )
  ]
)