(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:_pkgname) op:Equal rhs:{(llvm)} spids:[12])]
      spids: [12]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:pkgver) op:Equal rhs:{(3.9.1)} spids:[15])]
      spids: [15]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:_majorver)
          op: Equal
          rhs: 
            {
              (BracedVarSub
                token: <VSub_Name pkgver>
                suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(".*")})
                spids: [19 23]
              )
            }
          spids: [18]
        )
      ]
      spids: [18]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:pkgname)
          op: Equal
          rhs: {($ VSub_Name "$_pkgname") ($ VSub_Name "$_majorver")}
          spids: [25]
        )
      ]
      spids: [25]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:pkgrel) op:Equal rhs:{(2)} spids:[29])]
      spids: [29]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:pkgdesc)
          op: Equal
          rhs: 
            {
              (DQ ("Low Level Virtual Machine compiler system (version ") ($ VSub_Name "$_majorver") 
                (")")
              )
            }
          spids: [32]
        )
      ]
      spids: [32]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:arch) op:Equal rhs:{(DQ (all))} spids:[39])]
      spids: [39]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:url)
          op: Equal
          rhs: {(DQ ("http://llvm.org/"))}
          spids: [44]
        )
      ]
      spids: [44]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:license) op:Equal rhs:{(DQ (UOI-NCSA))} spids:[49])]
      spids: [49]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:depends_dev)
          op: Equal
          rhs: 
            {
              (DQ ($ VSub_Name "$pkgname") ("=") ($ VSub_Name "$pkgver") (-r) ($ VSub_Name "$pkgrel"))
            }
          spids: [54]
        )
      ]
      spids: [54]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:makedepends)
          op: Equal
          rhs: {(DQ ("binutils-dev chrpath cmake file libffi-dev paxmark python2 zlib-dev"))}
          spids: [63]
        )
      ]
      spids: [63]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:subpackages)
          op: Equal
          rhs: 
            {
              (DQ ($ VSub_Name "$pkgname") ("-static ") ($ VSub_Name "$pkgname") ("-libs ") 
                ($ VSub_Name "$pkgname") (-dev)
              )
            }
          spids: [68]
        )
      ]
      spids: [68]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:source)
          op: Equal
          rhs: 
            {
              (DQ ("http://llvm.org/releases/") ($ VSub_Name "$pkgver") (/llvm-) ($ VSub_Name "$pkgver") 
                (".src.tar.xz\n") ("\tllvm-fix-build-with-musl-libc.patch\n") 
                ("\tllvm-fix-DynamicLibrary-to-build-with-musl-libc.patch\n") ("\tcmake-fix-libLLVM-name.patch\n") ("\tdisable-FileSystemTest.CreateDir-perms-assert.patch\n") ("\n") 
                ("\trust-lang-llvm-pr47.patch\n") ("\trust-lang-llvm-pr53.patch\n") ("\trust-lang-llvm-pr54.patch\n") ("\trust-lang-llvm-pr55.patch\n") 
                ("\trust-lang-llvm-pr57.patch\n") ("\t")
              )
            }
          spids: [78]
        )
      ]
      spids: [78]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:builddir)
          op: Equal
          rhs: 
            {
              (DQ ($ VSub_Name "$srcdir") (/) ($ VSub_Name "$_pkgname") (-) ($ VSub_Name "$pkgver") (.src))
            }
          spids: [98]
        )
      ]
      spids: [98]
    )
    (Case
      to_match: {(DQ ($ VSub_Name "$CARCH"))}
      arms: [
        (case_arm
          pat_list: [{(arm) (Lit_Other "*")}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:options)
                  op: Equal
                  rhs: {(DQ ("!check"))}
                  spids: [128]
                )
              ]
              spids: [128]
            )
          ]
          spids: [124 126 132 -1]
        )
      ]
      spids: [115 121 134]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:_prefix)
          op: Equal
          rhs: {(DQ (usr/lib/llvm) ($ VSub_Name "$_majorver"))}
          spids: [191]
        )
      ]
      spids: [191]
    )
    (FuncDef
      name: prepare
      body: 
        (BraceGroup
          children: [
            (C {(default_prepare)})
            (C {(cd)} {(DQ ($ VSub_Name "$builddir"))})
            (C {(rm)} {(test/tools/llvm-symbolizer/print_context.c)})
            (C {(rm)} {(test/CodeGen/ARM/dbg-range-extension.mir)})
            (C {(rm)} {(test/DebugInfo/MIR/X86/livedebugvalues-limit.mir)})
            (C {(rm)} {(test/CodeGen/MIR/AArch64/inst-size-tlsdesc-callseq.mir)})
            (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$builddir")) (/build)})
          ]
          spids: [202]
        )
      spids: [198 201]
    )
    (FuncDef
      name: build
      body: 
        (BraceGroup
          children: [
            (C {(cd)} {(DQ ($ VSub_Name "$builddir")) (/build)})
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:ffi_include_dir)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(pkg-config)} {(--cflags-only-I)} {(libffi)})
                                    (C {(sed)} {(SQ <"s|^-I||g">)})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [287 301]
                        )
                      )
                    }
                  spids: [285]
                )
              ]
              spids: [283]
            )
            (C {(cmake)} {(-G)} {(DQ ("Unix Makefiles"))} {(-Wno-dev)} 
              {(-DCMAKE_BUILD_TYPE) (Lit_Other "=") (Release)} {(-DCMAKE_INSTALL_PREFIX) (Lit_Other "=") (/) ($ VSub_Name "$_prefix")} 
              {(-DCMAKE_VERBOSE_MAKEFILE) (Lit_Other "=") (NO)} {(-DFFI_INCLUDE_DIR) (Lit_Other "=") (DQ ($ VSub_Name "$ffi_include_dir"))} 
              {(-DLLVM_BINUTILS_INCDIR) (Lit_Other "=") (/usr/include)} {(-DLLVM_BUILD_DOCS) (Lit_Other "=") (OFF)} {(-DLLVM_BUILD_EXAMPLES) (Lit_Other "=") (OFF)} 
              {(-DLLVM_BUILD_EXTERNAL_COMPILER_RT) (Lit_Other "=") (ON)} {(-DLLVM_BUILD_LLVM_DYLIB) (Lit_Other "=") (ON)} {(-DLLVM_BUILD_TESTS) (Lit_Other "=") (ON)} 
              {(-DLLVM_DEFAULT_TARGET_TRIPLE) (Lit_Other "=") (DQ ($ VSub_Name "$CBUILD"))} {(-DLLVM_DYLIB_EXPORT_ALL) (Lit_Other "=") (ON)} {(-DLLVM_ENABLE_ASSERTIONS) (Lit_Other "=") (OFF)} 
              {(-DLLVM_ENABLE_CXX1Y) (Lit_Other "=") (ON)} {(-DLLVM_ENABLE_FFI) (Lit_Other "=") (ON)} {(-DLLVM_ENABLE_LIBCXX) (Lit_Other "=") (OFF)} 
              {(-DLLVM_ENABLE_PIC) (Lit_Other "=") (ON)} {(-DLLVM_ENABLE_RTTI) (Lit_Other "=") (ON)} {(-DLLVM_ENABLE_SPHINX) (Lit_Other "=") (OFF)} 
              {(-DLLVM_ENABLE_TERMINFO) (Lit_Other "=") (ON)} {(-DLLVM_ENABLE_ZLIB) (Lit_Other "=") (ON)} 
              {(-DLLVM_HOST_TRIPLE) (Lit_Other "=") (DQ ($ VSub_Name "$CHOST"))} {(-DLLVM_INCLUDE_EXAMPLES) (Lit_Other "=") (OFF)} {(-DLLVM_LINK_LLVM_DYLIB) (Lit_Other "=") (ON)} 
              {(-DLLVM_TARGETS_TO_BUILD) (Lit_Other "=") 
                (SQ <"X86;ARM;AArch64;PowerPC;SystemZ;AMDGPU;NVPTX;Mips;BPF">)
              } {(DQ ($ VSub_Name "$builddir"))}
            )
            (C {(make)} {(llvm-tblgen)})
            (C {(make)})
            (C {(paxmark)} {(m)} {(bin/llvm-rtdyld)} {(bin/lli)} {(bin/lli-child-target)} 
              {(unittests/ExecutionEngine/MCJIT/MCJITTests)} {(unittests/ExecutionEngine/Orc/OrcJITTests)} {(unittests/Support/SupportTests)}
            )
          ]
          spids: [267]
        )
      spids: [263 266]
    )
    (FuncDef
      name: check
      body: 
        (BraceGroup
          children: [(C {(cd)} {(DQ ($ VSub_Name "$builddir")) (/build)}) (C {(make)} {(check-llvm)})]
          spids: [527]
        )
      spids: [523 526]
    )
    (FuncDef
      name: package
      body: 
        (BraceGroup
          children: [
            (C {(cd)} {(DQ ($ VSub_Name "$builddir")) (/build)})
            (C {(make)} {(Lit_VarLike "DESTDIR=") (DQ ($ VSub_Name "$pkgdir"))} {(install)})
            (C {(install)} {(-D)} {(-m)} {(755)} {(bin/FileCheck)} 
              {(DQ ($ VSub_Name "$pkgdir")) (/) ($ VSub_Name "$_prefix") (/bin/FileCheck)}
            )
            (C {(cd)} {(DQ ($ VSub_Name "$pkgdir")) (/) ($ VSub_Name "$_prefix")})
            (Pipeline
              children: [
                (C {(file)} {(lib/) (Lit_Other "*") (.so)} {(bin/) (Lit_Other "*")})
                (C {(awk)} {(-F) (Lit_Other ":")} {(SQ <"$2~/ELF/{print $1}">)})
                (C {(xargs)} {(-r)} {(chrpath)} {(-d)})
              ]
              negated: False
            )
            (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$pkgdir")) (/usr/bin)})
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair lhs:(LhsName name:name) op:Equal spids:[662])
                (assign_pair lhs:(LhsName name:path) op:Equal spids:[664])
              ]
              spids: [660]
            )
            (ForEach
              iter_name: path
              iter_words: [{(bin/) (Lit_Other "*")}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:name)
                          op: Equal
                          rhs: 
                            {
                              (BracedVarSub
                                token: <VSub_Name path>
                                suffix_op: 
                                  (StringUnary
                                    op_id: VOp1_DPound
                                    arg_word: {("*") (Lit_Slash /)}
                                  )
                                spids: [681 686]
                              )
                            }
                          spids: [680]
                        )
                      ]
                      spids: [680]
                    )
                    (Case
                      to_match: {(DQ ($ VSub_Name "$name"))}
                      arms: [
                        (case_arm
                          pat_list: [{(FileCheck)} {(obj2yaml)} {(yaml2obj)}]
                          action: [(ControlFlow token:<ControlFlow_Continue continue>)]
                          spids: [698 707 710 -1]
                        )
                      ]
                      spids: [689 695 713]
                    )
                    (C {(ln)} {(-s)} 
                      {(../lib/llvm) ($ VSub_Name "$_majorver") (/bin/) ($ VSub_Name "$name")} {(DQ ($ VSub_Name "$pkgdir")) (/usr/bin/) ($ VSub_Name "$name") (-) ($ VSub_Name "$_majorver")}
                    )
                  ]
                  spids: [677 734]
                )
              spids: [672 675]
            )
            (C {(_mv)} {(include/) (Lit_Other "*")} 
              {(DQ ($ VSub_Name "$pkgdir")) (/usr/include/) ($ VSub_Name "$pkgname") (/)}
            )
            (C {(rmdir)} {(include)})
            (C {(ln)} {(-s)} {(../../include/) ($ VSub_Name "$pkgname")} {(include)})
            (C {(_mv)} {(lib/cmake/llvm/) (Lit_Other "*")} 
              {(DQ ($ VSub_Name "$pkgdir")) (/usr/lib/cmake/) ($ VSub_Name "$pkgname") (/)}
            )
            (C {(rmdir)} {(lib/cmake/llvm)})
            (C {(ln)} {(-s)} {(../../../cmake/) ($ VSub_Name "$pkgname")} {(lib/cmake/llvm)})
          ]
          spids: [550]
        )
      spids: [546 549]
    )
    (FuncDef
      name: static
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:pkgdesc)
                  op: Equal
                  rhs: {(DQ ("LLVM ") ($ VSub_Name "$_majorver") (" static libraries"))}
                  spids: [820]
                )
              ]
              spids: [820]
            )
            (C {(_mv)} 
              {(DQ ($ VSub_Name "$pkgdir")) (/) ($ VSub_Name "$_prefix") (/lib/) (Lit_Other "*") (.a)} {(DQ ($ VSub_Name "$subpkgdir")) (/) ($ VSub_Name "$_prefix") (/lib/)}
            )
          ]
          spids: [817]
        )
      spids: [813 816]
    )
    (FuncDef
      name: libs
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:pkgdesc)
                  op: Equal
                  rhs: {(DQ ("LLVM ") ($ VSub_Name "$_majorver") (" runtime library"))}
                  spids: [857]
                )
              ]
              spids: [857]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:soname)
                  op: Equal
                  rhs: {(DQ (libLLVM-) ($ VSub_Name "$_majorver") (.so))}
                  spids: [867]
                )
              ]
              spids: [865]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:soname2)
                  op: Equal
                  rhs: {(DQ (libLLVM-) ($ VSub_Name "$pkgver") (.so))}
                  spids: [877]
                )
              ]
              spids: [875]
            )
            (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$subpkgdir"))})
            (C {(cd)} {(DQ ($ VSub_Name "$subpkgdir"))})
            (C {(_mv)} 
              {(DQ ($ VSub_Name "$pkgdir")) (/) ($ VSub_Name "$_prefix") (/lib/) 
                ($ VSub_Name "$soname")
              } {(usr/lib/)}
            )
            (C {(ln)} {(-s)} {($ VSub_Name "$soname")} {(usr/lib/) ($ VSub_Name "$soname2")})
            (C {(mkdir)} {(-p)} {($ VSub_Name "$_prefix") (/lib)})
            (C {(ln)} {(-s)} {(../../) ($ VSub_Name "$soname")} 
              {($ VSub_Name "$_prefix") (/lib/) ($ VSub_Name "$soname")}
            )
            (C {(ln)} {(-s)} {(../../) ($ VSub_Name "$soname")} 
              {($ VSub_Name "$_prefix") (/lib/) ($ VSub_Name "$soname2")}
            )
          ]
          spids: [854]
        )
      spids: [850 853]
    )
    (FuncDef
      name: dev
      body: 
        (BraceGroup
          children: [
            (C {(default_dev)})
            (C {(cd)} {(DQ ($ VSub_Name "$subpkgdir"))})
            (C {(_mv)} {(DQ ($ VSub_Name "$pkgdir")) (/) ($ VSub_Name "$_prefix") (/lib)} 
              {($ VSub_Name "$_prefix") (/)}
            )
            (C {(_mv)} {(DQ ($ VSub_Name "$pkgdir")) (/) ($ VSub_Name "$_prefix") (/include)} 
              {($ VSub_Name "$_prefix") (/)}
            )
            (C {(_mv)} {(DQ ($ VSub_Name "$pkgdir")) (/) ($ VSub_Name "$_prefix") (/bin/FileCheck)} 
              {($ VSub_Name "$_prefix") (/bin/)}
            )
            (C {(_mv)} {(DQ ($ VSub_Name "$pkgdir")) (/) ($ VSub_Name "$_prefix") (/bin/llvm-config)} 
              {($ VSub_Name "$_prefix") (/bin/)}
            )
            (C {(_mv)} {(DQ ($ VSub_Name "$pkgdir")) (/usr/bin/llvm-config-) (Lit_Other "*")} 
              {(usr/bin/)}
            )
          ]
          spids: [977]
        )
      spids: [973 976]
    )
    (FuncDef
      name: _mv
      body: 
        (BraceGroup
          children: [
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_Local
                  pairs: [(assign_pair lhs:(LhsName name:dest) op:Equal spids:[1066])]
                  spids: [1064]
                )
              terminator: <Op_Semi ";">
            )
            (ForEach
              iter_name: dest
              do_arg_iter: True
              body: 
                (DoGroup
                  children: [(Sentence child:(C {(true)}) terminator:<Op_Semi ";">)]
                  spids: [1074 1079]
                )
              spids: [-1 -1]
            )
            (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$dest"))})
            (C {(mv)} {($ VSub_At "$@")})
          ]
          spids: [1061]
        )
      spids: [1057 1060]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:sha512sums)
          op: Equal
          rhs: 
            {
              (DQ 
                (
"50cbe8ee911080f586e77861c442348701bd02e2de0c090c54c34f82ac275ecfcd712af0f41e387c33b4a6057778a4258a27554292fe68ab4af3fd9dd6d90683  llvm-3.9.1.src.tar.xz\n"
                ) 
                (
"f84cd65d7042e89826ba6e8d48c4c302bf4980da369d7f19a55f217e51c00ca8ed178d453df3a3cee76598a7cecb94aed0775a6d24fe73266f82749913fc3e71  llvm-fix-build-with-musl-libc.patch\n"
                ) 
                (
"19bfb9282455d39d07dbb2b1293b03a45c57d522fbb9c5e58dac034200669628b97e7a90cd4ff5d52d9bb79acfccbef653d8a1140a7f0589ecd6f9b7c4ba0eb6  llvm-fix-DynamicLibrary-to-build-with-musl-libc.patch\n"
                ) 
                (
"6d1a716e5aa24e6b9a3acf4cc11e2504b1b01abf574074e9e5617b991de87d5e4e687eb18e85e73d5e632568afe2fc357771c4c96f9e136502071991496fb78c  cmake-fix-libLLVM-name.patch\n"
                ) 
                (
"49c47f125014b60d0ea7870f981a2c1708ad705793f89287ed846ee881a837a4dc0170bf467e03f2ef56177473128945287749ac80dc2d13cfabcf8b929ba58a  disable-FileSystemTest.CreateDir-perms-assert.patch\n"
                ) 
                (
"a7c6056bfa3c2b76bbbc1a663ea84e5db6e269d5360afedaad5fdc3279d4732bc414e8c7d3a3f6f0d7b30ed81d8aec3fd2b35377f81db6d441b17b185d8b9bd0  rust-lang-llvm-pr47.patch\n"
                ) 
                (
"3c35bd342de6ec40aef9af8f18cb7d9aa1d2d8e04e9f320fff7df2c828f663cc12715d86946bc6bbc19f2e99b357a07f0fd9a4acce912c9c195c6837675847d5  rust-lang-llvm-pr53.patch\n"
                ) 
                (
"4f5418082b3bb0992a57f7abbd4187d119cf277a573f899b63af93522d823f9195a754adc56ea2a8fb2f5925b39eb82975b522c30cac275c71204cbe6d809271  rust-lang-llvm-pr54.patch\n"
                ) 
                (
"0e38a0390b07a0764bea68dd6a7ea78b9f7b5fd8e292cc7d11f46c0358d68bd40020ca24e0c486d1e74d2a957e1fe79fd3eb29b8ac73a1531b38606605babc43  rust-lang-llvm-pr55.patch\n"
                ) 
                (
"b9f952a71cb4f88f0657f0f2cf17b6102a303f6fab1845f3026d4889a6466b2746694752bc664228e25861abf05b76425a42f05ec4066f1b90cc6ee2deaf0a16  rust-lang-llvm-pr57.patch"
                )
              )
            }
          spids: [1101]
        )
      ]
      spids: [1101]
    )
  ]
)