(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:pkgname) op:Equal rhs:{(moonscript)} spids:[6])]
      spids: [6]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:pkgver) op:Equal rhs:{(0.5.0)} spids:[9])]
      spids: [9]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:pkgrel) op:Equal rhs:{(0)} spids:[12])]
      spids: [12]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:pkgdesc)
          op: Equal
          rhs: {(DQ ("A language that compiles to Lua"))}
          spids: [15]
        )
      ]
      spids: [15]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:url)
          op: Equal
          rhs: {(DQ ("http://moonscript.org"))}
          spids: [20]
        )
      ]
      spids: [20]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:arch) op:Equal rhs:{(DQ (noarch))} spids:[25])]
      spids: [25]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:license) op:Equal rhs:{(DQ (MIT))} spids:[30])]
      spids: [30]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:depends)
          op: Equal
          rhs: {(DQ ("lua-alt-getopt lua-filesystem lua-lpeg"))}
          spids: [35]
        )
      ]
      spids: [35]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:checkdepends)
          op: Equal
          rhs: {(DQ ("lua-busted lua-loadkit"))}
          spids: [40]
        )
      ]
      spids: [40]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:makedepends) op:Equal rhs:{(DQ (luarocks))} spids:[45])]
      spids: [45]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:subpackages) op:Equal rhs:{(DQ )} spids:[50])]
      spids: [50]
    )
    (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/leafo/") ($ VSub_Name "$pkgname") (/archive/v) ($ VSub_Name "$pkgver") (.tar.gz)
              )
            }
          spids: [54]
        )
      ]
      spids: [54]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:builddir)
          op: Equal
          rhs: {(DQ ($ VSub_Name "$srcdir") (/) ($ VSub_Name "$pkgname") (-) ($ VSub_Name "$pkgver"))}
          spids: [66]
        )
      ]
      spids: [66]
    )
    (Case
      to_match: {(DQ ($ VSub_Name "$CARCH"))}
      arms: [
        (case_arm
          pat_list: [{(s390x)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:_luajit) op:Equal rhs:{(DQ )} spids:[91])]
              spids: [91]
            )
          ]
          spids: [88 89 94 -1]
        )
        (case_arm
          pat_list: [{(Lit_Other "*")}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:checkdepends)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name "$checkdepends") (" luajit"))}
                  spids: [100]
                )
                (assign_pair
                  lhs: (LhsName name:_luajit)
                  op: Equal
                  rhs: {(DQ (jit))}
                  spids: [106]
                )
              ]
              spids: [100]
            )
          ]
          spids: [97 98 110 -1]
        )
      ]
      spids: [79 85 112]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:_luaversions)
          op: Equal
          rhs: {(DQ ("5.1 5.2 5.3"))}
          spids: [115]
        )
      ]
      spids: [115]
    )
    (ForEach
      iter_name: _v
      iter_words: [{($ VSub_Name "$_luaversions")}]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:subpackages)
                  op: Equal
                  rhs: 
                    {
                      (DQ ($ VSub_Name "$subpackages") (" lua") ($ VSub_Name "$_v") (-) 
                        ($ VSub_Name "$pkgname") (":_subpackage")
                      )
                    }
                  spids: [132]
                )
              ]
              spids: [132]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:checkdepends)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name "$checkdepends") (" lua") ($ VSub_Name "$_v"))}
                  spids: [143]
                )
              ]
              spids: [143]
            )
          ]
          spids: [129 150]
        )
      spids: [125 127]
    )
    (FuncDef
      name: prepare
      body: 
        (BraceGroup
          children: [
            (C {(default_prepare)})
            (C {(cd)} {(DQ ($ VSub_Name "$builddir"))})
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_Local
                  pairs: [(assign_pair lhs:(LhsName name:lver) op:Equal spids:[173])]
                  spids: [171]
                )
              terminator: <Op_Semi ";">
            )
            (ForEach
              iter_name: lver
              iter_words: [{($ VSub_Name "$_luaversions")}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_Local
                          pairs: [(assign_pair lhs:(LhsName name:name) op:Equal spids:[190])]
                          spids: [188]
                        )
                      terminator: <Op_Semi ";">
                    )
                    (ForEach
                      iter_name: name
                      iter_words: [{(moon)} {(moonc)}]
                      do_arg_iter: False
                      body: 
                        (DoGroup
                          children: [
                            (SimpleCommand
                              words: [
                                {(sed)}
                                {
                                  (DQ ("s|^#!/usr/bin/env lua|#!/usr/bin/lua") ($ VSub_Name "$lver") 
                                    ("|")
                                  )
                                }
                                {(bin/) ($ VSub_Name "$name")}
                              ]
                              redirects: [
                                (Redir
                                  op_id: Redir_Great
                                  fd: -1
                                  arg_word: {(bin/) ($ VSub_Name "$name") (-) ($ VSub_Name "$lver")}
                                  spids: [220]
                                )
                              ]
                            )
                          ]
                          spids: [204 228]
                        )
                      spids: [198 202]
                    )
                  ]
                  spids: [185 231]
                )
              spids: [181 183]
            )
          ]
          spids: [157]
        )
      spids: [153 156]
    )
    (FuncDef
      name: check
      body: 
        (BraceGroup
          children: [
            (C {(cd)} {(DQ ($ VSub_Name "$builddir"))})
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_Local
                  pairs: [(assign_pair lhs:(LhsName name:lver) op:Equal spids:[253])]
                  spids: [251]
                )
              terminator: <Op_Semi ";">
            )
            (ForEach
              iter_name: lver
              iter_words: [{($ VSub_Name "$_luaversions")} {($ VSub_Name "$_luajit")}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (C {(msg)} {(DQ ("Testing on lua") ($ VSub_Name "$lver"))})
                    (C {(lua) ($ VSub_Name "$lver")} {(/usr/bin/busted)})
                  ]
                  spids: [267 284]
                )
              spids: [261 265]
            )
          ]
          spids: [240]
        )
      spids: [236 239]
    )
    (FuncDef
      name: package
      body: 
        (BraceGroup
          children: [
            (C {(cd)} {(DQ ($ VSub_Name "$builddir"))})
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_Local
                  pairs: [(assign_pair lhs:(LhsName name:name) op:Equal spids:[306])]
                  spids: [304]
                )
              terminator: <Op_Semi ";">
            )
            (ForEach
              iter_name: name
              iter_words: [{(moon)} {(moonc)}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (C {(install)} {(-D)} {(-m)} {(755)} {(bin/) ($ VSub_Name "$name")} 
                      {(DQ ($ VSub_Name "$pkgdir")) (/usr/bin/) ($ VSub_Name "$name")}
                    )
                  ]
                  spids: [320 341]
                )
              spids: [314 318]
            )
          ]
          spids: [293]
        )
      spids: [289 292]
    )
    (FuncDef
      name: _subpackage
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:lver)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (BracedVarSub
                          token: <VSub_Name subpkgname>
                          suffix_op: 
                            (Slice
                              begin: (ArithWord w:{(Lit_Digits 3)})
                              length: (ArithWord w:{(Lit_Digits 3)})
                            )
                          spids: [357 363]
                        )
                      )
                    }
                  spids: [355]
                )
              ]
              spids: [353]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:pkgdesc)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name "$pkgdesc") (" (for Lua ") ($ VSub_Name "$lver") (")"))}
                  spids: [367]
                )
              ]
              spids: [367]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:depends)
                  op: Equal
                  rhs: 
                    {
                      (DQ (lua) ($ VSub_Name "$lver") (" ") 
                        (BracedVarSub
                          token: <VSub_Name depends>
                          suffix_op: 
                            (PatSub
                              pat: {(lua-)}
                              replace: {(lua) ($ VSub_Name "$lver") (-)}
                              do_all: True
                              do_prefix: False
                              do_suffix: False
                            )
                          spids: [381 390]
                        )
                      )
                    }
                  spids: [376]
                )
              ]
              spids: [376]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:install_if)
                  op: Equal
                  rhs: 
                    {
                      (DQ ($ VSub_Name "$pkgname") ("=") ($ VSub_Name "$pkgver") (-r) 
                        ($ VSub_Name "$pkgrel") (" lua") ($ VSub_Name "$lver")
                      )
                    }
                  spids: [394]
                )
              ]
              spids: [394]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:lmod_dir)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name "$subpkgdir") (/usr/share/lua/) ($ VSub_Name "$lver"))}
                  spids: [408]
                )
              ]
              spids: [406]
            )
            (C {(cd)} {(DQ ($ VSub_Name "$builddir"))})
            (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$lmod_dir"))})
            (C {(cp)} {(-r)} {(moon)} {(moonscript)} {(moon.lua)} {(moonscript.lua)} 
              {(DQ ($ VSub_Name "$lmod_dir")) (/)}
            )
            (C {(find)} {(DQ ($ VSub_Name "$lmod_dir"))} {(-name)} {(DQ ("*.moon"))} {(-delete)})
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_Local
                  pairs: [(assign_pair lhs:(LhsName name:name) op:Equal spids:[470])]
                  spids: [468]
                )
              terminator: <Op_Semi ";">
            )
            (ForEach
              iter_name: name
              iter_words: [{(moon)} {(moonc)}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (C {(install)} {(-D)} {(-m)} {(755)} 
                      {(bin/) ($ VSub_Name "$name") (-) ($ VSub_Name "$lver")} {(DQ ($ VSub_Name "$subpkgdir")) (/usr/bin/) ($ VSub_Name "$name") (-) ($ VSub_Name "$lver")}
                    )
                  ]
                  spids: [484 509]
                )
              spids: [478 482]
            )
          ]
          spids: [350]
        )
      spids: [346 349]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:sha512sums)
          op: Equal
          rhs: 
            {
              (DQ 
                (
"f573f9a96502662987de637f7f62b935fab93aa775122c9ae20d98029394e3136e6b519908ce76e1e77c51fbcee162c3ad0aa58eeb1ee56a2b07951437987941  moonscript-0.5.0.tar.gz"
                )
              )
            }
          spids: [514]
        )
      ]
      spids: [514]
    )
  ]
)