(command.CommandList
  children: [
    (command.ShFunction
      name_tok: <main>
      name: main
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'desc='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'desc='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'desc='> name:desc)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'comment='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'comment='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'comment='> name:comment)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'debug='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'debug='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'debug='> name:debug)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'uclsource='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'uclsource='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'uclsource='> name:uclsource)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <getopts>
                          more_env: []
                          words: [{<getopts>} {(DQ <'do:s:u:'>)} {<arg>}]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                )
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{(${ Id.VSub_Name arg)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <d>
                          pattern: (pat.Words words:[{<d>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'debug='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'debug='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'debug='> name:debug)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <o>
                          pattern: (pat.Words words:[{<o>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'outname='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'outname='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'outname='>
                                      name: outname
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ (${ Id.VSub_Name OPTARG))}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'origname='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'origname='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'origname='>
                                      name: origname
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ (${ Id.VSub_Name OPTARG))}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <s>
                          pattern: (pat.Words words:[{<s>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'srctree='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'srctree='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'srctree='>
                                      name: srctree
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ (${ Id.VSub_Name OPTARG))}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <u>
                          pattern: (pat.Words words:[{<u>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'uclfile='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'uclfile='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'uclfile='>
                                      name: uclfile
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ (${ Id.VSub_Name OPTARG))}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>} {(DQ <'Unknown argument'>)}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [
                {<shift>}
                {
                  (word_part.ArithSub
                    left: <Id.Left_DollarDParen '$(('>
                    anode: 
                      (arith_expr.Binary
                        op_id: Id.Arith_Minus
                        left: {(${ Id.VSub_Name OPTIND)}
                        right: {<Id.Lit_Digits 1>}
                      )
                    right: <Id.Right_DollarDParen _>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'outname='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'outname='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'outname='> name:outname)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSub
                          left_token: <Id.Left_DollarParen '$('>
                          child: 
                            (command.Pipeline
                              children: [
                                (command.Simple
                                  blame_tok: <echo>
                                  more_env: []
                                  words: [{<echo>} {(${ Id.VSub_Name outname)}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <tr>
                                  more_env: []
                                  words: [{<tr>} {(SQ <->)} {(SQ <_>)}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_Pipe _>]
                            )
                          right: <Id.Eof_RParen _>
                        )
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{(DQ (${ Id.VSub_Name outname))})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <runtime>
                  pattern: (pat.Words words:[{<runtime>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'outname='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'outname='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'outname='> name:outname)
                          op: assign_op.Equal
                          rhs: {(DQ <runtime>)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'uclfile='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'uclfile='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'uclfile='> name:uclfile)
                          op: assign_op.Equal
                          rhs: {(DQ (${ Id.VSub_Name uclfile))}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <runtime_manuals>
                  pattern: (pat.Words words:[{<runtime_manuals>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'outname='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'outname='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'outname='> name:outname)
                          op: assign_op.Equal
                          rhs: {(DQ (${ Id.VSub_Name origname))}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'pkgdeps='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'pkgdeps='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pkgdeps='> name:pkgdeps)
                          op: assign_op.Equal
                          rhs: {(DQ <runtime>)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <runtime_>
                  pattern: (pat.Words words:[{<runtime_> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'outname='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'outname='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'outname='> name:outname)
                          op: assign_op.Equal
                          rhs: {(DQ (${ Id.VSub_Name origname))}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'uclfile='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'uclfile='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'uclfile='> name:uclfile)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                (BracedVarSub
                                  left: <Id.Left_DollarBrace '${'>
                                  token: <Id.VSub_Name outname>
                                  var_name: outname
                                  suffix_op: 
                                    (suffix_op.Unary
                                      op: <Id.VOp1_DPound '##'>
                                      arg_word: {<Id.Lit_Other '*'>}
                                    )
                                  right: <Id.Right_DollarBrace '}'>
                                ) (${ Id.VSub_Name uclfile)
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'pkgdeps='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'pkgdeps='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pkgdeps='> name:pkgdeps)
                          op: assign_op.Equal
                          rhs: {(DQ <runtime>)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike '_descr='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '_descr='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_descr='> name:_descr)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: 
                                    (command.Simple
                                      blame_tok: <make>
                                      more_env: []
                                      words: [
                                        {<make>}
                                        {<-C>}
                                        {(${ Id.VSub_Name srctree) <'/release/packages'>}
                                        {<-f>}
                                        {<Makefile.package>}
                                        {<-V>}
                                        {(${ Id.VSub_Name outname) <_DESCR>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  right: <Id.Eof_RParen _>
                                )
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <jail_>
                  pattern: (pat.Words words:[{<jail_> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'outname='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'outname='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'outname='> name:outname)
                          op: assign_op.Equal
                          rhs: {(DQ (${ Id.VSub_Name origname))}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'uclfile='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'uclfile='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'uclfile='> name:uclfile)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                (BracedVarSub
                                  left: <Id.Left_DollarBrace '${'>
                                  token: <Id.VSub_Name outname>
                                  var_name: outname
                                  suffix_op: 
                                    (suffix_op.Unary
                                      op: <Id.VOp1_DPound '##'>
                                      arg_word: {<Id.Lit_Other '*'>}
                                    )
                                  right: <Id.Right_DollarBrace '}'>
                                ) (${ Id.VSub_Name uclfile)
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'pkgdeps='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'pkgdeps='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pkgdeps='> name:pkgdeps)
                          op: assign_op.Equal
                          rhs: {(DQ <runtime>)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike '_descr='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '_descr='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_descr='> name:_descr)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: 
                                    (command.Simple
                                      blame_tok: <make>
                                      more_env: []
                                      words: [
                                        {<make>}
                                        {<-C>}
                                        {(${ Id.VSub_Name srctree) <'/release/packages'>}
                                        {<-f>}
                                        {<Makefile.package>}
                                        {<-V>}
                                        {(${ Id.VSub_Name outname) <_DESCR>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  right: <Id.Eof_RParen _>
                                )
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'> <_lib32_development>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'outname='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'outname='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'outname='> name:outname)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                (BracedVarSub
                                  left: <Id.Left_DollarBrace '${'>
                                  token: <Id.VSub_Name outname>
                                  var_name: outname
                                  suffix_op: 
                                    (suffix_op.Unary
                                      op: <Id.VOp1_DPercent '%%'>
                                      arg_word: {<_lib32_development>}
                                    )
                                  right: <Id.Right_DollarBrace '}'>
                                )
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike '_descr='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '_descr='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_descr='> name:_descr)
                          op: assign_op.Equal
                          rhs: {(DQ <'32-bit Libraries, Development Files'>)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'pkgdeps='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'pkgdeps='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pkgdeps='> name:pkgdeps)
                          op: assign_op.Equal
                          rhs: {(DQ (${ Id.VSub_Name outname))}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'> <_lib32_debug>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'outname='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'outname='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'outname='> name:outname)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                (BracedVarSub
                                  left: <Id.Left_DollarBrace '${'>
                                  token: <Id.VSub_Name outname>
                                  var_name: outname
                                  suffix_op: 
                                    (suffix_op.Unary
                                      op: <Id.VOp1_DPercent '%%'>
                                      arg_word: {<_lib32_debug>}
                                    )
                                  right: <Id.Right_DollarBrace '}'>
                                )
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike '_descr='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '_descr='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_descr='> name:_descr)
                          op: assign_op.Equal
                          rhs: {(DQ <'32-bit Libraries, Debugging Symbols'>)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'pkgdeps='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'pkgdeps='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pkgdeps='> name:pkgdeps)
                          op: assign_op.Equal
                          rhs: {(DQ (${ Id.VSub_Name outname))}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'> <_lib32_profile>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'outname='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'outname='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'outname='> name:outname)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                (BracedVarSub
                                  left: <Id.Left_DollarBrace '${'>
                                  token: <Id.VSub_Name outname>
                                  var_name: outname
                                  suffix_op: 
                                    (suffix_op.Unary
                                      op: <Id.VOp1_DPercent '%%'>
                                      arg_word: {<_lib32_profile>}
                                    )
                                  right: <Id.Right_DollarBrace '}'>
                                )
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike '_descr='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '_descr='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_descr='> name:_descr)
                          op: assign_op.Equal
                          rhs: {(DQ <'32-bit Libraries, Profiling'>)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'pkgdeps='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'pkgdeps='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pkgdeps='> name:pkgdeps)
                          op: assign_op.Equal
                          rhs: {(DQ (${ Id.VSub_Name outname))}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'> <_lib32>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'outname='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'outname='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'outname='> name:outname)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                (BracedVarSub
                                  left: <Id.Left_DollarBrace '${'>
                                  token: <Id.VSub_Name outname>
                                  var_name: outname
                                  suffix_op: 
                                    (suffix_op.Unary
                                      op: <Id.VOp1_DPercent '%%'>
                                      arg_word: {<_lib32>}
                                    )
                                  right: <Id.Right_DollarBrace '}'>
                                )
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike '_descr='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '_descr='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_descr='> name:_descr)
                          op: assign_op.Equal
                          rhs: {(DQ <'32-bit Libraries'>)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'pkgdeps='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'pkgdeps='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pkgdeps='> name:pkgdeps)
                          op: assign_op.Equal
                          rhs: {(DQ (${ Id.VSub_Name outname))}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'> <_development>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'outname='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'outname='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'outname='> name:outname)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                (BracedVarSub
                                  left: <Id.Left_DollarBrace '${'>
                                  token: <Id.VSub_Name outname>
                                  var_name: outname
                                  suffix_op: 
                                    (suffix_op.Unary
                                      op: <Id.VOp1_DPercent '%%'>
                                      arg_word: {<_development>}
                                    )
                                  right: <Id.Right_DollarBrace '}'>
                                )
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike '_descr='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '_descr='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_descr='> name:_descr)
                          op: assign_op.Equal
                          rhs: {(DQ <'Development Files'>)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'pkgdeps='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'pkgdeps='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pkgdeps='> name:pkgdeps)
                          op: assign_op.Equal
                          rhs: {(DQ (${ Id.VSub_Name outname))}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'> <_profile>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'outname='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'outname='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'outname='> name:outname)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                (BracedVarSub
                                  left: <Id.Left_DollarBrace '${'>
                                  token: <Id.VSub_Name outname>
                                  var_name: outname
                                  suffix_op: 
                                    (suffix_op.Unary
                                      op: <Id.VOp1_DPercent '%%'>
                                      arg_word: {<_profile>}
                                    )
                                  right: <Id.Right_DollarBrace '}'>
                                )
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike '_descr='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '_descr='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_descr='> name:_descr)
                          op: assign_op.Equal
                          rhs: {(DQ <'Profiling Libraries'>)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'pkgdeps='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'pkgdeps='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pkgdeps='> name:pkgdeps)
                          op: assign_op.Equal
                          rhs: {(DQ (${ Id.VSub_Name outname))}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'> <_debug>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'outname='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'outname='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'outname='> name:outname)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                (BracedVarSub
                                  left: <Id.Left_DollarBrace '${'>
                                  token: <Id.VSub_Name outname>
                                  var_name: outname
                                  suffix_op: 
                                    (suffix_op.Unary
                                      op: <Id.VOp1_DPercent '%%'>
                                      arg_word: {<_debug>}
                                    )
                                  right: <Id.Right_DollarBrace '}'>
                                )
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike '_descr='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '_descr='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_descr='> name:_descr)
                          op: assign_op.Equal
                          rhs: {(DQ <'Debugging Symbols'>)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'pkgdeps='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'pkgdeps='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pkgdeps='> name:pkgdeps)
                          op: assign_op.Equal
                          rhs: {(DQ (${ Id.VSub_Name outname))}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Left_DollarBrace '${'>
                  pattern: (pat.Words words:[{(${ Id.VSub_Name origname)}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'pkgdeps='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'pkgdeps='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pkgdeps='> name:pkgdeps)
                          op: assign_op.Equal
                          rhs: {(DQ <runtime>)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'uclfile='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'uclfile='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'uclfile='> name:uclfile)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                (BracedVarSub
                                  left: <Id.Left_DollarBrace '${'>
                                  token: <Id.VSub_Name outname>
                                  var_name: outname
                                  suffix_op: 
                                    (suffix_op.Unary
                                      op: <Id.VOp1_DPound '##'>
                                      arg_word: {<Id.Lit_Other '*'>}
                                    )
                                  right: <Id.Right_DollarBrace '}'>
                                ) (${ Id.VSub_Name origname)
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'outname='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'outname='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'outname='> name:outname)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                (BracedVarSub
                                  left: <Id.Left_DollarBrace '${'>
                                  token: <Id.VSub_Name outname>
                                  var_name: outname
                                  suffix_op: 
                                    (suffix_op.Unary
                                      op: <Id.VOp1_DPound '##'>
                                      arg_word: {<Id.Lit_Other '*'>}
                                    )
                                  right: <Id.Right_DollarBrace '}'>
                                ) (${ Id.VSub_Name origname)
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'outname='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'outname='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'outname='> name:outname)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ 
                        (BracedVarSub
                          left: <Id.Left_DollarBrace '${'>
                          token: <Id.VSub_Name outname>
                          var_name: outname
                          suffix_op: 
                            (suffix_op.Unary
                              op: <Id.VOp1_DPercent '%%'>
                              arg_word: {<_> <Id.Lit_Other '*'>}
                            )
                          right: <Id.Right_DollarBrace '}'>
                        )
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'desc='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'desc='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'desc='> name:desc)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSub
                          left_token: <Id.Left_DollarParen '$('>
                          child: 
                            (command.Simple
                              blame_tok: <make>
                              more_env: []
                              words: [
                                {<make>}
                                {<-C>}
                                {(${ Id.VSub_Name srctree) <'/release/packages'>}
                                {<-f>}
                                {<Makefile.package>}
                                {<-V>}
                                {(${ Id.VSub_Name outname) <_DESC>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          right: <Id.Eof_RParen _>
                        )
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'comment='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'comment='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'comment='> name:comment)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSub
                          left_token: <Id.Left_DollarParen '$('>
                          child: 
                            (command.Simple
                              blame_tok: <make>
                              more_env: []
                              words: [
                                {<make>}
                                {<-C>}
                                {(${ Id.VSub_Name srctree) <'/release/packages'>}
                                {<-f>}
                                {<Makefile.package>}
                                {<-V>}
                                {(${ Id.VSub_Name outname) <_COMMENT>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          right: <Id.Eof_RParen _>
                        )
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'uclsource='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'uclsource='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'uclsource='> name:uclsource)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ (${ Id.VSub_Name srctree) <'/release/packages/'> (${ Id.VSub_Name outname) 
                        <.ucl>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {<Id.KW_Bang '!'>}
                                {<-e>}
                                {(DQ (${ Id.VSub_Name uclsource))}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'uclsource='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'uclsource='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'uclsource='> name:uclsource)
                          op: assign_op.Equal
                          rhs: {(DQ (${ Id.VSub_Name srctree) <'/release/packages/template.ucl'>)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [711 728]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {<Id.KW_Bang '!'>}
                                {<-z>}
                                {(DQ (${ Id.VSub_Name debug))}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ )}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {(DQ <'==============================================================='>)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'DEBUG:'>)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'_descr='> (${ Id.VSub_Name _descr))}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'outname='> (${ Id.VSub_Name outname))}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'origname='> (${ Id.VSub_Name origname))}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'srctree='> (${ Id.VSub_Name srctree))}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'uclfile='> (${ Id.VSub_Name uclfile))}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'desc='> (${ Id.VSub_Name desc))}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'comment='> (${ Id.VSub_Name comment))}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {(DQ <'cp '> (${ Id.VSub_Name uclsource) <' -> '> (${ Id.VSub_Name uclfile))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {(DQ <'==============================================================='>)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ )}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ )}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ )}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [744 761]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.Lit_LBracket '['>
                  more_env: []
                  words: [
                    {<Id.Lit_LBracket '['>}
                    {<-z>}
                    {(DQ (${ Id.VSub_Name comment))}
                    {<Id.Lit_RBracket ']'>}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'comment='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'comment='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'comment='> name:comment)
                      op: assign_op.Equal
                      rhs: {(DQ (${ Id.VSub_Name outname) <' package'>)}
                    )
                  ]
                  redirects: []
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.Lit_LBracket '['>
                  more_env: []
                  words: [
                    {<Id.Lit_LBracket '['>}
                    {<Id.KW_Bang '!'>}
                    {<-z>}
                    {(DQ (${ Id.VSub_Name _descr))}
                    {<Id.Lit_RBracket ']'>}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'comment='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'comment='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'comment='> name:comment)
                      op: assign_op.Equal
                      rhs: {(DQ (${ Id.VSub_Name comment) <' ('> (${ Id.VSub_Name _descr) <')'>)}
                    )
                  ]
                  redirects: []
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.Lit_LBracket '['>
                  more_env: []
                  words: [
                    {<Id.Lit_LBracket '['>}
                    {<-z>}
                    {(DQ (${ Id.VSub_Name desc))}
                    {<Id.Lit_RBracket ']'>}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'desc='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'desc='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'desc='> name:desc)
                      op: assign_op.Equal
                      rhs: {(DQ (${ Id.VSub_Name outname) <' package'>)}
                    )
                  ]
                  redirects: []
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.Simple
              blame_tok: <cp>
              more_env: []
              words: [{<cp>} {(DQ (${ Id.VSub_Name uclsource))} {(DQ (${ Id.VSub_Name uclfile))}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'cap_arg='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'cap_arg='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cap_arg='> name:cap_arg)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSub
                          left_token: <Id.Left_DollarParen '$('>
                          child: 
                            (command.Simple
                              blame_tok: <make>
                              more_env: []
                              words: [
                                {<make>}
                                {<-C>}
                                {(${ Id.VSub_Name srctree) <'/etc'>}
                                {<-VCAP_MKDB_ENDIAN>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          right: <Id.Eof_RParen _>
                        )
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'pwd_arg='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'pwd_arg='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pwd_arg='> name:pwd_arg)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSub
                          left_token: <Id.Left_DollarParen '$('>
                          child: 
                            (command.Simple
                              blame_tok: <make>
                              more_env: []
                              words: [
                                {<make>}
                                {<-C>}
                                {(${ Id.VSub_Name srctree) <'/etc'>}
                                {<-VPWD_MKDB_ENDIAN>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          right: <Id.Eof_RParen _>
                        )
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <sed>
              more_env: []
              words: [
                {<sed>}
                {<-i>}
                {(SQ )}
                {<-e>}
                {(DQ <'s/%VERSION%/'> (${ Id.VSub_Name PKG_VERSION) <'/'>)}
                {<-e>}
                {(DQ <'s/%PKGNAME%/'> (${ Id.VSub_Name origname) <'/'>)}
                {<-e>}
                {(DQ <'s/%COMMENT%/'> (${ Id.VSub_Name comment) <'/'>)}
                {<-e>}
                {(DQ <'s/%DESC%/'> (${ Id.VSub_Name desc) <'/'>)}
                {<-e>}
                {(DQ <'s/%CAP_MKDB_ENDIAN%/'> (${ Id.VSub_Name cap_arg) <'/g'>)}
                {<-e>}
                {(DQ <'s/%PWD_MKDB_ENDIAN%/'> (${ Id.VSub_Name pwd_arg) <'/g'>)}
                {<-e>}
                {(DQ <'s/%PKGDEPS%/'> (${ Id.VSub_Name pkgdeps) <'/'>)}
                {(${ Id.VSub_Name uclfile)}
              ]
              redirects: []
              do_fork: T
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Return return> arg_word:{<0>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <main>
      more_env: []
      words: [{<main>} {(DQ (${ Id.VSub_At '@'))}]
      redirects: []
      do_fork: T
    )
  ]
)