(CommandList
  children: [
    (C {(set)} {(-e)})
    (C {(eval)} 
      {
        (CommandSubPart
          command_list: (CommandList children:[(C {(go)} {(tool)} {(dist)} {(env)})])
          left_token: <Left_CommandSub '$('>
          spids: [20 28]
        )
      }
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:GC) op:Equal rhs:{(DQ ('go tool compile'))} spids:[30])]
      spids: [30]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:LD) op:Equal rhs:{(DQ ('go tool link'))} spids:[35])]
      spids: [35]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:gccm) op:Equal rhs:{(DQ )} spids:[41])]
      spids: [41]
    )
    (Case
      to_match: {(DQ ($ VSub_Name '$O'))}
      arms: [
        (case_arm
          pat_list: [{(8)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:gccm) op:Equal rhs:{(-m32)} spids:[57])]
              spids: [57]
            )
          ]
          spids: [53 54 59 16777215]
        )
        (case_arm
          pat_list: [{(6)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:gccm) op:Equal rhs:{(-m64)} spids:[65])]
              spids: [65]
            )
          ]
          spids: [61 62 67 16777215]
        )
      ]
      spids: [45 51 69]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:EXE) op:Equal rhs:{(DQ (out))} spids:[72])]
      spids: [72]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:havepcre) op:Equal rhs:{(true)} spids:[77])]
      spids: [77]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:haveglib) op:Equal rhs:{(true)} spids:[80])]
      spids: [80]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:havegmp) op:Equal rhs:{(true)} spids:[83])]
      spids: [83]
    )
    (Case
      to_match: 
        {
          (DQ 
            (CommandSubPart
              command_list: (CommandList children:[(C {(uname)})])
              left_token: <Left_CommandSub '$('>
              spids: [89 91]
            )
          )
        }
      arms: [
        (case_arm
          pat_list: [
            {(Lit_Other '*') (MINGW) (Lit_Other '*')}
            {(Lit_Other '*') (WIN32) (Lit_Other '*')}
            {(Lit_Other '*') (CYGWIN) (Lit_Other '*')}
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:havepcre) op:Equal rhs:{(false)} spids:[114])]
              spids: [114]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:haveglib) op:Equal rhs:{(false)} spids:[118])]
              spids: [118]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:havegmp) op:Equal rhs:{(false)} spids:[122])]
              spids: [122]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (SimpleCommand
                          words: [{(which)} {(pkg-config)}]
                          redirects: [
                            (Redir
                              op: <Redir_Great '>'>
                              fd: 16777215
                              arg_word: {(/dev/null)}
                            )
                            (Redir
                              op: <Redir_GreatAnd '2>&'>
                              fd: 2
                              arg_word: {(1)}
                            )
                          ]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (SimpleCommand
                              words: [{(pkg-config)} {(--cflags)} {(libpcre)}]
                              redirects: [
                                (Redir
                                  op: <Redir_Great '>'>
                                  fd: 16777215
                                  arg_word: {(/dev/null)}
                                )
                                (Redir
                                  op: <Redir_GreatAnd '2>&'>
                                  fd: 2
                                  arg_word: {(1)}
                                )
                              ]
                            )
                          ]
                          action: [
                            (C {(echo)} {(DQ (havepcre))})
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:havepcre)
                                  op: Equal
                                  rhs: {(true)}
                                  spids: [167]
                                )
                              ]
                              spids: [167]
                            )
                          ]
                          spids: [16777215 157]
                        )
                      ]
                      spids: [16777215 171]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (SimpleCommand
                              words: [{(pkg-config)} {(--cflags)} {(glib-2.0)}]
                              redirects: [
                                (Redir
                                  op: <Redir_Great '>'>
                                  fd: 16777215
                                  arg_word: {(/dev/null)}
                                )
                                (Redir
                                  op: <Redir_GreatAnd '2>&'>
                                  fd: 2
                                  arg_word: {(1)}
                                )
                              ]
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:haveglib)
                                  op: Equal
                                  rhs: {(true)}
                                  spids: [192]
                                )
                              ]
                              spids: [192]
                            )
                          ]
                          spids: [16777215 189]
                        )
                      ]
                      spids: [16777215 196]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (SimpleCommand
                              words: [{(pkg-config)} {(--cflags)} {(gmp)}]
                              redirects: [
                                (Redir
                                  op: <Redir_Great '>'>
                                  fd: 16777215
                                  arg_word: {(/dev/null)}
                                )
                                (Redir
                                  op: <Redir_GreatAnd '2>&'>
                                  fd: 2
                                  arg_word: {(1)}
                                )
                              ]
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:havegmp)
                                  op: Equal
                                  rhs: {(true)}
                                  spids: [217]
                                )
                              ]
                              spids: [217]
                            )
                          ]
                          spids: [16777215 214]
                        )
                      ]
                      spids: [16777215 221]
                    )
                  ]
                  spids: [16777215 139]
                )
              ]
              spids: [16777215 224]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:EXE) op:Equal rhs:{(exe)} spids:[227])]
              spids: [227]
            )
          ]
          spids: [96 111 229 16777215]
        )
      ]
      spids: [86 94 231]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:PATH)
          op: Equal
          rhs: {(.) (Lit_Other ':') ($ VSub_Name '$PATH')}
          spids: [234]
        )
      ]
      spids: [234]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:havegccgo) op:Equal rhs:{(false)} spids:[240])]
      spids: [240]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (SimpleCommand
              words: [{(which)} {(gccgo)}]
              redirects: [
                (Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/dev/null)})
                (Redir op:<Redir_GreatAnd '2>&'> fd:2 arg_word:{(1)})
              ]
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:havegccgo) op:Equal rhs:{(true)} spids:[258])]
              spids: [258]
            )
          ]
          spids: [16777215 255]
        )
      ]
      spids: [16777215 261]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:mode) op:Equal rhs:{(run)} spids:[264])]
      spids: [264]
    )
    (Case
      to_match: {(X) (DQ ($ VSub_Number '$1'))}
      arms: [
        (case_arm
          pat_list: [{(X-test)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:mode) op:Equal rhs:{(test)} spids:[280])]
              spids: [280]
            )
            (C {(shift)})
          ]
          spids: [276 277 16777215 286]
        )
      ]
      spids: [267 274 286]
    )
    (FuncDef
      name: gc
      body: 
        (BraceGroup
          children: [
            (Sentence
              child: (C {($ VSub_Name '$GC')} {($ VSub_Number '$1') (.go)})
              terminator: <Op_Semi ';'>
            )
            (C {($ VSub_Name '$LD')} {(-o)} {(a.) ($ VSub_Name '$EXE')} {($ VSub_Number '$1') (.o)})
          ]
          spids: [293]
        )
      spids: [289 292]
    )
    (FuncDef
      name: gc_B
      body: 
        (BraceGroup
          children: [
            (Sentence
              child: (C {($ VSub_Name '$GC')} {(-B)} {($ VSub_Number '$1') (.go)})
              terminator: <Op_Semi ';'>
            )
            (C {($ VSub_Name '$LD')} {(-o)} {(a.) ($ VSub_Name '$EXE')} {($ VSub_Number '$1') (.o)})
          ]
          spids: [319]
        )
      spids: [315 318]
    )
    (FuncDef
      name: runonly
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (C {(Lit_Other '[')} {($ VSub_Name '$mode')} {(Lit_Other '=')} {(run)} 
                      {(Lit_Other ']')}
                    )
                  ]
                  action: [(C {(DQ ($ VSub_At '$@'))})]
                  spids: [16777215 363]
                )
              ]
              spids: [16777215 371]
            )
          ]
          spids: [347]
        )
      spids: [343 346]
    )
  ]
)