(command.CommandList
  children: [
    (command.Simple blame_tok:<set> more_env:[] words:[{<set>} {<-e>}] redirects:[] do_fork:T)
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <Id.Lit_LBracket '['>
                      more_env: []
                      words: [
                        {<Id.Lit_LBracket '['>}
                        {<Id.KW_Bang '!'>}
                        {<-z>}
                        {(DQ ($ Id.VSub_At '@'))}
                        {<Id.Lit_RBracket ']'>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [argument]
              iterable: (for_iter.Words words:[{(DQ ($ Id.VSub_At '@'))}])
              semi_tok: <Id.Op_Semi _>
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName argument)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Left_DoubleQuote '"'>
                          pattern: (pat.Words words:[{(DQ <-s>)}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'curlopts='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'curlopts='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'curlopts='>
                                      name: curlopts
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ <-s>)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
          ]
          spids: [19 34]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <test>
                      more_env: []
                      words: [{<test>} {<Id.KW_Bang '!'>} {<-f>} {<'src/google/protobuf/stubs/common.h'>}]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <cat>
              more_env: []
              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_tok: <Id.Undefined_Tok ''>
                      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 keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          spids: [89 100]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <test>
                      more_env: []
                      words: [{<test>} {<Id.KW_Bang '!'>} {<-e>} {<gmock>}]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'Google Mock not present.  Fetching gmock-1.7.0 from the web...'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <curl>
              more_env: []
              words: [
                {<curl>}
                {($ Id.VSub_DollarName curlopts)}
                {<-L>}
                {<-O>}
                {<https> <Id.Lit_Colon ':'> 
                  <'//github.com/google/googlemock/archive/release-1.7.0.zip'>
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <unzip>
              more_env: []
              words: [{<unzip>} {<-q>} {<release-1.7.0.zip>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <rm>
              more_env: []
              words: [{<rm>} {<release-1.7.0.zip>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <mv>
              more_env: []
              words: [{<mv>} {<googlemock-release-1.7.0>} {<gmock>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <curl>
              more_env: []
              words: [
                {<curl>}
                {($ Id.VSub_DollarName curlopts)}
                {<-L>}
                {<-O>}
                {<https> <Id.Lit_Colon ':'> 
                  <'//github.com/google/googletest/archive/release-1.7.0.zip'>
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <unzip>
              more_env: []
              words: [{<unzip>} {<-q>} {<release-1.7.0.zip>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <rm>
              more_env: []
              words: [{<rm>} {<release-1.7.0.zip>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <mv>
              more_env: []
              words: [{<mv>} {<googletest-release-1.7.0>} {<'gmock/gtest'>}]
              redirects: []
              do_fork: T
            )
          ]
          spids: [130 141]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.Simple blame_tok:<set> more_env:[] words:[{<set>} {<-ex>}] redirects:[] do_fork:T)
    (command.Simple
      blame_tok: <autoreconf>
      more_env: []
      words: [{<autoreconf>} {<-f>} {<-i>} {<-Wall> <Id.Lit_Comma ','> <no-obsolete>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <rm>
      more_env: []
      words: [{<rm>} {<-rf>} {<autom4te.cache>} {<config.h.in> <Id.Lit_TildeLike '~'>}]
      redirects: []
      do_fork: T
    )
    (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<0>})
  ]
)