(command.CommandList
  children: [
    (C {<Id.KW_Set set>} {<-o>} {<nounset>})
    (C {<Id.KW_Set set>} {<-o>} {<pipefail>})
    (C {<Id.KW_Set set>} {<-o>} {<errexit>})
    (C {<source>} {<'build/common.sh'>})
    (command.ShFunction
      name: configure
      body: 
        (BraceGroup
          children: [
            (C {<local>} 
              {<Id.Lit_VarLike 'dir='> 
                (braced_var_sub
                  token: <Id.VSub_Number 1>
                  suffix_op: 
                    (suffix_op.Unary
                      op_id: Id.VTest_ColonHyphen
                      arg_word: {($ Id.VSub_DollarName '$PREPARE_DIR')}
                    )
                )
              }
            )
            (C {<rm>} {<-r>} {<-f>} {($ Id.VSub_DollarName '$dir')})
            (C {<mkdir>} {<-p>} {($ Id.VSub_DollarName '$dir')})
            (C {<local>} 
              {<Id.Lit_VarLike 'conf='> ($ Id.VSub_DollarName '$PWD') <'/'> 
                ($ Id.VSub_DollarName '$PY27') <'/configure'>
              }
            )
            (C {<pushd>} {($ Id.VSub_DollarName '$dir')})
            (command.TimeBlock
              pipeline: (C {($ Id.VSub_DollarName '$conf')} {<--without-threads>})
            )
            (C {<popd>})
          ]
        )
    )
    (C {<readonly>} 
      {<Id.Lit_VarLike 'NPROC='> (command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<nproc>}))}
    )
    (C {<readonly>} 
      {<Id.Lit_VarLike 'JOBS='> 
        (word_part.ArithSub
          anode: 
            (arith_expr.TernaryOp
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_DEqual
                  left: <Id.Lit_ArithVarLike NPROC>
                  right: {<Id.Lit_Digits 1>}
                )
              true_expr: <Id.Lit_ArithVarLike NPROC>
              false_expr: 
                (arith_expr.Binary
                  op_id: Id.Arith_Minus
                  left: <Id.Lit_ArithVarLike NPROC>
                  right: {<Id.Lit_Digits 1>}
                )
            )
        )
      }
    )
    (command.ShFunction
      name: build-python
      body: 
        (BraceGroup
          children: [
            (C {<local>} 
              {<Id.Lit_VarLike 'dir='> 
                (braced_var_sub
                  token: <Id.VSub_Number 1>
                  suffix_op: 
                    (suffix_op.Unary
                      op_id: Id.VTest_ColonHyphen
                      arg_word: {($ Id.VSub_DollarName '$PREPARE_DIR')}
                    )
                )
              }
            )
            (C {<local>} 
              {<Id.Lit_VarLike 'extra_cflags='> 
                (braced_var_sub
                  token: <Id.VSub_Number 2>
                  suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{(SQ <-O0>)})
                )
              }
            )
            (C {<pushd>} {($ Id.VSub_DollarName '$dir')})
            (C {<make>} {<clean>})
            (command.TimeBlock
              pipeline: 
                (C {<make>} {<-j>} {($ Id.VSub_DollarName '$JOBS')} 
                  {<Id.Lit_VarLike 'EXTRA_CFLAGS='> (DQ ($ Id.VSub_DollarName '$extra_cflags'))}
                )
            )
            (C {<popd>})
          ]
        )
    )
    (command.ShFunction
      name: cpython-instrumented
      body: 
        (BraceGroup
          children: [
            (C {<configure>} {<'_devbuild/cpython-instrumented'>})
            (C {<build-python>} {<'_devbuild/cpython-instrumented'>} {(SQ <'-O0 -pg'>)})
          ]
        )
    )
    (C {(DQ ($ Id.VSub_At '$@'))})
  ]
)