(command.CommandList
  children: [
    (C {<typeset>} {<-a>} {<_Dbg_override_filenames>})
    (command.ShFunction
      name: _Dbg_progess_show
      body: 
        (BraceGroup
          children: [
            (C {<typeset>} {<Id.Lit_VarLike 'title='> ($ Id.VSub_Number '$1')})
            (C {<typeset>} {<-i>} {<Id.Lit_VarLike 'max_value='> ($ Id.VSub_Number '$2')})
            (C {<typeset>} {<-i>} {<Id.Lit_VarLike 'current_value='> ($ Id.VSub_Number '$3')})
            (C {<typeset>} {<-i>} {<Id.Lit_VarLike 'max_length='> <40>})
            (C {<typeset>} {<-i>} {<current_length>})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: <Id.Lit_ArithVarLike max_value>
                                  right: {<Id.Lit_Digits 0>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:current_length)
                          op: assign_op.Equal
                          rhs: {(${ Id.VSub_Name max_length)}
                          spids: [174]
                        )
                      ]
                    )
                  ]
                  spids: [152 167]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:current_length)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (word_part.ArithSub
                            anode: 
                              (arith_expr.Binary
                                op_id: Id.Arith_Slash
                                left: 
                                  (arith_expr.Binary
                                    op_id: Id.Arith_Star
                                    left: {(${ Id.VSub_Name max_length)}
                                    right: {(${ Id.VSub_Name current_value)}
                                  )
                                right: {(${ Id.VSub_Name max_value)}
                              )
                          )
                        }
                      spids: [183]
                    )
                  ]
                )
              ]
            )
            (C {<_Dbg_progess_show_internal>} {(DQ ($ Id.VSub_Number '$1'))} 
              {(${ Id.VSub_Name max_length)} {(${ Id.VSub_Name current_length)}
            )
            (C {<_Dbg_printf_nocr>} {(SQ <' %3d%%'>)} 
              {
                (DQ 
                  (word_part.ArithSub
                    anode: 
                      (arith_expr.Binary
                        op_id: Id.Arith_Slash
                        left: 
                          (arith_expr.Binary
                            op_id: Id.Arith_Star
                            left: {<Id.Lit_Digits 100>}
                            right: {(${ Id.VSub_Name current_value)}
                          )
                        right: {(${ Id.VSub_Name max_value)}
                      )
                  )
                )
              }
            )
          ]
        )
    )
    (command.ShFunction
      name: _Dbg_progess_show_internal
      body: 
        (BraceGroup
          children: [
            (C {<typeset>} {<-i>} {<Id.Lit_VarLike 'i='> <0>})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobDEqual
                                  left: {<t>}
                                  right: {($ Id.VSub_DollarName '$EMACS')}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<_Dbg_msg_nocr>} 
                      {
                        (DQ <Id.Lit_BadBackslash '\\'> <r> <Id.Lit_BadBackslash '\\'> <b> 
                          <Id.Lit_BadBackslash '\\'> <n>
                        )
                      }
                    )
                  ]
                  spids: [287 300]
                )
              ]
              else_action: [
                (C {<_Dbg_msg_nocr>} 
                  {(DQ <Id.Lit_BadBackslash '\\'> <r> <Id.Lit_BadBackslash '\\'> <b>)}
                )
              ]
            )
            (C {<_Dbg_msg_nocr>} {(DQ ($ Id.VSub_Number '$1') <': ['>)})
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: <Id.Lit_ArithVarLike i>
                  right: {<Id.Lit_Digits 0>}
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_Less
                  left: <Id.Lit_ArithVarLike i>
                  right: {($ Id.VSub_Number '$3')}
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:<Id.Lit_ArithVarLike i>)
              body: (command.DoGroup children:[(C {<_Dbg_msg_nocr>} {(DQ <'='>)})])
            )
            (C {<_Dbg_msg_nocr>} {(SQ <'>'>)})
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: <Id.Lit_ArithVarLike i>
                  right: {<Id.Lit_Digits 0>}
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_Less
                  left: <Id.Lit_ArithVarLike i>
                  right: 
                    (arith_expr.Binary
                      op_id: Id.Arith_Minus
                      left: {($ Id.VSub_Number '$2')}
                      right: {($ Id.VSub_Number '$3')}
                    )
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:<Id.Lit_ArithVarLike i>)
              body: (command.DoGroup children:[(C {<_Dbg_msg_nocr>} {(SQ <' '>)})])
            )
            (C {<_Dbg_msg_nocr>} {(SQ <']'>)})
          ]
        )
    )
    (command.ShFunction
      name: _Dbg_progess_done
      body: 
        (BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<test>} {(DQ <x> ($ Id.VSub_DollarName '$EMACS'))} {<Id.Lit_Equals '='>} 
                              {<xt>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<_Dbg_msg_nocr>} 
                      {
                        (DQ <Id.Lit_BadBackslash '\\'> <r> <Id.Lit_BadBackslash '\\'> <b> 
                          <Id.Lit_BadBackslash '\\'> <n>
                        )
                      }
                    )
                  ]
                  spids: [451 465]
                )
              ]
              else_action: [
                (C {<_Dbg_msg_nocr>} 
                  {(DQ <Id.Lit_BadBackslash '\\'> <r> <Id.Lit_BadBackslash '\\'> <b>)}
                )
              ]
            )
            (C {<_Dbg_msg>} {($ Id.VSub_Number '$1')})
          ]
        )
    )
  ]
)