(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgname)
          op: assign_op.Equal
          rhs: {<openlldp>}
          spids: [3]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgver)
          op: assign_op.Equal
          rhs: {<0.4a>}
          spids: [6]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:_realver)
          op: assign_op.Equal
          rhs: 
            {
              (braced_var_sub
                token: <Id.VSub_Name pkgver>
                suffix_op: 
                  (suffix_op.PatSub
                    pat: {<a>}
                    replace: {<alpha>}
                    replace_mode: Id.Undefined_Tok
                  )
              )
            }
          spids: [9]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgrel)
          op: assign_op.Equal
          rhs: {<2>}
          spids: [18]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgdesc)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                <
'Open Source implementation of the IEEE standard 802.1AB Link Layer Discovery Protocol (LLDP)'
                >
              )
            }
          spids: [21]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:url)
          op: assign_op.Equal
          rhs: {(DQ <'http://openlldp.sourceforge.net/'>)}
          spids: [26]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:arch)
          op: assign_op.Equal
          rhs: {(DQ <all>)}
          spids: [31]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:license)
          op: assign_op.Equal
          rhs: {(DQ <GPL>)}
          spids: [36]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:depends)
          op: assign_op.Equal
          rhs: (word.Empty)
          spids: [41]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:makedepends)
          op: assign_op.Equal
          rhs: {(DQ <'autoconf automake'>)}
          spids: [43]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:install)
          op: assign_op.Equal
          rhs: (word.Empty)
          spids: [48]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:subpackages)
          op: assign_op.Equal
          rhs: {(DQ )}
          spids: [50]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:source)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'http://downloads.sourceforge.net/'> ($ Id.VSub_DollarName '$pkgname') <'/'> 
                ($ Id.VSub_DollarName '$pkgname') <-> ($ Id.VSub_DollarName '$_realver') <'.tar.gz\n'> <'\tprocfs.patch\n'> <'\t'> 
                ($ Id.VSub_DollarName '$pkgname') <'.initd\n'> <'\t'> ($ Id.VSub_DollarName '$pkgname') <.confd>
              )
            }
          spids: [54]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:_builddir)
          op: assign_op.Equal
          rhs: 
            {(DQ ($ Id.VSub_DollarName '$srcdir')) <'/'> ($ Id.VSub_DollarName '$pkgname') <-> 
              ($ Id.VSub_DollarName '$_realver')
            }
          spids: [73]
        )
      ]
    )
    (command.ShFunction
      name: prepare
      body: 
        (BraceGroup
          children: [
            (C {<cd>} {(DQ ($ Id.VSub_DollarName '$_builddir'))})
            (command.ForEach
              iter_name: i
              iter_words: [{($ Id.VSub_DollarName '$source')}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.Case
                      to_match: {($ Id.VSub_DollarName '$i')}
                      arms: [
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'> <.patch>}]
                          action: [
                            (command.Sentence
                              child: (C {<msg>} {($ Id.VSub_DollarName '$i')})
                              terminator: <Id.Op_Semi _>
                            )
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {<patch>} {<-p1>} {<-i>} 
                                  {(DQ ($ Id.VSub_DollarName '$srcdir')) <'/'> 
                                    ($ Id.VSub_DollarName '$i')
                                  }
                                )
                                (command.ControlFlow
                                  token: <Id.ControlFlow_Return return>
                                  arg_word: {<1>}
                                )
                              ]
                            )
                          ]
                          spids: [116 118 142 -1]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.AndOr
              ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DPipe]
              children: [
                (C {<aclocal>})
                (C {<autoconf>})
                (C {<automake>} {<--add-missing>})
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<1>}
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: build
      body: 
        (BraceGroup
          children: [
            (C {<cd>} {(DQ ($ Id.VSub_DollarName '$_builddir'))})
            (C {<'./configure'>} {<--prefix> <Id.Lit_Equals '='> <'/usr'>} 
              {<--sysconfdir> <Id.Lit_Equals '='> <'/etc'>} {<--mandir> <Id.Lit_Equals '='> <'/usr/share/man'>} 
              {<--infodir> <Id.Lit_Equals '='> <'/usr/share/info'>}
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<make>})
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<1>}
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: package
      body: 
        (BraceGroup
          children: [
            (C {<cd>} {(DQ ($ Id.VSub_DollarName '$_builddir'))})
            (C {<make>} {<Id.Lit_VarLike 'DESTDIR='> (DQ ($ Id.VSub_DollarName '$pkgdir'))} {<install>})
            (C {<install>} {<-m755>} {<-D>} {<'../../'> ($ Id.VSub_DollarName '$pkgname') <.initd>} 
              {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/etc/init.d/lldpd'>}
            )
            (C {<install>} {<-m644>} {<-D>} {<'../../'> ($ Id.VSub_DollarName '$pkgname') <.confd>} 
              {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/etc/conf.d/lldpd'>}
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:md5sums)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'f48ffd632b96246cbf0f5c485dea3b01  openlldp-0.4alpha.tar.gz\n'> 
                <'c1e81927d2ea0ebcfaee52e79e9122c7  procfs.patch\n'> <'7e1a489d8ccdd204cac68ce87e0ce360  openlldp.initd\n'> 
                <'7ac497e5a8b2f68532816c5718f5bf62  openlldp.confd'>
              )
            }
          spids: [280]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:sha256sums)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                <
'266fd0e1a15f237cfb84ae2d225996836774ea3d4c1c2e2be3a2a6927a00f2b1  openlldp-0.4alpha.tar.gz\n'
                > <'57726f4157daec0388960c28a014796e8de18a6e1841565f2f64b14f5d4cd02f  procfs.patch\n'> 
                <
'9f40286ae7fea71c6e8396bac4bce5e132f399275e5d3d5375ad463ed6b961a2  openlldp.initd\n'
                > <'01b523f3f5e1e9a99518ff309eb965406452aefb5bad024e3735970af884ad6c  openlldp.confd'>
              )
            }
          spids: [288]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:sha512sums)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                <
'5418678a82703a373d5aaeda924ddd34ccb002b5bfc40f243e06f8201fb5407bd46b25aea6d6e2760a1065f0928025e33dcd1dfc42dd9b436d0e5467132b176a  openlldp-0.4alpha.tar.gz\n'
                > 
                <
'1301d9d952ee0f3d8044e5eafd39ea16f9aa671597dc3fea0a57251beabd9e4f140171ddef5e32c5120d3ab42cfeb8878e863d63b4716313e4a94f24c75f0af2  procfs.patch\n'
                > 
                <
'93ef1fc1268321a5faf760d07758ee341ba965500c11625f52fc246580e86bff7fbd73a2c1dce276ba07a34a2468c6d4a1c0f2be6b98f425c8330573bb6baa30  openlldp.initd\n'
                > 
                <
'3817778b61974b17940ea058a1a46f19a432689cc43ab8e9f466bf71de496a61fd9c089a2be9f621556f1376f3a6ec7b8ee35ec820ecbbae0e520bea3079b804  openlldp.confd'
                >
              )
            }
          spids: [296]
        )
      ]
    )
  ]
)