(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgname)
          op: assign_op.Equal
          rhs: {<py-opencl>}
          spids: [6]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:_pkgreal)
          op: assign_op.Equal
          rhs: 
            {
              (braced_var_sub
                token: <Id.VSub_Name pkgname>
                suffix_op: (suffix_op.PatSub pat:{<->} replace:{} replace_mode:Id.Undefined_Tok)
              )
            }
          spids: [9]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgver)
          op: assign_op.Equal
          rhs: {<2017.2>}
          spids: [17]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgrel)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [20]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgdesc)
          op: assign_op.Equal
          rhs: {(DQ <'Python wrapper for OpenCL'>)}
          spids: [23]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:url)
          op: assign_op.Equal
          rhs: {(DQ <'https://pypi.python.org/pypi/pyopencl'>)}
          spids: [28]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:arch)
          op: assign_op.Equal
          rhs: {(DQ <'all !s390x'>)}
          spids: [33]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:license)
          op: assign_op.Equal
          rhs: {(DQ <MIT>)}
          spids: [38]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:depends)
          op: assign_op.Equal
          rhs: {(DQ <py-mako>)}
          spids: [43]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:makedepends)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                <
'python2-dev python3-dev py-setuptools py-mako py-numpy ctags libffi-dev mesa-dev opencl-headers\n'
                > <'\t\topencl-icd-loader-dev py-cparser py-cffi'>
              )
            }
          spids: [48]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:checkdepends)
          op: assign_op.Equal
          rhs: {(DQ <'py-six py-decorator pytest py-py'>)}
          spids: [54]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:subpackages)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <py2-> 
                (braced_var_sub
                  token: <Id.VSub_Name pkgname>
                  suffix_op: (suffix_op.Unary tok:<Id.VOp1_Pound '#'> arg_word:{<py->})
                ) <':_py2 py3-'> 
                (braced_var_sub
                  token: <Id.VSub_Name pkgname>
                  suffix_op: (suffix_op.Unary tok:<Id.VOp1_Pound '#'> arg_word:{<py->})
                ) <':_py3'>
              )
            }
          spids: [59]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:source)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'https://files.pythonhosted.org/packages/source/'> 
                (braced_var_sub
                  token: <Id.VSub_Name _pkgreal>
                  suffix_op: (suffix_op.Slice begin:{<Id.Lit_Digits 0>} length:{<Id.Lit_Digits 1>})
                ) <'/'> ($ Id.VSub_DollarName '$_pkgreal') <'/'> ($ Id.VSub_DollarName '$_pkgreal') <-> 
                ($ Id.VSub_DollarName '$pkgver') <.tar.gz>
              )
            }
          spids: [76]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:builddir)
          op: assign_op.Equal
          rhs: 
            {
              (DQ ($ Id.VSub_DollarName '$srcdir') <'/'> ($ Id.VSub_DollarName '$_pkgreal') <-> 
                ($ Id.VSub_DollarName '$pkgver')
              )
            }
          spids: [95]
        )
      ]
    )
    (command.ShFunction
      name: build
      body: 
        (BraceGroup
          children: [
            (C {<cd>} {(DQ ($ Id.VSub_DollarName '$builddir'))})
            (C {<python2>} {<setup.py>} {<build>})
            (C {<python3>} {<setup.py>} {<build>})
          ]
        )
    )
    (command.ShFunction
      name: package
      body: (BraceGroup children:[(C {<mkdir>} {<-p>} {(DQ ($ Id.VSub_DollarName '$pkgdir'))})])
    )
    (command.ShFunction
      name: _py2
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:replaces)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName '$pkgname'))}
                  spids: [160]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:depends)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ 
                        (braced_var_sub
                          token: <Id.VSub_Name depends>
                          suffix_op: 
                            (suffix_op.PatSub
                              pat: {<py->}
                              replace: {<py2->}
                              replace_mode: Id.Lit_Slash
                            )
                        )
                      )
                    }
                  spids: [166]
                )
              ]
            )
            (C {<_py>} {<python2>})
          ]
        )
    )
    (command.ShFunction
      name: _py3
      body: 
        (BraceGroup
          children: [
            (C {<_py>} {<python3>})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:depends)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ 
                        (braced_var_sub
                          token: <Id.VSub_Name depends>
                          suffix_op: 
                            (suffix_op.PatSub
                              pat: {<py->}
                              replace: {<py3->}
                              replace_mode: Id.Lit_Slash
                            )
                        )
                      )
                    }
                  spids: [198]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: _py
      body: 
        (BraceGroup
          children: [
            (C {<local>} {<Id.Lit_VarLike 'python='> (DQ ($ Id.VSub_Number '$1'))})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:pkgdesc)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ ($ Id.VSub_DollarName '$pkgdesc') <' (for '> ($ Id.VSub_DollarName '$python') 
                        <')'>
                      )
                    }
                  spids: [228]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:depends)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName '$depends') <' '> ($ Id.VSub_DollarName '$python'))}
                  spids: [237]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:install_if)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ ($ Id.VSub_DollarName '$pkgname') <'='> ($ Id.VSub_DollarName '$pkgver') <-r> 
                        ($ Id.VSub_DollarName '$pkgrel') <' '> ($ Id.VSub_DollarName '$python')
                      )
                    }
                  spids: [245]
                )
              ]
            )
            (C {<cd>} {(DQ ($ Id.VSub_DollarName '$builddir'))})
            (C {($ Id.VSub_DollarName '$python')} {<setup.py>} {<install>} 
              {<--prefix> <Id.Lit_Equals '='> <'/usr'>} {<--root> <Id.Lit_Equals '='> (DQ ($ Id.VSub_DollarName '$subpkgdir'))}
            )
          ]
        )
    )
    (command.ShFunction
      name: check
      body: 
        (BraceGroup
          children: [
            (C {<cd>} {(DQ ($ Id.VSub_DollarName '$builddir'))})
            (C {<python2>} {<setup.py>} {<test>})
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:sha512sums)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                <
'49f2ff619d8c214a3962b8444e68ba415dda032abaf9eeab259fcd1b21fbaab10bd057035161baef7f0182995834082218a6667464c01645231a94c88aa5c18b  pyopencl-2017.2.tar.gz'
                >
              )
            }
          spids: [307]
        )
      ]
    )
  ]
)