(command.CommandList
  children: [
    (command.ShFunction
      name: use_gcc
      body: 
        (BraceGroup
          children: [
            (C {<export>} {<Id.Lit_VarLike 'CC='> <gcc-4.9>})
            (C {<export>} {<Id.Lit_VarLike 'CXX='> <g> <Id.Lit_Other '+'> <Id.Lit_Other '+'> <-4.9>})
          ]
        )
    )
    (command.ShFunction
      name: use_clang
      body: 
        (BraceGroup
          children: [
            (C {<export>} {<Id.Lit_VarLike 'CC='> <clang-4.0>})
            (C {<export>} 
              {<Id.Lit_VarLike 'CXX='> <clang> <Id.Lit_Other '+'> <Id.Lit_Other '+'> <-4.0>}
            )
          ]
        )
    )
    (command.ShFunction
      name: bootstrap_python_env
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:PYTHON_VERSION)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$1')}
                  spids: [108]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:CONDA_ENV_DIR)
                  op: assign_op.Equal
                  rhs: 
                    {($ Id.VSub_DollarName '$BUILD_DIR') <'/pyarrow-test-'> 
                      ($ Id.VSub_DollarName '$PYTHON_VERSION')
                    }
                  spids: [112]
                )
              ]
            )
            (C {<conda>} {<create>} {<-y>} {<-q>} {<-p>} {($ Id.VSub_DollarName '$CONDA_ENV_DIR')} 
              {<Id.Lit_VarLike 'python='> ($ Id.VSub_DollarName '$PYTHON_VERSION')} {<cmake>} {<curl>}
            )
            (C {<source>} {<activate>} {($ Id.VSub_DollarName '$CONDA_ENV_DIR')})
            (C {<python>} {<--version>})
            (C {<which>} {<python>})
            (C {<conda>} {<install>} {<-y>} {<-q>} {<nomkl>} {<pip>} {<numpy>} {<pandas>} {<cython>})
          ]
        )
    )
    (command.ShFunction
      name: build_pyarrow
      body: 
        (BraceGroup
          children: [
            (C {<pushd>} {($ Id.VSub_DollarName '$ARROW_PYTHON_DIR')})
            (C {<pip>} {<install>} {<-r>} {<requirements.txt>})
            (C {<python>} {<setup.py>} {<build_ext>} {<--with-parquet>} {<--with-plasma>} {<install>} 
              {<--single-version-externally-managed>} {<--record> <Id.Lit_Equals '='> <record.text>}
            )
            (C {<popd>})
            (C {<python>} {<-c>} {(DQ <'import pyarrow.parquet'>)})
            (C {<python>} {<-c>} {(DQ <'import pyarrow.plasma'>)})
            (C {<export>} 
              {<Id.Lit_VarLike 'PYARROW_PATH='> ($ Id.VSub_DollarName '$CONDA_PREFIX') <'/lib/python'> 
                ($ Id.VSub_DollarName '$PYTHON_VERSION') <'/site-packages/pyarrow'>
              }
            )
          ]
        )
    )
    (command.ShFunction
      name: build_arrow
      body: 
        (BraceGroup
          children: [
            (C {<mkdir>} {<-p>} {($ Id.VSub_DollarName '$ARROW_CPP_BUILD_DIR')})
            (C {<pushd>} {($ Id.VSub_DollarName '$ARROW_CPP_BUILD_DIR')})
            (C {<cmake>} {<-GNinja>} 
              {<-DCMAKE_BUILD_TYPE> <Id.Lit_Equals '='> ($ Id.VSub_DollarName '$BUILD_TYPE')} {<-DCMAKE_INSTALL_PREFIX> <Id.Lit_Equals '='> ($ Id.VSub_DollarName '$ARROW_HOME')} 
              {<-DARROW_NO_DEPRECATED_API> <Id.Lit_Equals '='> <ON>} {<-DARROW_PYTHON> <Id.Lit_Equals '='> <ON>} {<-DARROW_PLASMA> <Id.Lit_Equals '='> <ON>} 
              {<-DARROW_BOOST_USE_SHARED> <Id.Lit_Equals '='> <off>} {($ Id.VSub_DollarName '$ARROW_CPP_DIR')}
            )
            (C {<ninja>})
            (C {<ninja>} {<install>})
            (C {<popd>})
          ]
        )
    )
    (command.ShFunction
      name: build_parquet
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:PARQUET_DIR)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$BUILD_DIR') <'/parquet'>}
                  spids: [349]
                )
              ]
            )
            (C {<mkdir>} {<-p>} {($ Id.VSub_DollarName '$PARQUET_DIR')})
            (C {<git>} {<clone>} {<https> <Id.Lit_Colon ':'> <'//github.com/apache/parquet-cpp.git'>} 
              {($ Id.VSub_DollarName '$PARQUET_DIR')}
            )
            (C {<pushd>} {($ Id.VSub_DollarName '$PARQUET_DIR')})
            (C {<mkdir>} {<build-dir>})
            (C {<cd>} {<build-dir>})
            (C {<cmake>} {<-GNinja>} 
              {<-DCMAKE_BUILD_TYPE> <Id.Lit_Equals '='> ($ Id.VSub_DollarName '$BUILD_TYPE')} {<-DCMAKE_INSTALL_PREFIX> <Id.Lit_Equals '='> ($ Id.VSub_DollarName '$PARQUET_HOME')} 
              {<-DPARQUET_BOOST_USE_SHARED> <Id.Lit_Equals '='> <off>} {<-DPARQUET_BUILD_BENCHMARKS> <Id.Lit_Equals '='> <off>} 
              {<-DPARQUET_BUILD_EXECUTABLES> <Id.Lit_Equals '='> <off>} {<-DPARQUET_BUILD_TESTS> <Id.Lit_Equals '='> <off>} {<..>}
            )
            (C {<ninja>})
            (C {<ninja>} {<install>})
            (C {<popd>})
          ]
        )
    )
  ]
)