(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgname)
          op: assign_op.Equal
          rhs: {<yodl>}
          spids: [6]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgver)
          op: assign_op.Equal
          rhs: {<3.08.02>}
          spids: [9]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgrel)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [12]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgdesc)
          op: assign_op.Equal
          rhs: {(DQ <'Pre-document language and tools to process it'>)}
          spids: [15]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:url)
          op: assign_op.Equal
          rhs: {(DQ <'https://fbb-git.github.io/yodl/'>)}
          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 <GPL2>)}
          spids: [30]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:makedepends)
          op: assign_op.Equal
          rhs: {(DQ <'icmake bash perl flex bison'>)}
          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 <yodl-> ($ Id.VSub_DollarName '$pkgver') 
                <'.tar.gz::https://github.com/fbb-git/yodl/archive/'> ($ 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') <'/yodl-'> ($ Id.VSub_DollarName '$pkgver') <'/yodl'>)
            }
          spids: [55]
        )
      ]
    )
    (command.ShFunction
      name: prepare
      body: 
        (BraceGroup
          children: [
            (C {<cd>} {(DQ ($ Id.VSub_DollarName '$builddir'))})
            (C {<sed>} {<-i>} {(SQ <'s!DOCDOC\\s*=.*$!DOCDOC = BASE + "/share/doc/yodl";!g'>)} 
              {<INSTALL.im>}
            )
          ]
        )
    )
    (command.ShFunction
      name: build
      body: 
        (BraceGroup
          children: [
            (C {<cd>} {(DQ ($ Id.VSub_DollarName '$builddir'))})
            (command.Sentence child:(C {<local>} {<module>}) terminator:<Id.Op_Semi _>)
            (command.ForEach
              iter_name: module
              iter_words: [{<programs>} {<macros>} {<man>}]
              do_arg_iter: F
              body: (command.DoGroup children:[(C {<'./build'>} {($ Id.VSub_DollarName '$module')})])
            )
          ]
        )
    )
    (command.ShFunction
      name: check
      body: 
        (BraceGroup
          children: [
            (C {<cd>} {(DQ ($ Id.VSub_DollarName '$builddir'))})
            (command.Pipeline
              children: [
                (C {<'./tmp/install/usr/bin/yodl'>} {<--version>})
                (C {<grep>} {<-q>} {(SQ <'yodl version'>)})
              ]
              negated: F
            )
          ]
        )
    )
    (command.ShFunction
      name: package
      body: 
        (BraceGroup
          children: [
            (C {<cd>} {(DQ ($ Id.VSub_DollarName '$builddir'))})
            (command.Sentence child:(C {<local>} {<module>}) terminator:<Id.Op_Semi _>)
            (command.ForEach
              iter_name: module
              iter_words: [{<programs>} {<macros>} {<man>}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (C {<'./build'>} {<install>} {($ Id.VSub_DollarName '$module')} 
                      {(DQ ($ Id.VSub_DollarName '$pkgdir'))}
                    )
                  ]
                )
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:sha512sums)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                <
'adad9f6235288f0ae6990c0dbba3cd7c8461172ae83231ca8fa113275d04ad20d3722e70f6f0ffcf072a19b4816e556b9b09227123516fc4a0170bc053b48b8e  yodl-3.08.02.tar.gz'
                >
              )
            }
          spids: [222]
        )
      ]
    )
  ]
)