(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:pkgname) op:Equal rhs:{(lua-xctrl)} spids:[3])]
      spids: [3]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:pkgver) op:Equal rhs:{(2015.04.10)} spids:[6])]
      spids: [6]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:_x)
          op: Equal
          rhs: 
            {
              (BracedVarSub
                token: <VSub_Name pkgver>
                suffix_op: (StringUnary op_id:VOp1_DPercent arg_word:{('.*')})
                spids: [10 14]
              )
            }
          spids: [9]
        )
      ]
      spids: [9]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:_y)
          op: Equal
          rhs: 
            {
              (BracedVarSub
                token: <VSub_Name pkgver>
                suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{('.*')})
                spids: [17 21]
              )
            }
          spids: [16]
        )
      ]
      spids: [16]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:_y)
          op: Equal
          rhs: 
            {
              (BracedVarSub
                token: <VSub_Name _y>
                suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{('*.')})
                spids: [24 28]
              )
            }
          spids: [23]
        )
      ]
      spids: [23]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:_z)
          op: Equal
          rhs: 
            {
              (BracedVarSub
                token: <VSub_Name pkgver>
                suffix_op: (StringUnary op_id:VOp1_DPound arg_word:{('*.')})
                spids: [31 35]
              )
            }
          spids: [30]
        )
      ]
      spids: [30]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:_ver)
          op: Equal
          rhs: {(${ VSub_Name _x) (-) (${ VSub_Name _y) (-) (${ VSub_Name _z)}
          spids: [37]
        )
      ]
      spids: [37]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:pkgrel) op:Equal rhs:{(2)} spids:[50])]
      spids: [50]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:_luaversions)
          op: Equal
          rhs: {(DQ ('5.1 5.2 5.3'))}
          spids: [53]
        )
      ]
      spids: [53]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:pkgdesc)
          op: Equal
          rhs: 
            {
              (DQ 
                (
'Lua module that allows you to query and manipulate various aspects of an X11 window manager'
                )
              )
            }
          spids: [58]
        )
      ]
      spids: [58]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:url)
          op: Equal
          rhs: {(DQ ('https://github.com/yetanothergeek/xctrl'))}
          spids: [63]
        )
      ]
      spids: [63]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:arch) op:Equal rhs:{(DQ (all))} spids:[68])]
      spids: [68]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:license) op:Equal rhs:{(DQ (GPL2))} spids:[73])]
      spids: [73]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:depends) op:Equal rhs:{(SQ )} spids:[78])]
      spids: [78]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:makedepends)
          op: Equal
          rhs: {(DQ ('lua-dev libx11-dev libxmu-dev'))}
          spids: [80]
        )
      ]
      spids: [80]
    )
    (ForEach
      iter_name: _i
      iter_words: [{($ VSub_Name '$_luaversions')}]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:makedepends)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name '$makedepends') (' lua') ($ VSub_Name '$_i') (-dev))}
                  spids: [97]
                )
              ]
              spids: [97]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:subpackages)
                  op: Equal
                  rhs: 
                    {
                      (DQ ($ VSub_Name '$subpackages') (' lua') ($ VSub_Name '$_i') ('-xctrl:split_') 
                        (BracedVarSub
                          token: <VSub_Name _i>
                          suffix_op: 
                            (PatSub
                              pat: {(.)}
                              replace: {(_)}
                              do_all: False
                              do_prefix: False
                              do_suffix: False
                            )
                          spids: [112 118]
                        )
                      )
                    }
                  spids: [106]
                )
              ]
              spids: [106]
            )
          ]
          spids: [94 121]
        )
      spids: [90 92]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:install) op:Equal rhs:{(SQ )} spids:[123])]
      spids: [123]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:subpackages)
          op: Equal
          rhs: {(DQ ($ VSub_Name '$pkgname') (-doc))}
          spids: [125]
        )
      ]
      spids: [125]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:source)
          op: Equal
          rhs: 
            {
              (DQ ($ VSub_Name '$pkgname') (-) ($ VSub_Name '$pkgver') 
                ('.tar.gz::https://github.com/yetanothergeek/xctrl/archive/') ($ VSub_Name '$pkgver') (.tar.gz)
              )
            }
          spids: [131]
        )
      ]
      spids: [131]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:builddir)
          op: Equal
          rhs: {(DQ ($ VSub_Name '$srcdir')) (/xctrl-) ($ VSub_Name '$pkgver')}
          spids: [142]
        )
      ]
      spids: [142]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:_lua_libdir)
          op: Equal
          rhs: {(/usr/lib/lua/5.1)}
          spids: [149]
        )
      ]
      spids: [149]
    )
    (FuncDef
      name: prepare
      body: (BraceGroup children:[(C {(cd)} {(DQ ($ VSub_Name '$builddir'))})] spids:[157])
      spids: [153 156]
    )
    (FuncDef
      name: build
      body: 
        (BraceGroup
          children: [
            (ForEach
              iter_name: _i
              iter_words: [{($ VSub_Name '$_luaversions')}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (C {(msg)} {(DQ ('Build for Lua ') ($ VSub_Name '$_i'))})
                    (C {(cd)} {(DQ ($ VSub_Name '$builddir'))})
                    (C {(export)} {(Lit_VarLike 'EXTRA_CFLAGS=') (DQ (-fPIC))})
                    (AndOr
                      children: [
                        (C {(make)} {(Lit_VarLike 'LUAPKG=') (DQ (lua) ($ VSub_Name '$_i'))})
                        (ControlFlow
                          token: <ControlFlow_Return return>
                          arg_word: {(1)}
                        )
                      ]
                      op_id: Op_DPipe
                    )
                  ]
                  spids: [185 226]
                )
              spids: [181 183]
            )
          ]
          spids: [173]
        )
      spids: [169 172]
    )
    (FuncDef
      name: package
      body: 
        (BraceGroup
          children: [
            (C {(cd)} {(DQ ($ VSub_Name '$builddir'))})
            (ForEach
              iter_name: _i
              iter_words: [{($ VSub_Name '$_luaversions')}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (C {(install)} {(-d)} 
                      {(DQ ($ VSub_Name '$pkgdir')) (/usr/lib/lua/) ($ VSub_Name '$_i')} {(DQ ($ VSub_Name '$pkgdir')) (/usr/share/doc/) ($ VSub_Name '$pkgname')}
                    )
                    (C {(install)} {(src/xctrl.so)} 
                      {(DQ ($ VSub_Name '$pkgdir')) (/usr/lib/lua/) ($ VSub_Name '$_i') (/xctrl.so)}
                    )
                    (C {(install)} {(doc/lxctrl.html)} 
                      {(DQ ($ VSub_Name '$pkgdir')) (/usr/share/doc/) ($ VSub_Name '$pkgname') 
                        (/lxctrl.html)
                      }
                    )
                  ]
                  spids: [254 298]
                )
              spids: [250 252]
            )
          ]
          spids: [235]
        )
      spids: [231 234]
    )
    (FuncDef
      name: _split
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:d)
                  op: Equal
                  rhs: {(usr/lib/lua)}
                  spids: [312]
                )
                (assign_pair
                  lhs: (LhsName name:_ver)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [315]
                )
              ]
              spids: [310]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:pkgdesc)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name '$pkgdesc') (' for Lua ') ($ VSub_Name '$_ver'))}
                  spids: [319]
                )
              ]
              spids: [319]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:install_if)
                  op: Equal
                  rhs: 
                    {
                      (DQ (lua) ($ VSub_Name '$_ver') (' ') ($ VSub_Name '$pkgname') ('=') 
                        ($ VSub_Name '$pkgver') (-r) ($ VSub_Name '$pkgrel')
                      )
                    }
                  spids: [327]
                )
              ]
              spids: [327]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:depends) op:Equal rhs:{(SQ )} spids:[340])]
              spids: [340]
            )
            (AndOr
              children: [
                (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name '$subpkgdir') (/) ($ VSub_Name '$d'))})
                (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
              ]
              op_id: Op_DPipe
            )
            (C {(mv)} {(DQ ($ VSub_Name '$pkgdir') (/) ($ VSub_Name '$d') (/) ($ VSub_Number '$1'))} 
              {(DQ ($ VSub_Name '$subpkgdir') (/) ($ VSub_Name '$d'))}
            )
          ]
          spids: [307]
        )
      spids: [303 306]
    )
    (ForEach
      iter_name: _v
      iter_words: [{($ VSub_Name '$_luaversions')}]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (C {(eval)} 
              {
                (DQ (split_) 
                  (BracedVarSub
                    token: <VSub_Name _v>
                    suffix_op: 
                      (PatSub
                        pat: {(.)}
                        replace: {(_)}
                        do_all: False
                        do_prefix: False
                        do_suffix: False
                      )
                    spids: [395 401]
                  ) ('() { _split ') ($ VSub_Name '$_v') ('; }')
                )
              }
            )
          ]
          spids: [388 407]
        )
      spids: [384 386]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:sha512sums)
          op: Equal
          rhs: 
            {
              (DQ 
                (
'11a48641ebc71ab56201a707b844ee0d0475167fe4f4bd96f4d8296db00dc806c6d3889a5447bb41cec787b0de6d0351f77b45a8505fac5a5e184e3b80482acb  lua-xctrl-2015.04.10.tar.gz'
                )
              )
            }
          spids: [410]
        )
      ]
      spids: [410]
    )
  ]
)