(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:pkgname) op:Equal rhs:{(readline)} spids:[3])]
      spids: [3]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:pkgver) op:Equal rhs:{(7.0.003)} spids:[6])]
      spids: [6]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:pkgrel) op:Equal rhs:{(0)} spids:[9])]
      spids: [9]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:_myver)
          op: Equal
          rhs: 
            {
              (BracedVarSub
                token: <VSub_Name pkgver>
                suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(".*")})
                spids: [13 17]
              )
            }
          spids: [12]
        )
      ]
      spids: [12]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:pkgdesc)
          op: Equal
          rhs: {(DQ ("GNU readline library"))}
          spids: [19]
        )
      ]
      spids: [19]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:url)
          op: Equal
          rhs: {(DQ ("https://cnswww.cns.cwru.edu/php/chet/readline/rltop.html"))}
          spids: [24]
        )
      ]
      spids: [24]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:arch) op:Equal rhs:{(DQ (all))} spids:[29])]
      spids: [29]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:options) op:Equal rhs:{(DQ ("!check"))} spids:[34])]
      spids: [34]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:license) op:Equal rhs:{(DQ (GPL))} spids:[39])]
      spids: [39]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:depends) op:Equal rhs:{(SQ )} spids:[44])]
      spids: [44]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:makedepends_host)
          op: Equal
          rhs: {(DQ (ncurses-dev))}
          spids: [46]
        )
      ]
      spids: [46]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:subpackages)
          op: Equal
          rhs: {(DQ ($ VSub_Name "$pkgname") ("-dev ") ($ VSub_Name "$pkgname") ("-doc libhistory"))}
          spids: [51]
        )
      ]
      spids: [51]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:source)
          op: Equal
          rhs: 
            {
              (DQ ("http://ftp.gnu.org/gnu/") ($ VSub_Name "$pkgname") (/) ($ VSub_Name "$pkgname") (-) 
                ($ VSub_Name "$_myver") (".tar.gz\n") ("\tfix-ncurses-underlinking.patch\n") ("\t")
              )
            }
          spids: [59]
        )
      ]
      spids: [59]
    )
    (ForEach
      iter_name: _patch
      iter_words: [
        {
          (CommandSubPart
            command_list: 
              (CommandList
                children: [
                  (C {(seq)} {(-w)} {(001)} 
                    {
                      (BracedVarSub
                        token: <VSub_Name pkgver>
                        suffix_op: (StringUnary op_id:VOp1_DPound arg_word:{("*.")})
                        spids: [86 90]
                      )
                    }
                  )
                ]
              )
            left_token: <Left_CommandSub "$(">
            spids: [79 91]
          )
        }
      ]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_name)
                  op: Equal
                  rhs: 
                    {($ VSub_Name "$pkgname") 
                      (BracedVarSub
                        token: <VSub_Name _myver>
                        suffix_op: 
                          (PatSub
                            pat: {(.)}
                            replace: {}
                            do_all: True
                            do_prefix: False
                            do_suffix: False
                          )
                        spids: [99 105]
                      ) (-) ($ VSub_Name "$_patch")
                    }
                  spids: [97]
                )
              ]
              spids: [97]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:source)
                  op: Equal
                  rhs: 
                    {
                      (DQ ($ VSub_Name "$source") (" ") ($ VSub_Name "$_name") 
                        (".diff::http://ftp.gnu.org/gnu/") ($ VSub_Name "$pkgname") (/) ($ VSub_Name "$pkgname") (-) ($ VSub_Name "$_myver") (-patches/) 
                        ($ VSub_Name "$_name")
                      )
                    }
                  spids: [110]
                )
              ]
              spids: [110]
            )
          ]
          spids: [94 125]
        )
      spids: [78 92]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:builddir)
          op: Equal
          rhs: {(DQ ($ VSub_Name "$srcdir") (/) ($ VSub_Name "$pkgname") (-) ($ VSub_Name "$_myver"))}
          spids: [128]
        )
      ]
      spids: [128]
    )
    (FuncDef
      name: prepare
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:i) op:Equal spids:[147])]
              spids: [145]
            )
            (C {(cd)} {(DQ ($ VSub_Name "$builddir"))})
            (ForEach
              iter_name: i
              iter_words: [{($ VSub_Name "$source")}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (Case
                      to_match: 
                        {
                          (BracedVarSub
                            token: <VSub_Name i>
                            suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{("::*")})
                            spids: [171 175]
                          )
                        }
                      arms: [
                        (case_arm
                          pat_list: [{(Lit_Other "*") (.diff)}]
                          action: [
                            (Sentence
                              child: 
                                (C {(msg)} 
                                  {
                                    (BracedVarSub
                                      token: <VSub_Name i>
                                      suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{("*::")})
                                      spids: [186 190]
                                    )
                                  }
                                )
                              terminator: <Op_Semi ";">
                            )
                            (AndOr
                              children: [
                                (C {(patch)} {(-p0)} {(-i)} 
                                  {(DQ ($ VSub_Name "$srcdir")) (/) 
                                    (BracedVarSub
                                      token: <VSub_Name i>
                                      suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{("::*")})
                                      spids: [203 207]
                                    )
                                  }
                                )
                                (ControlFlow
                                  token: <ControlFlow_Return return>
                                  arg_word: {(1)}
                                )
                              ]
                              op_id: Op_DPipe
                            )
                          ]
                          spids: [180 182 214 -1]
                        )
                      ]
                      spids: [169 177 217]
                    )
                  ]
                  spids: [166 220]
                )
              spids: [162 164]
            )
            (AndOr
              children: [
                (C {(default_prepare)})
                (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
              ]
              op_id: Op_DPipe
            )
            (C {(update_config_sub)})
          ]
          spids: [142]
        )
      spids: [138 141]
    )
    (FuncDef
      name: build
      body: 
        (BraceGroup
          children: [
            (C {(cd)} {(DQ ($ VSub_Name "$builddir"))})
            (AndOr
              children: [
                (C {(./configure)} {(--build) (Lit_Other "=") ($ VSub_Name "$CBUILD")} 
                  {(--host) (Lit_Other "=") ($ VSub_Name "$CHOST")} {(--prefix) (Lit_Other "=") (/usr)} {(--mandir) (Lit_Other "=") (/usr/share/man)} 
                  {(--infodir) (Lit_Other "=") (/usr/share/info)} {(--enable-static)} {(--enable-shared)}
                )
                (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
              ]
              op_id: Op_DPipe
            )
            (AndOr
              children: [(C {(make)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})]
              op_id: Op_DPipe
            )
          ]
          spids: [241]
        )
      spids: [237 240]
    )
    (FuncDef
      name: package
      body: 
        (BraceGroup
          children: [
            (AndOr
              children: [
                (C {(make)} {(-C)} {(DQ ($ VSub_Name "$builddir"))} 
                  {(Lit_VarLike "DESTDIR=") (DQ ($ VSub_Name "$pkgdir"))} {(install)}
                )
                (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
              ]
              op_id: Op_DPipe
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (Pipeline
                          children: [
                            (C {(readelf)} {(-d)} 
                              {(DQ ($ VSub_Name "$pkgdir")) (/usr/lib/libreadline.so)}
                            )
                            (C {(grep)} {(SQ <"NEEDED.*ncurses">)})
                          ]
                          negated: True
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(error)} {(DQ ("readline needs to be linked against ncurses"))})
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
                  ]
                  spids: [-1 366]
                )
              ]
              spids: [-1 381]
            )
            (C {(rmdir)} {(DQ ($ VSub_Name "$pkgdir")) (/usr/bin)})
          ]
          spids: [315]
        )
      spids: [311 314]
    )
    (FuncDef
      name: libhistory
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:pkgdesc)
                  op: Equal
                  rhs: {(DQ ("GNU History Library"))}
                  spids: [401]
                )
              ]
              spids: [401]
            )
            (AndOr
              children: [
                (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$subpkgdir")) (/usr/lib)})
                (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
              ]
              op_id: Op_DPipe
            )
            (AndOr
              children: [
                (C {(mv)} 
                  {(DQ ($ VSub_Name "$pkgdir")) (/usr/lib/) ($ VSub_Name "$subpkgname") (.) 
                    (Lit_Other "*")
                  } {(DQ ($ VSub_Name "$subpkgdir")) (/usr/lib)}
                )
                (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
              ]
              op_id: Op_DPipe
            )
          ]
          spids: [398]
        )
      spids: [394 397]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:sha512sums)
          op: Equal
          rhs: 
            {
              (DQ 
                (
"18243189d39bf0d4c8a76cddcce75243c1bae8824c686e9b6ba352667607e5b10c5feb79372a1093c1c388d821841670702e940df12eae94bcebdeed90047870  readline-7.0.tar.gz\n"
                ) 
                (
"325dcf74e9f463a74fb116cb6f3ff8d9708dbec24b423a778eeda3a5ac4fe6df131e0e99d034053ad356b01502894ecc8facc09160d4c29b2291bd95cff6b635  fix-ncurses-underlinking.patch\n"
                ) 
                (
"4402186905af8cd42c609d640c2e13b9ad61c7778e5a3fd2c2d9da301f0deab05b04d7836f31527262f44f406517823dbb18cb07f2c73931186c806b494699ec  readline70-001.diff\n"
                ) 
                (
"13d1489578508d4d2c3a1618024198a709dbce74a6bbf0f6d7ec67d2419c55bfec9f0ca9de0ed93f129d21d5c3a94307ccdc49408455bbb301c5e3a772b03185  readline70-002.diff\n"
                ) 
                (
"eaf962a1480eb3870519017b81ecc5cef171e4c41fcf8c17da61ccbfd0379ed6bca85c17b03e2207ae4d51509f33fd010294c75f4bd0433a52118015d4160385  readline70-003.diff"
                )
              )
            }
          spids: [447]
        )
      ]
      spids: [447]
    )
  ]
)