(CommandList
  children: [
    (C {(set)} {(-e)})
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(KW_Bang '!')} {(-z)} {(DQ ($ VSub_At '$@'))} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (ForEach
              iter_name: argument
              iter_words: [{(DQ ($ VSub_At '$@'))}]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (Case
                      to_match: {($ VSub_Name '$argument')}
                      arms: [
                        (case_arm
                          pat_list: [{(DQ (-s))}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:curlopts)
                                  op: Equal
                                  rhs: {(DQ (-s))}
                                  spids: [68]
                                )
                              ]
                              spids: [68]
                            )
                          ]
                          spids: [63 65 74 16777215]
                        )
                      ]
                      spids: [51 55 77]
                    )
                  ]
                  spids: [48 80]
                )
              spids: [42 46]
            )
          ]
          spids: [16777215 34]
        )
      ]
      spids: [16777215 82]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(test)} {(KW_Bang '!')} {(-f)} {(src/google/protobuf/stubs/common.h)})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[105])
                (HereDoc
                  op_id: Redir_DLess
                  fd: 16777215
                  body: 
                    {
                      (DQ 
                        (
'Could not find source code.  Make sure you are running this script from the\n'
                        ) ('root of the distribution tree.\n')
                      )
                    }
                  do_expansion: True
                  here_end: __EOF__
                  was_filled: T
                  spids: [108]
                )
              ]
            )
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
          spids: [16777215 100]
        )
      ]
      spids: [16777215 120]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(test)} {(KW_Bang '!')} {(-e)} {(gmock)})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(echo)} {(DQ ('Google Mock not present.  Fetching gmock-1.7.0 from the web...'))})
            (C {(curl)} {($ VSub_Name '$curlopts')} {(-L)} {(-O)} 
              {(https) (Lit_Other ':') (//github.com/google/googlemock/archive/release-1.7.0.zip)}
            )
            (C {(unzip)} {(-q)} {(release-1.7.0.zip)})
            (C {(rm)} {(release-1.7.0.zip)})
            (C {(mv)} {(googlemock-release-1.7.0)} {(gmock)})
            (C {(curl)} {($ VSub_Name '$curlopts')} {(-L)} {(-O)} 
              {(https) (Lit_Other ':') (//github.com/google/googletest/archive/release-1.7.0.zip)}
            )
            (C {(unzip)} {(-q)} {(release-1.7.0.zip)})
            (C {(rm)} {(release-1.7.0.zip)})
            (C {(mv)} {(googletest-release-1.7.0)} {(gmock/gtest)})
          ]
          spids: [16777215 140]
        )
      ]
      spids: [16777215 214]
    )
    (C {(set)} {(-ex)})
    (C {(autoreconf)} {(-f)} {(-i)} {(-Wall) (Lit_Comma ',') (no-obsolete)})
    (C {(rm)} {(-rf)} {(autom4te.cache)} {(config.h.in) (Lit_Tilde '~')})
    (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)})
  ]
)