(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:_luaversions)
          op: Equal
          rhs: {(DQ ('5.1 5.2 5.3'))}
          spids: [4]
        )
      ]
      spids: [4]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:pkgname) op:Equal rhs:{(lua-cjson)} spids:[9])]
      spids: [9]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:pkgver) op:Equal rhs:{(2.1.0)} spids:[12])]
      spids: [12]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:pkgrel) op:Equal rhs:{(7)} spids:[15])]
      spids: [15]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:pkgdesc)
          op: Equal
          rhs: {(DQ ('fast JSON parsing and encoding support for Lua'))}
          spids: [18]
        )
      ]
      spids: [18]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:url)
          op: Equal
          rhs: {(DQ ('http://www.kyne.com.au/~mark/software/lua-cjson.php'))}
          spids: [23]
        )
      ]
      spids: [23]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:arch) op:Equal rhs:{(DQ (all))} spids:[28])]
      spids: [28]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:license) op:Equal rhs:{(DQ (MIT))} spids:[33])]
      spids: [33]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:depends) op:Equal rhs:{(DQ )} spids:[38])]
      spids: [38]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:install) op:Equal rhs:{(DQ )} spids:[42])]
      spids: [42]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:makedepends) op:Equal rhs:{(DQ )} spids:[46])]
      spids: [46]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:subpackages) op:Equal rhs:{(DQ )} spids:[50])]
      spids: [50]
    )
    (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: [66]
                )
              ]
              spids: [66]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:subpackages)
                  op: Equal
                  rhs: 
                    {
                      (DQ ($ VSub_Name '$subpackages') (' lua') ($ VSub_Name '$_i') ('-cjson:split_') 
                        (BracedVarSub
                          token: <VSub_Name _i>
                          suffix_op: 
                            (PatSub
                              pat: {(.)}
                              replace: {(_)}
                              do_all: False
                              do_prefix: False
                              do_suffix: False
                            )
                          spids: [81 87]
                        )
                      )
                    }
                  spids: [75]
                )
              ]
              spids: [75]
            )
          ]
          spids: [63 90]
        )
      spids: [59 61]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:source)
          op: Equal
          rhs: 
            {
              (DQ ('http://www.kyne.com.au/~mark/software/download/lua-cjson-') 
                ($ VSub_Name '$pkgver') ('.tar.gz\n') ('\t0001-Use-pkg-config-to-detect-cflags-or-fallback-to-LUA_I.patch\n') 
                ('\t0002-lua53-integers.patch\n') ('\t0003-empty-array-metadata.patch\n') ('\t0004-Option-for-sorting-object-keys.patch\n') ('\t')
              )
            }
          spids: [92]
        )
      ]
      spids: [92]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:_sdir)
          op: Equal
          rhs: {(DQ ($ VSub_Name '$srcdir')) (/lua-cjson-) ($ VSub_Name '$pkgver')}
          spids: [106]
        )
      ]
      spids: [106]
    )
    (FuncDef
      name: prepare
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:i) op:Equal spids:[123])]
              spids: [121]
            )
            (C {(cd)} {(DQ ($ VSub_Name '$_sdir'))})
            (ForEach
              iter_name: i
              iter_words: [{($ VSub_Name '$source')}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (Case
                      to_match: {($ VSub_Name '$i')}
                      arms: [
                        (case_arm
                          pat_list: [{(Lit_Other '*') (.patch)}]
                          action: [
                            (Sentence
                              child: (C {(msg)} {($ VSub_Name '$i')})
                              terminator: <Op_Semi ';'>
                            )
                            (AndOr
                              children: [
                                (C {(patch)} {(-p1)} {(-i)} 
                                  {(DQ ($ VSub_Name '$srcdir')) (/) ($ VSub_Name '$i')}
                                )
                                (ControlFlow
                                  token: <ControlFlow_Return return>
                                  arg_word: {(1)}
                                )
                              ]
                              op_id: Op_DPipe
                            )
                          ]
                          spids: [152 154 178 -1]
                        )
                      ]
                      spids: [145 149 181]
                    )
                  ]
                  spids: [142 184]
                )
              spids: [138 140]
            )
            (ForEach
              iter_name: _i
              iter_words: [{($ VSub_Name '$_luaversions')}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (C {(cp)} {(-r)} {(DQ ($ VSub_Name '$_sdir'))} 
                      {(DQ ($ VSub_Name '$srcdir')) (/build-) ($ VSub_Name '$_i')}
                    )
                    (AndOr
                      children: [
                        (C {(sed)} {(-i)} {(-e)} 
                          {
                            (DQ ('/^LUA_VERSION') (EscapedLiteralPart token:<Lit_EscapedChar '\\s'>) 
                              ('*=/s/=.*/= ') ($ VSub_Name '$_i') (/)
                            )
                          } {(DQ ($ VSub_Name '$srcdir')) (/build-) ($ VSub_Name '$_i') (/Makefile)}
                        )
                        (ControlFlow
                          token: <ControlFlow_Return return>
                          arg_word: {(1)}
                        )
                      ]
                      op_id: Op_DPipe
                    )
                  ]
                  spids: [196 244]
                )
              spids: [192 194]
            )
          ]
          spids: [118]
        )
      spids: [114 117]
    )
    (FuncDef
      name: build
      body: 
        (BraceGroup
          children: [
            (ForEach
              iter_name: _i
              iter_words: [{($ VSub_Name '$_luaversions')}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (C {(cd)} {(DQ ($ VSub_Name '$srcdir')) (/build-) ($ VSub_Name '$_i')})
                    (AndOr
                      children: [
                        (C {(make)} {(Lit_VarLike 'PREFIX=') (/usr)})
                        (ControlFlow
                          token: <ControlFlow_Return return>
                          arg_word: {(1)}
                        )
                      ]
                      op_id: Op_DPipe
                    )
                  ]
                  spids: [265 289]
                )
              spids: [261 263]
            )
          ]
          spids: [253]
        )
      spids: [249 252]
    )
    (FuncDef
      name: package
      body: 
        (BraceGroup
          children: [
            (ForEach
              iter_name: _i
              iter_words: [{($ VSub_Name '$_luaversions')}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (C {(cd)} {(DQ ($ VSub_Name '$srcdir')) (/build-) ($ VSub_Name '$_i')})
                    (AndOr
                      children: [
                        (C {(make)} {(Lit_VarLike 'PREFIX=') (/usr)} 
                          {(Lit_VarLike 'DESTDIR=') (DQ ($ VSub_Name '$pkgdir'))} {(install)}
                        )
                        (ControlFlow
                          token: <ControlFlow_Return return>
                          arg_word: {(1)}
                        )
                      ]
                      op_id: Op_DPipe
                    )
                  ]
                  spids: [310 341]
                )
              spids: [306 308]
            )
          ]
          spids: [298]
        )
      spids: [294 297]
    )
    (FuncDef
      name: _split
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair lhs:(LhsName name:d) op:Equal rhs:{(SQ )} spids:[355])
                (assign_pair
                  lhs: (LhsName name:_ver)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [357]
                )
              ]
              spids: [353]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:pkgdesc)
                  op: Equal
                  rhs: {(DQ ('fast JSON parsing and encoding support for Lua ') ($ VSub_Name '$_ver'))}
                  spids: [361]
                )
              ]
              spids: [361]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:replaces)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name '$pkgname'))}
                  spids: [368]
                )
              ]
              spids: [368]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:depends) op:Equal rhs:{(SQ )} spids:[374])]
              spids: [374]
            )
            (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: [377]
                )
              ]
              spids: [377]
            )
            (ForEach
              iter_name: d
              iter_words: [{(usr/lib/lua)} {(usr/share/lua)}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(-d)} 
                                  {(DQ ($ VSub_Name '$pkgdir')) (/) ($ VSub_Name '$d') (/) 
                                    ($ VSub_Name '$_ver')
                                  } {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name '$subpkgdir')) (/) ($ VSub_Name '$d')})
                            (AndOr
                              children: [
                                (C {(mv)} 
                                  {(DQ ($ VSub_Name '$pkgdir')) (/) ($ VSub_Name '$d') (/) 
                                    ($ VSub_Name '$_ver')
                                  } {(DQ ($ VSub_Name '$subpkgdir')) (/) ($ VSub_Name '$d') (/)}
                                )
                                (ControlFlow
                                  token: <ControlFlow_Return return>
                                  arg_word: {(1)}
                                )
                              ]
                              op_id: Op_DPipe
                            )
                          ]
                          spids: [-1 421]
                        )
                      ]
                      spids: [-1 459]
                    )
                  ]
                  spids: [401 462]
                )
              spids: [395 399]
            )
          ]
          spids: [350]
        )
      spids: [346 349]
    )
    (ForEach
      iter_name: _i
      iter_words: [{($ VSub_Name '$_luaversions')}]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (C {(eval)} 
              {
                (DQ (split_) 
                  (BracedVarSub
                    token: <VSub_Name _i>
                    suffix_op: 
                      (PatSub
                        pat: {(.)}
                        replace: {(_)}
                        do_all: False
                        do_prefix: False
                        do_suffix: False
                      )
                    spids: [483 489]
                  ) ('() { _split ') ($ VSub_Name '$_i') ('; }')
                )
              }
            )
          ]
          spids: [476 495]
        )
      spids: [472 474]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:sha512sums)
          op: Equal
          rhs: 
            {
              (DQ 
                (
'4343513b942f2ed98dc1ea6d7e852303bc1263f8acc5c70c8d674aec7adfc8279c5af7d5173a417b6f9a74543b8f6c8f98742d002f4f75832bbf23bb5a30ad2f  lua-cjson-2.1.0.tar.gz\n'
                ) 
                (
'5137cf25ca125b03ff2e95cedd8396d63b9a4919b1aba4ef333fd8945a4fd20f423c1e8d36b954a15969bd344cd43bb6c50df8b878cd74a706d6065455fbb003  0001-Use-pkg-config-to-detect-cflags-or-fallback-to-LUA_I.patch\n'
                ) 
                (
'2cf4d4fa116850a6a8fb74f27779383a339ca08ed81cdcb03be985c731b91234e7552a26913b609f2c9b02516fc74171d4e5fbb446bcdaf0eddddac3af08865a  0002-lua53-integers.patch\n'
                ) 
                (
'77a05166a88b7ec7d1c7fa2cd7e22fdf75dd2882d67529f8c924e8408c8bf3d210b8e2cd803cffc6d6460a63e079e331237811f1dbfeb03051090f4d6278a350  0003-empty-array-metadata.patch\n'
                ) 
                (
'd76c5ad8edd9f7ad017254ad1d1e9a822a42a12b9783a8217ab74e8afcc0aa58967dce52405e081ebd3ea63a63e8b0d0383c19112bfa579e10b47cd58debb7ee  0004-Option-for-sorting-object-keys.patch'
                )
              )
            }
          spids: [498]
        )
      ]
      spids: [498]
    )
  ]
)