(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:_luaversions)
          op: Equal
          rhs: {(DQ ("5.1 5.2 5.3"))}
          spids: [3]
        )
      ]
      spids: [3]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:pkgname) op:Equal rhs:{(lua-rex)} spids:[8])]
      spids: [8]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:pkgver) op:Equal rhs:{(2.8.0)} spids:[11])]
      spids: [11]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:pkgrel) op:Equal rhs:{(0)} spids:[14])]
      spids: [14]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:pkgdesc)
          op: Equal
          rhs: {(DQ ("Lua bindings to regular expression library pcre and posix"))}
          spids: [17]
        )
      ]
      spids: [17]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:url)
          op: Equal
          rhs: {(DQ ("http://lrexlib.luaforge.net/"))}
          spids: [22]
        )
      ]
      spids: [22]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:arch) op:Equal rhs:{(DQ (all))} spids:[27])]
      spids: [27]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:license) op:Equal rhs:{(DQ (MIT))} spids:[32])]
      spids: [32]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:depends)
          op: Equal
          rhs: {(DQ ("lua-rex-pcre lua-rex-posix"))}
          spids: [37]
        )
      ]
      spids: [37]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:makedepends) op:Equal rhs:{(DQ (pcre-dev))} spids:[42])]
      spids: [42]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:install) op:Equal rhs:{(SQ )} spids:[47])]
      spids: [47]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:subpackages)
          op: Equal
          rhs: 
            {
              (DQ ($ VSub_Name "$pkgname") ("-pcre:_pcre ") ($ VSub_Name "$pkgname") ("-posix:_posix"))
            }
          spids: [49]
        )
      ]
      spids: [49]
    )
    (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 lua") 
                        ($ VSub_Name "$_i")
                      )
                    }
                  spids: [70]
                )
              ]
              spids: [70]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:subpackages)
                  op: Equal
                  rhs: 
                    {
                      (DQ ($ VSub_Name "$subpackages") (" lua") ($ VSub_Name "$_i") ("-rex-pcre:_pcre_") 
                        (BracedVarSub
                          token: <VSub_Name _i>
                          suffix_op: 
                            (PatSub
                              pat: {(.)}
                              replace: {(_)}
                              do_all: False
                              do_prefix: False
                              do_suffix: False
                            )
                          spids: [86 92]
                        ) ("\n") ("\t\tlua") ($ VSub_Name "$_i") ("-rex-posix:_posix_") 
                        (BracedVarSub
                          token: <VSub_Name _i>
                          suffix_op: 
                            (PatSub
                              pat: {(.)}
                              replace: {(_)}
                              do_all: False
                              do_prefix: False
                              do_suffix: False
                            )
                          spids: [97 103]
                        )
                      )
                    }
                  spids: [80]
                )
              ]
              spids: [80]
            )
            (C {(eval)} 
              {
                (DQ (_pcre_) 
                  (BracedVarSub
                    token: <VSub_Name _i>
                    suffix_op: 
                      (PatSub
                        pat: {(.)}
                        replace: {(_)}
                        do_all: False
                        do_prefix: False
                        do_suffix: False
                      )
                    spids: [112 118]
                  ) ("() { _split ") ($ VSub_Name "$_i") (" pcre; }")
                )
              }
            )
            (C {(eval)} 
              {
                (DQ (_posix_) 
                  (BracedVarSub
                    token: <VSub_Name _i>
                    suffix_op: 
                      (PatSub
                        pat: {(.)}
                        replace: {(_)}
                        do_all: False
                        do_prefix: False
                        do_suffix: False
                      )
                    spids: [129 135]
                  ) ("() { _split ") ($ VSub_Name "$_i") (" posix; }")
                )
              }
            )
          ]
          spids: [67 141]
        )
      spids: [63 65]
    )
    (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/rrthomas/lrexlib/archive/rel-") 
                (BracedVarSub
                  token: <VSub_Name pkgver>
                  suffix_op: 
                    (PatSub
                      pat: {(.)}
                      replace: {(-)}
                      do_all: True
                      do_prefix: False
                      do_suffix: False
                    )
                  spids: [150 157]
                ) (.tar.gz)
              )
            }
          spids: [144]
        )
      ]
      spids: [144]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:_builddir)
          op: Equal
          rhs: 
            {(DQ ($ VSub_Name "$srcdir")) (/lrexlib-rel-) 
              (BracedVarSub
                token: <VSub_Name pkgver>
                suffix_op: 
                  (PatSub
                    pat: {(.)}
                    replace: {(-)}
                    do_all: True
                    do_prefix: False
                    do_suffix: False
                  )
                spids: [167 174]
              )
            }
          spids: [162]
        )
      ]
      spids: [162]
    )
    (FuncDef
      name: prepare
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:_ver) op:Equal spids:[186])]
              spids: [184]
            )
            (ForEach
              iter_name: _ver
              iter_words: [{($ VSub_Name "$_luaversions")}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (C {(cp)} {(-r)} {(DQ ($ VSub_Name "$_builddir"))} 
                      {(DQ ($ VSub_Name "$srcdir")) (/build-) ($ VSub_Name "$_ver")}
                    )
                  ]
                  spids: [198 216]
                )
              spids: [194 196]
            )
          ]
          spids: [181]
        )
      spids: [177 180]
    )
    (FuncDef
      name: _build_variant
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_ver)
                  op: Equal
                  rhs: {($ VSub_Number "$1")}
                  spids: [230]
                )
              ]
              spids: [228]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_obj)
                  op: Equal
                  rhs: {($ VSub_Number "$2")}
                  spids: [236]
                )
              ]
              spids: [234]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_flags)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number "$3"))}
                  spids: [242]
                )
              ]
              spids: [240]
            )
            (AndOr
              children: [
                (C 
                  {
                    (BracedVarSub
                      token: <VSub_Name CC>
                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(gcc)})
                      spids: [249 253]
                    )
                  } {(${ VSub_Name CFLAGS)} 
                  {
                    (CommandSubPart
                      command_list: 
                        (CommandList
                          children: [(C {(pkg-config)} {(--cflags)} {(lua) ($ VSub_Name "$_ver")})]
                        )
                      left_token: <Left_CommandSub "$(">
                      spids: [263 270]
                    )
                  } {(-shared)} {(-fPIC)} {(-o)} 
                  {($ VSub_Name "$_obj") (.) 
                    (BracedVarSub
                      token: <VSub_Name pkgver>
                      suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(".*")})
                      spids: [286 290]
                    )
                  } {($ VSub_Name "$_flags")} 
                  {(-DVERSION) (Lit_Other "=") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) 
                    ($ VSub_Name "$pkgver") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">)
                  } {(-DLUA_COMPAT_5_2)}
                )
                (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
              ]
              op_id: Op_DPipe
            )
            (AndOr
              children: [
                (C {(ln)} {(-s)} 
                  {($ VSub_Name "$_obj") (.) 
                    (BracedVarSub
                      token: <VSub_Name pkgver>
                      suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(".*")})
                      spids: [321 325]
                    )
                  } {($ VSub_Name "$_obj")}
                )
                (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
              ]
              op_id: Op_DPipe
            )
          ]
          spids: [225]
        )
      spids: [221 224]
    )
    (FuncDef
      name: build
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:_ver) op:Equal spids:[347])]
              spids: [345]
            )
            (ForEach
              iter_name: _ver
              iter_words: [{($ VSub_Name "$_luaversions")}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (C {(msg)} {(DQ ("build for Lua ") ($ VSub_Name "$_ver"))})
                    (C {(cd)} {(DQ ($ VSub_Name "$srcdir")) (/build-) ($ VSub_Name "$_ver")})
                    (AndOr
                      children: [
                        (C {(_build_variant)} {($ VSub_Name "$_ver")} {(rex_pcre.so)} 
                          {
                            (SQ <"src/common.c src/pcre/lpcre.c src/pcre/lpcre_f.c\n"> 
                              <"\t\t\t-lpcre">
                            )
                          }
                        )
                        (ControlFlow
                          token: <ControlFlow_Return return>
                          arg_word: {(1)}
                        )
                      ]
                      op_id: Op_DPipe
                    )
                    (AndOr
                      children: [
                        (C {(_build_variant)} {($ VSub_Name "$_ver")} {(rex_posix.so)} 
                          {(SQ <"src/common.c src/posix/lposix.c">)}
                        )
                        (ControlFlow
                          token: <ControlFlow_Return return>
                          arg_word: {(1)}
                        )
                      ]
                      op_id: Op_DPipe
                    )
                  ]
                  spids: [359 418]
                )
              spids: [355 357]
            )
          ]
          spids: [342]
        )
      spids: [338 341]
    )
    (FuncDef
      name: package
      body: (BraceGroup children:[(C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$pkgdir"))})] spids:[427])
      spids: [423 426]
    )
    (FuncDef
      name: _pcre
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:pkgdesc)
                  op: Equal
                  rhs: {(DQ ("Lua bindings to pcre regular expressions library"))}
                  spids: [448]
                )
              ]
              spids: [448]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:depends) op:Equal rhs:{(SQ )} spids:[454])]
              spids: [454]
            )
            (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$subpkgdir"))})
          ]
          spids: [445]
        )
      spids: [441 444]
    )
    (FuncDef
      name: _posix
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:pkgdesc)
                  op: Equal
                  rhs: {(DQ ("Lua bindings to posix regular expressions library"))}
                  spids: [475]
                )
              ]
              spids: [475]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:depends) op:Equal rhs:{(SQ )} spids:[481])]
              spids: [481]
            )
            (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$subpkgdir"))})
          ]
          spids: [472]
        )
      spids: [468 471]
    )
    (FuncDef
      name: _split
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_ver)
                  op: Equal
                  rhs: {($ VSub_Number "$1")}
                  spids: [504]
                )
              ]
              spids: [502]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_lib)
                  op: Equal
                  rhs: {($ VSub_Number "$2")}
                  spids: [510]
                )
              ]
              spids: [508]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:pkgdesc)
                  op: Equal
                  rhs: 
                    {
                      (DQ ("Lua ") ($ VSub_Name "$_ver") (" bindings to ") ($ VSub_Name "$_lib") 
                        (" regular expressions library")
                      )
                    }
                  spids: [514]
                )
              ]
              spids: [514]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:install_if)
                  op: Equal
                  rhs: 
                    {
                      (DQ (lua) ($ VSub_Name "$_ver") (" lua-rex-") ($ VSub_Name "$_lib") ("=") 
                        ($ VSub_Name "$pkgver") (-r) ($ VSub_Name "$pkgrel")
                      )
                    }
                  spids: [524]
                )
              ]
              spids: [524]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:depends) op:Equal rhs:{(SQ )} spids:[537])]
              spids: [537]
            )
            (AndOr
              children: [
                (C {(install)} {(-d)} 
                  {(DQ ($ VSub_Name "$subpkgdir")) (/usr/lib/lua/) ($ VSub_Name "$_ver")}
                )
                (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
              ]
              op_id: Op_DPipe
            )
            (AndOr
              children: [
                (C {(cp)} {(-a)} 
                  {(DQ ($ VSub_Name "$srcdir")) (/build-) ($ VSub_Name "$_ver") (/rex_) 
                    ($ VSub_Name "$_lib") (.so) (Lit_Other "*")
                  } {(DQ ($ VSub_Name "$subpkgdir")) (/usr/lib/lua/) ($ VSub_Name "$_ver")}
                )
                (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
              ]
              op_id: Op_DPipe
            )
          ]
          spids: [499]
        )
      spids: [495 498]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:md5sums)
          op: Equal
          rhs: {(DQ ("25b88d455e3d389ab431568290060af5  lua-rex-2.8.0.tar.gz"))}
          spids: [588]
        )
      ]
      spids: [588]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:sha256sums)
          op: Equal
          rhs: 
            {
              (DQ 
                (
"d47f2de3340b30c75a849feaf02f79de5a8adf735edf631bbd58447db2101822  lua-rex-2.8.0.tar.gz"
                )
              )
            }
          spids: [593]
        )
      ]
      spids: [593]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:sha512sums)
          op: Equal
          rhs: 
            {
              (DQ 
                (
"9593263541757f384df327c85a01df648767041c494f9f7b3491a521e7d4f94918b967c48adff6794bc93baf3b4a11add6feb4630de8bf53903ff7a819c1b006  lua-rex-2.8.0.tar.gz"
                )
              )
            }
          spids: [598]
        )
      ]
      spids: [598]
    )
  ]
)