(command.CommandList
  children: [
    (C {<set>} {<-e>})
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-z>} {(DQ ($ Id.VSub_At '$@'))} 
                      {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ForEach
              iter_name: argument
              iter_words: [{(DQ ($ Id.VSub_At '$@'))}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.Case
                      to_match: {($ Id.VSub_DollarName '$argument')}
                      arms: [
                        (case_arm
                          pat_list: [{(DQ <-s>)}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:curlopts)
                                  op: assign_op.Equal
                                  rhs: {(DQ <-s>)}
                                  spids: [68]
                                )
                              ]
                            )
                          ]
                          spids: [62 65 74 -1]
                        )
                      ]
                    )
                  ]
                )
            )
          ]
          spids: [19 34]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<test>} {<Id.KW_Bang '!'>} {<-f>} {<'src/google/protobuf/stubs/common.h'>})
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.Simple
              words: [{<cat>}]
              redirects: [
                (redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})
                (redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {<__EOF__>}
                      here_end_span_id: 115
                      stdin_parts: [
                        <
'Could not find source code.  Make sure you are running this script from the\n'
                        >
                        <'root of the distribution tree.\n'>
                      ]
                    )
                )
              ]
              do_fork: T
            )
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          spids: [89 100]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: (C {<test>} {<Id.KW_Bang '!'>} {<-e>} {<gmock>})
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {<echo>} {(DQ <'Google Mock not present.  Fetching gmock-1.7.0 from the web...'>)})
            (C {<curl>} {($ Id.VSub_DollarName '$curlopts')} {<-L>} {<-O>} 
              {<https> <Id.Lit_Colon ':'> <'//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>} {($ Id.VSub_DollarName '$curlopts')} {<-L>} {<-O>} 
              {<https> <Id.Lit_Colon ':'> <'//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: [130 141]
        )
      ]
    )
    (C {<set>} {<-ex>})
    (C {<autoreconf>} {<-f>} {<-i>} {<-Wall> <Id.Lit_Comma ','> <no-obsolete>})
    (C {<rm>} {<-rf>} {<autom4te.cache>} {<config.h.in> <Id.Lit_TildeLike '~'>})
    (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>})
  ]
)