(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:16777215 arg_word:{(2)} spids:[75])]
            )
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
          spids: [16777215 64]
        )
      ]
      spids: [16777215 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:16777215 arg_word:{(2)} spids:[109])]
            )
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
          spids: [16777215 99]
        )
      ]
      spids: [16777215 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: F
      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: F
      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')})
  ]
)