(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgname)
          op: assign_op.Equal
          rhs: {<shntool>}
          spids: [6]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgver)
          op: assign_op.Equal
          rhs: {<3.0.10>}
          spids: [9]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgrel)
          op: assign_op.Equal
          rhs: {<1>}
          spids: [12]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgdesc)
          op: assign_op.Equal
          rhs: {(DQ <'A multi-purpose WAVE data processing and reporting utility'>)}
          spids: [15]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:url)
          op: assign_op.Equal
          rhs: {(DQ <'http://www.etree.org/shnutils/shntool/'>)}
          spids: [20]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:arch)
          op: assign_op.Equal
          rhs: {(DQ <all>)}
          spids: [25]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:license)
          op: assign_op.Equal
          rhs: {(DQ <GPL>)}
          spids: [30]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:makedepends)
          op: assign_op.Equal
          rhs: {(DQ <sox>)}
          spids: [35]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:subpackages)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName '$pkgname') <-doc>)}
          spids: [40]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:source)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'http://www.etree.org/shnutils/shntool/dist/src/shntool-'> 
                ($ Id.VSub_DollarName '$pkgver') <.tar.gz>
              )
            }
          spids: [46]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:builddir)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName '$srcdir')) <'/shntool-'> ($ Id.VSub_DollarName '$pkgver')}
          spids: [54]
        )
      ]
    )
    (command.ShFunction
      name: build
      body: 
        (BraceGroup
          children: [
            (C {<cd>} {(DQ ($ Id.VSub_DollarName '$builddir'))})
            (C {<update_config_sub>})
            (C {<'./configure'>} {<--build> <Id.Lit_Equals '='> ($ Id.VSub_DollarName '$CBUILD')} 
              {<--host> <Id.Lit_Equals '='> ($ Id.VSub_DollarName '$CHOST')} {<--prefix> <Id.Lit_Equals '='> <'/usr'>} {<--sysconfdir> <Id.Lit_Equals '='> <'/etc'>} 
              {<--mandir> <Id.Lit_Equals '='> <'/usr/share/man'>} {<--infodir> <Id.Lit_Equals '='> <'/usr/share/info'>} {<--localstatedir> <Id.Lit_Equals '='> <'/var'>}
            )
            (C {<make>})
          ]
        )
    )
    (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>})
          ]
        )
    )
    (command.ShFunction
      name: check
      body: 
        (BraceGroup
          children: [
            (C {<mkdir>} {<-p>} {(DQ ($ Id.VSub_DollarName '$builddir') <'/test'>)})
            (C {<cd>} {(DQ ($ Id.VSub_DollarName '$builddir') <'/test'>)})
            (C {<ln>} {<-s>} {<'../src/shntool'>} {<shninfo>})
            (C {<ln>} {<-s>} {<'../src/shntool'>} {<shncue>})
            (C {<ln>} {<-s>} {<'../src/shntool'>} {<shnsplit>})
            (C {<ln>} {<-s>} {<'../src/shntool'>} {<shnjoin>})
            (C {<ln>} {<-s>} {<'../src/shntool'>} {<shncmp>})
            (C {<sox>} {<-r>} {<44100>} {<-b>} {<16>} {<-n>} {<beat1.wav>} {<synth>} {<0.4>} {<sin>} {<347>} 
              {<sin>} {<357>} {<vol>} {<0.5>}
            )
            (C {<sox>} {<-r>} {<44100>} {<-b>} {<16>} {<-n>} {<beat2.wav>} {<synth>} {<0.5>} {<sin>} {<359>} 
              {<sin>} {<357>} {<vol>} {<0.5>}
            )
            (C {<sox>} {<-r>} {<44100>} {<-b>} {<16>} {<-n>} {<beat3.wav>} {<synth>} {<0.6>} {<sin>} {<459>} 
              {<sin>} {<438>} {<vol>} {<0.5>}
            )
            (command.Pipeline
              children: [(C {<'./shninfo'>} {<beat1.wav>}) (C {<grep>} {<-q>} {<70604>})]
              negated: F
            )
            (command.Pipeline
              children: [(C {<'./shninfo'>} {<beat2.wav>}) (C {<grep>} {<-q>} {<88244>})]
              negated: F
            )
            (command.Simple
              words: [{<'./shncue'>} {<beat1.wav>} {<beat2.wav>} {<beat3.wav>}]
              redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<joined.cue>})]
              do_fork: T
            )
            (C {<'./shnjoin'>} {<beat1.wav>} {<beat2.wav>} {<beat3.wav>})
            (command.Pipeline
              children: [(C {<'./shninfo'>} {<joined.wav>}) (C {<grep>} {<-q>} {<265820>})]
              negated: F
            )
            (C {<'./shnsplit'>} {<-f>} {<joined.cue>} {<joined.wav>})
            (command.Pipeline
              children: [(C {<'./shninfo'>} {<split-track01.wav>}) (C {<grep>} {<-q>} {<70604>})]
              negated: F
            )
            (command.Pipeline
              children: [(C {<'./shninfo'>} {<split-track03.wav>}) (C {<grep>} {<-q>} {<105884>})]
              negated: F
            )
            (C {<'./shncmp'>} {<split-track01.wav>} {<beat1.wav>})
            (C {<'./shncmp'>} {<split-track02.wav>} {<beat2.wav>})
            (C {<cd>} {(DQ ($ Id.VSub_DollarName '$builddir'))})
            (C {<rm>} {<-r>} {<test>})
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:md5sums)
          op: assign_op.Equal
          rhs: {(DQ <'5d41f8f42c3c15e3145a7a43539c3eae  shntool-3.0.10.tar.gz'>)}
          spids: [448]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:sha256sums)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                <
'74302eac477ca08fb2b42b9f154cc870593aec8beab308676e4373a5e4ca2102  shntool-3.0.10.tar.gz'
                >
              )
            }
          spids: [453]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:sha512sums)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                <
'2150d7123860abb54a56a1615bda991ed3713d73c338723f28b7d01a63c49a47809be16dc57b5b4edeee1567b003f9a4b54945c1cd08440f9503d22b91eaa06d  shntool-3.0.10.tar.gz'
                >
              )
            }
          spids: [458]
        )
      ]
    )
  ]
)