(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgname)
          op: assign_op.Equal
          rhs: {<rust>}
          spids: [9]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgver)
          op: assign_op.Equal
          rhs: {<1.17.0>}
          spids: [12]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:_llvmver)
          op: assign_op.Equal
          rhs: {<3.9>}
          spids: [15]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:_bootver)
          op: assign_op.Equal
          rhs: {<1.16.0>}
          spids: [18]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgrel)
          op: assign_op.Equal
          rhs: {<3>}
          spids: [21]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgdesc)
          op: assign_op.Equal
          rhs: {(DQ <'The Rust Programming Language (compiler)'>)}
          spids: [24]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:url)
          op: assign_op.Equal
          rhs: {(DQ <'http://www.rust-lang.org'>)}
          spids: [29]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:arch)
          op: assign_op.Equal
          rhs: {(DQ <x86_64>)}
          spids: [34]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:license)
          op: assign_op.Equal
          rhs: {(DQ <'ASL-2.0 BSD ISC MIT'>)}
          spids: [39]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:depends)
          op: assign_op.Equal
          rhs: 
            {
              (DQ ($ Id.VSub_DollarName '$pkgname') <'-stdlib='> ($ Id.VSub_DollarName '$pkgver') <-r> 
                ($ Id.VSub_DollarName '$pkgrel') <' gcc llvm-libunwind-dev musl-dev'>
              )
            }
          spids: [54]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:makedepends)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'rust>='> ($ Id.VSub_DollarName '$_bootver') <' cargo\n'> 
                <'\tcmake file libffi-dev llvm'> ($ Id.VSub_DollarName '$_llvmver') <'-dev python2 tar zlib-dev'>
              )
            }
          spids: [77]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:subpackages)
          op: assign_op.Equal
          rhs: 
            {
              (DQ ($ Id.VSub_DollarName '$pkgname') <'-dbg '> ($ Id.VSub_DollarName '$pkgname') 
                <'-stdlib\n'> <'\t'> ($ Id.VSub_DollarName '$pkgname') <'-gdb::noarch '> ($ Id.VSub_DollarName '$pkgname') 
                <'-lldb::noarch '> ($ Id.VSub_DollarName '$pkgname') <-doc>
              )
            }
          spids: [88]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:source)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'https://static.rust-lang.org/dist/rustc-'> ($ Id.VSub_DollarName '$pkgver') 
                <'-src.tar.gz\n'> <'\tmusl-support-dynamic-linking.patch\n'> <'\tmusl-fix-static-linking.patch\n'> 
                <'\tmusl-fix-linux_musl_base.patch\n'> <'\tmusl-fix-jemalloc.patch\n'> <'\tllvm-with-ffi.patch\n'> <'\tstatic-pie.patch\n'> 
                <'\tneed-rpath.patch\n'> <'\tminimize-rpath.patch\n'> <'\talpine-allow-crt-static.patch\n'> 
                <'\talpine-move-py-scripts-to-share.patch\n'> <'\talpine-change-rpath-to-rustlib.patch\n'> <'\talpine-target.patch\n'> <'\tcheck-rustc\n'> <'\t'>
              )
            }
          spids: [103]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:builddir)
          op: assign_op.Equal
          rhs: 
            {
              (DQ ($ Id.VSub_DollarName '$srcdir') <'/rustc-'> ($ Id.VSub_DollarName '$pkgver') <-src>)
            }
          spids: [124]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:_rlibdir)
          op: assign_op.Equal
          rhs: {(DQ <'usr/lib/rustlib/'> ($ Id.VSub_DollarName '$CTARGET') <'/lib'>)}
          spids: [133]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:_sharedir)
          op: assign_op.Equal
          rhs: {(DQ <'usr/share/rust'>)}
          spids: [140]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:ldpath)
          op: assign_op.Equal
          rhs: {(DQ <'/'> ($ Id.VSub_DollarName '$_rlibdir'))}
          spids: [146]
        )
      ]
    )
    (command.ShFunction
      name: prepare
      body: 
        (BraceGroup
          children: [
            (C {<default_prepare>})
            (C {<cd>} {(DQ ($ Id.VSub_DollarName '$builddir'))})
            (C {<rm>} {<-Rf>} {<'src/llvm/'>} {<'src/jemalloc/'>})
            (command.Simple
              words: [
                {<printf>}
                {(SQ <'[target.%s]\\nllvm_config = "/usr/lib/llvm%s/bin/llvm-config"\\n'>)}
                {(DQ ($ Id.VSub_DollarName '$CTARGET'))}
                {(DQ ($ Id.VSub_DollarName '$_llvmver'))}
              ]
              redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<config.toml>})]
              do_fork: T
            )
          ]
        )
    )
    (command.ShFunction
      name: build
      body: 
        (BraceGroup
          children: [
            (C {<cd>} {(DQ ($ Id.VSub_DollarName '$builddir'))})
            (C {<'./configure'>} {<--build> <Id.Lit_Equals '='> (DQ ($ Id.VSub_DollarName '$CBUILD'))} 
              {<--host> <Id.Lit_Equals '='> (DQ ($ Id.VSub_DollarName '$CTARGET'))} {<--target> <Id.Lit_Equals '='> (DQ ($ Id.VSub_DollarName '$CTARGET'))} 
              {<--prefix> <Id.Lit_Equals '='> (DQ <'/usr'>)} {<--release-channel> <Id.Lit_Equals '='> (DQ <stable>)} {<--enable-local-rust>} 
              {<--local-rust-root> <Id.Lit_Equals '='> (DQ <'/usr'>)} {<--llvm-root> <Id.Lit_Equals '='> (DQ <'/usr/lib/llvm'> ($ Id.VSub_DollarName '$_llvmver'))} 
              {<--musl-root> <Id.Lit_Equals '='> (DQ <'/usr'>)} {<--enable-vendor>} {<--enable-llvm-link-shared>} {<--disable-jemalloc>} {<--disable-docs>}
            )
            (C {<make>} {<Id.Lit_VarLike 'RUST_BACKTRACE='> <1>} 
              {<Id.Lit_VarLike 'RUST_CRT_STATIC='> (DQ <false>)} {<Id.Lit_VarLike 'VERBOSE='> <1>}
            )
          ]
        )
    )
    (command.ShFunction
      name: check
      body: 
        (BraceGroup
          children: [
            (C {(DQ ($ Id.VSub_DollarName '$srcdir')) <'/check-rustc'>} 
              {
                (DQ ($ Id.VSub_DollarName '$builddir') <'/build/'> ($ Id.VSub_DollarName '$CTARGET') 
                  <'/stage2/bin/rustc'>
                )
              }
            )
          ]
        )
    )
    (command.ShFunction
      name: package
      body: 
        (BraceGroup
          children: [
            (C {<cd>} {(DQ ($ Id.VSub_DollarName '$builddir'))})
            (C {<make>} {<dist>} {<Id.Lit_VarLike 'RUST_BACKTRACE='> <1>} 
              {<Id.Lit_VarLike 'RUST_CRT_STATIC='> (DQ <false>)} {<Id.Lit_VarLike 'VERBOSE='> <1>}
            )
            (command.Sentence child:(C {<local>} {<component>}) terminator:<Id.Op_Semi _>)
            (command.ForEach
              iter_name: component
              iter_words: [{<rustc>} {<rust-std>}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (C {<tar>} {<-xf>} 
                      {
                        (DQ <'build/dist/'> ($ Id.VSub_DollarName '$component') <-> 
                          ($ Id.VSub_DollarName '$pkgver') <-> ($ Id.VSub_DollarName '$CTARGET') <.tar.gz>
                        )
                      }
                    )
                    (C 
                      {<'./'> 
                        (DQ ($ Id.VSub_DollarName '$component') <-> ($ Id.VSub_DollarName '$pkgver') <-> 
                          ($ Id.VSub_DollarName '$CTARGET')
                        ) <'/install.sh'>
                      } {<--destdir> <Id.Lit_Equals '='> (DQ ($ Id.VSub_DollarName '$pkgdir'))} 
                      {<--prefix> <Id.Lit_Equals '='> <'/usr'>} {<--disable-ldconfig>}
                    )
                  ]
                )
            )
            (C {<cd>} {(DQ ($ Id.VSub_DollarName '$pkgdir'))})
            (C {<rm>} {<-r>} {<'usr/lib/'> <Id.Lit_Star '*'> <.so>})
            (C {<rm>} {($ Id.VSub_DollarName '$_rlibdir') <'/crt'> <Id.Lit_Star '*'> <.o>})
            (C {<chmod>} {<Id.Lit_Other '+'> <x>} 
              {($ Id.VSub_DollarName '$_rlibdir') <'/'> <Id.Lit_Star '*'> <.so>}
            )
            (C {<_mv>} {<'usr/lib/rustlib/etc/'> <Id.Lit_Star '*'> <.py>} 
              {($ Id.VSub_DollarName '$_sharedir') <'/etc/'>}
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (command.Simple
                  words: [{<rmdir>} {<-p>} {<'usr/lib/rustlib/etc'>}]
                  redirects: [
                    (redir
                      op: <Id.Redir_Great '2>'>
                      loc: (redir_loc.Fd fd:2)
                      arg: {<'/dev/null'>}
                    )
                  ]
                  do_fork: T
                )
                (C {<true>})
              ]
            )
            (C {<cd>} {<'usr/lib/rustlib'>})
            (C {<rm>} {<components>} {<install.log>} {<manifest-> <Id.Lit_Star '*'>} 
              {<rust-installer-version>} {<uninstall.sh>}
            )
          ]
        )
    )
    (command.ShFunction
      name: stdlib
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:pkgdesc)
                  op: assign_op.Equal
                  rhs: {(DQ <'Standard library for Rust (static rlibs)'>)}
                  spids: [618]
                )
              ]
            )
            (C {<_mv>} 
              {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/'> ($ Id.VSub_DollarName '$_rlibdir') <'/'> 
                <Id.Lit_Star '*'> <.rlib>
              } {(DQ ($ Id.VSub_DollarName '$subpkgdir')) <'/'> ($ Id.VSub_DollarName '$_rlibdir') <'/'>}
            )
          ]
        )
    )
    (command.ShFunction
      name: gdb
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:pkgdesc)
                  op: assign_op.Equal
                  rhs: {(DQ <'GDB pretty printers for Rust'>)}
                  spids: [653]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:depends)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName '$pkgname') <' gdb'>)}
                  spids: [659]
                )
              ]
            )
            (C {<mkdir>} {<-p>} {(DQ ($ Id.VSub_DollarName '$subpkgdir'))})
            (C {<cd>} {(DQ ($ Id.VSub_DollarName '$subpkgdir'))})
            (C {<_mv>} {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/usr/bin/rust-gdb'>} {<'usr/bin/'>})
            (C {<_mv>} 
              {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/'> ($ Id.VSub_DollarName '$_sharedir') 
                <'/etc/gdb_'> <Id.Lit_Star '*'> <.py>
              } {($ Id.VSub_DollarName '$_sharedir') <'/etc/'>}
            )
          ]
        )
    )
    (command.ShFunction
      name: lldb
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:pkgdesc)
                  op: assign_op.Equal
                  rhs: {(DQ <'LLDB pretty printers for Rust'>)}
                  spids: [718]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:depends)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName '$pkgname') <' lldb py-lldb'>)}
                  spids: [724]
                )
              ]
            )
            (C {<mkdir>} {<-p>} {(DQ ($ Id.VSub_DollarName '$subpkgdir'))})
            (C {<cd>} {(DQ ($ Id.VSub_DollarName '$subpkgdir'))})
            (C {<_mv>} {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/usr/bin/rust-lldb'>} {<'usr/bin/'>})
            (C {<_mv>} 
              {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/'> ($ Id.VSub_DollarName '$_sharedir') 
                <'/etc/lldb_'> <Id.Lit_Star '*'> <.py>
              } {($ Id.VSub_DollarName '$_sharedir') <'/etc/'>}
            )
          ]
        )
    )
    (command.ShFunction
      name: _mv
      body: 
        (BraceGroup
          children: [
            (command.Sentence child:(C {<local>} {<dest>}) terminator:<Id.Op_Semi _>)
            (command.ForEach
              iter_name: dest
              do_arg_iter: T
              body: 
                (command.DoGroup
                  children: [(command.Sentence child:(C {<true>}) terminator:<Id.Op_Semi _>)]
                )
            )
            (C {<mkdir>} {<-p>} {(DQ ($ Id.VSub_DollarName '$dest'))})
            (C {<mv>} {($ Id.VSub_At '$@')})
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:sha512sums)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                <
'781799b29d83b4f0f433814bd818df034526db8e7f88c2df51d3b814eacafe8098d4bbe47ace951e1943325b3267b244007cf04f1f11083645b25aeacd40ebb6  rustc-1.17.0-src.tar.gz\n'
                > 
                <
'b0a8883e4469b60edd150c84486ab950396d757220f97bd271529576614c6c3b49456098507503832c20619d4bd74246dbc99c78116634a68a6df994793e9a94  musl-support-dynamic-linking.patch\n'
                > 
                <
'292c1cb4f751d830f5f1300d7ef94f573f698ac51e18243d7ff0d5a47bb1729bb2cbe8fb456e7a479213df5e5fbf49e360c9439d0f5ad7126cb72d161c91566a  musl-fix-static-linking.patch\n'
                > 
                <
'f436fddf7ab70ca5f1424081f5b75450270b200b3d997231323863e11addf76e1d65831a7ca09e3a5b7904ce828766c1f70b08326a175890298f28e5bc8646ef  musl-fix-linux_musl_base.patch\n'
                > 
                <
'c913d04ef419b2b6d8e453f72894070f263c9292abf97114a51884d475d03ce5b032053f1676ba9364800b4b35e394f707995058530ad5e4122c60f65ddd3db7  musl-fix-jemalloc.patch\n'
                > 
                <
'dc6432293bd060d5e3a73f25870867654fae61995dcd919e244a2dc686b6107556deed8c59ca6002182bfeff5ebc1ca2b89c4028ab0fbfb79e65defe47c9b4b0  llvm-with-ffi.patch\n'
                > 
                <
'5aaf6715b27b8b786740a55b91216d47985fbef3ccb0ef7e6a81696a2823671f8306143f7ecf77e66af91ef1500072524b9b4c7569508922ad5268df6080fda1  static-pie.patch\n'
                > 
                <
'ff633f2a46c683ad698d1c09c98c06ce9ee9b8d55fa5593cdd485b439ebca3273794d29b5ff32b887be8666f52913a23af6e133c782bd0c4e2c88e306dd3a494  need-rpath.patch\n'
                > 
                <
'd352614e7c774e181decae210140e789de7fc090327ff371981ad28a11ce51c8c01b27c1101a24bb84d75ed2f706f67868f7dbc52196d4ccdf4ebd2d6d6b6b5e  minimize-rpath.patch\n'
                > 
                <
'b00997c65d1a451fafae8b547893c5cbf03f028d2d70f6971aa670f34c2d6fc82728c740ac4a9909fc1999925ff300e4525cfec745cb9c9521e564eb166872a2  alpine-allow-crt-static.patch\n'
                > 
                <
'498f4649163974afc4f042c43cd0c15d36784031514201a2962061f288a9336c2bc9749f8d2308b8ce3656f8097b5fc5bef505f61e2a6ed422ef4153f5339d77  alpine-move-py-scripts-to-share.patch\n'
                > 
                <
'8d6206f8c50856724cf7b4c1854ec82547f040358a1c7d44abeacc27a5c205a963b1fec51e58ec06c68d85bd2f68a9e6e27ebe457f39e8dd043de17758f5063f  alpine-change-rpath-to-rustlib.patch\n'
                > 
                <
'aaf359dbfb8f379bef42647890e99ada4b5326c29f726edb16c51b23a5033b5e00363d2fb6d74a4f11dfbb241b21b22c578e2ec269ecd77a87cf20d3620b29a5  alpine-target.patch\n'
                > 
                <
'79549055dea81379c890b495c82456ab497a9179ec6702c59e11d0748bc668f47fc3d6a69c27a0545bb87c01318631dffc69260bf2d4badc75f53cbf7fad7528  check-rustc'
                >
              )
            }
          spids: [820]
        )
      ]
    )
  ]
)