(CommandList
  children: [
    (C {(set)} {(-o)} {(nounset)})
    (C {(set)} {(-o)} {(pipefail)})
    (C {(set)} {(-o)} {(errexit)})
    (C {(source)} {(build/common.sh)})
    (FuncDef
      name: configure
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:dir)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Number 1>
                        suffix_op: 
                          (StringUnary
                            op_id: VTest_ColonHyphen
                            arg_word: {($ VSub_Name '$PREPARE_DIR')}
                          )
                        spids: [59 63]
                      )
                    }
                  spids: [58]
                )
              ]
              spids: [56]
            )
            (C {(rm)} {(-r)} {(-f)} {($ VSub_Name '$dir')})
            (C {(mkdir)} {(-p)} {($ VSub_Name '$dir')})
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:conf)
                  op: Equal
                  rhs: {($ VSub_Name '$PWD') (/) ($ VSub_Name '$PY27') (/configure)}
                  spids: [86]
                )
              ]
              spids: [84]
            )
            (C {(pushd)} {($ VSub_Name '$dir')})
            (TimeBlock pipeline:(C {($ VSub_Name '$conf')} {(--without-threads)}))
            (C {(popd)})
          ]
          spids: [53]
        )
      spids: [49 52]
    )
    (Assignment
      keyword: Assign_Readonly
      pairs: [
        (assign_pair
          lhs: (LhsName name:NPROC)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: (CommandList children:[(C {(nproc)})])
                left_token: <Left_CommandSub '$('>
                spids: [138 140]
              )
            }
          spids: [137]
        )
      ]
      spids: [135]
    )
    (Assignment
      keyword: Assign_Readonly
      pairs: [
        (assign_pair
          lhs: (LhsName name:JOBS)
          op: Equal
          rhs: 
            {
              (ArithSubPart
                anode: 
                  (TernaryOp
                    cond: 
                      (ArithBinary
                        op_id: Arith_DEqual
                        left: (ArithVarRef name:NPROC)
                        right: (ArithWord w:{(Lit_Digits 1)})
                      )
                    true_expr: (ArithVarRef name:NPROC)
                    false_expr: 
                      (ArithBinary
                        op_id: Arith_Minus
                        left: (ArithVarRef name:NPROC)
                        right: (ArithWord w:{(Lit_Digits 1)})
                      )
                  )
                spids: [145 164]
              )
            }
          spids: [144]
        )
      ]
      spids: [142]
    )
    (FuncDef
      name: build-python
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:dir)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Number 1>
                        suffix_op: 
                          (StringUnary
                            op_id: VTest_ColonHyphen
                            arg_word: {($ VSub_Name '$PREPARE_DIR')}
                          )
                        spids: [177 181]
                      )
                    }
                  spids: [176]
                )
              ]
              spids: [174]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:extra_cflags)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Number 2>
                        suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ <-O0>)})
                        spids: [187 193]
                      )
                    }
                  spids: [186]
                )
              ]
              spids: [184]
            )
            (C {(pushd)} {($ VSub_Name '$dir')})
            (C {(make)} {(clean)})
            (TimeBlock
              pipeline: 
                (C {(make)} {(-j)} {($ VSub_Name '$JOBS')} 
                  {(Lit_VarLike 'EXTRA_CFLAGS=') (DQ ($ VSub_Name '$extra_cflags'))}
                )
            )
            (C {(popd)})
          ]
          spids: [171]
        )
      spids: [167 170]
    )
    (FuncDef
      name: cpython-instrumented
      body: 
        (BraceGroup
          children: [
            (C {(configure)} {(_devbuild/cpython-instrumented)})
            (C {(build-python)} {(_devbuild/cpython-instrumented)} {(SQ <'-O0 -pg'>)})
          ]
          spids: [247]
        )
      spids: [243 246]
    )
    (C {(DQ ($ VSub_At '$@'))})
  ]
)