(CommandList
  children: [
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other "[")} {(DQ ($ VSub_Number "$1"))} {(Lit_Other "=") (Lit_Other "=")} {(DQ )} 
                  {(Lit_Other "]")}
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [
            (SimpleCommand
              words: [{(echo)} {(DQ ("USAGE:  ") ($ VSub_Number "$0") (" DISTFILE"))}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[75])]
            )
            (C {(exit)} {(1)})
          ]
          spids: [-1 64]
        )
      ]
      spids: [-1 83]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other "[")} {(KW_Bang "!")} {(-e)} {($ VSub_Number "$1")} {(Lit_Other "]")})
              terminator: <Op_Semi ";">
            )
          ]
          action: [
            (SimpleCommand
              words: [{(echo)} {($ VSub_Number "$1") (DQ (": File not found."))}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[109])]
            )
            (C {(exit)} {(1)})
          ]
          spids: [-1 99]
        )
      ]
      spids: [-1 117]
    )
    (C {(set)} {(-ex)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:LANGUAGES)
          op: Equal
          rhs: {(DQ ("cpp csharp java javanano js objectivec python ruby php"))}
          spids: [125]
        )
      ]
      spids: [125]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:BASENAME)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [(C {(basename)} {($ VSub_Number "$1")} {(.tar.gz)})]
                  )
                left_token: <Left_Backtick "`">
                spids: [131 137]
              )
            }
          spids: [130]
        )
      ]
      spids: [130]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:VERSION)
          op: Equal
          rhs: 
            {
              (BracedVarSub
                token: <VSub_Name BASENAME>
                suffix_op: (Slice begin:(ArithWord w:{(Lit_Digits 9)}))
                spids: [140 144]
              )
            }
          spids: [139]
        )
      ]
      spids: [139]
    )
    (C {(mkdir)} {(dist)})
    (C {(cp)} {($ VSub_Number "$1")} {(dist)})
    (C {(cd)} {(dist)})
    (C {(tar)} {(zxvf)} {($ VSub_Name "$BASENAME") (.tar.gz)})
    (C {(rm)} {($ VSub_Name "$BASENAME") (.tar.gz)})
    (C {(chmod)} {(-R)} {(u) (Lit_Other "+") (w)} {($ VSub_Name "$BASENAME")})
    (C {(cd)} {($ VSub_Name "$BASENAME")})
    (ForEach
      iter_name: LANG
      iter_words: [{($ VSub_Name "$LANGUAGES")}]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (C {(./configure)} {(Lit_VarLike "DIST_LANG=") ($ VSub_Name "$LANG")})
            (C {(make)} {(dist-gzip)})
            (C {(mv)} {($ VSub_Name "$BASENAME") (.tar.gz)} 
              {(../protobuf-) ($ VSub_Name "$LANG") (-) ($ VSub_Name "$VERSION") (.tar.gz)}
            )
          ]
          spids: [204 233]
        )
      spids: [200 202]
    )
    (C {(todos)} {(Lit_Other "*") (.txt)} {(Lit_Other "*") (/) (Lit_Other "*") (.txt)})
    (ForEach
      iter_name: LANG
      iter_words: [{($ VSub_Name "$LANGUAGES")}]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (C {(./configure)} {(Lit_VarLike "DIST_LANG=") ($ VSub_Name "$LANG")})
            (C {(make)} {(dist-zip)})
            (C {(mv)} {($ VSub_Name "$BASENAME") (.zip)} 
              {(../protobuf-) ($ VSub_Name "$LANG") (-) ($ VSub_Name "$VERSION") (.zip)}
            )
          ]
          spids: [262 291]
        )
      spids: [258 260]
    )
    (C {(cd)} {(..)})
    (C {(rm)} {(-rf)} {($ VSub_Name "$BASENAME")})
  ]
)