(CommandList
  children: [
    (C {(_Dbg_help_add_sub)} {(set)} {(args)} 
      {
        (SQ <"**set args** *script-args*\n"> <"\n"> 
          <"Set argument list to give program being debugged when it is started.\n"> <"Follow this command with any number of args, to be passed to the program.\n">
        )
      } {(1)}
    )
    (FuncDef
      name: _Dbg_do_set_args
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_Dbg_script_args)
                  op: Equal
                  rhs: {(ArrayLiteralPart)}
                  spids: [90]
                )
              ]
              spids: [90]
            )
            (C {(typeset)} {(-i)} {(i)})
            (C {(typeset)} {(-i)} {(Lit_VarLike "n=") ($ VSub_Pound "$#")})
            (C {(typeset)} {(-i)} 
              {(Lit_VarLike "m=") 
                (BracedVarSub
                  token: <VSub_Name _Dbg_orig_script_args>
                  prefix_op: VSub_Pound
                  bracket_op: (WholeArray op_id:Lit_At)
                  spids: [115 121]
                )
              }
            )
            (ForExpr
              init: 
                (BinaryAssign
                  op_id: Arith_Equal
                  left: (LhsName name:i)
                  right: (ArithWord w:{(Lit_Digits 0)})
                )
              cond: 
                (ArithBinary
                  op_id: Arith_Less
                  left: (ArithVarRef name:i)
                  right: (ArithVarRef name:n)
                )
              update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i))
              body: 
                (DoGroup
                  children: [
                    (C {(_Dbg_write_journal_eval)} 
                      {
                        (DQ ("_Dbg_orig_script_args[") ($ VSub_Name "$i") ("]=") ($ VSub_Number "$1"))
                      }
                    )
                    (C {(shift)})
                  ]
                  spids: [147 163]
                )
            )
            (ForExpr
              init: (ArithWord w:(TokenWord token:<Arith_Semi ";">))
              cond: (ArithVarRef name:m)
              update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i))
              body: 
                (DoGroup
                  children: [
                    (C {(_Dbg_write_journal_eval)} 
                      {(DQ ("unset _Dbg_orig_script_args[") ($ VSub_Name "$i") ("]"))}
                    )
                    (C {(shift)})
                  ]
                  spids: [186 201]
                )
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
          ]
          spids: [79]
        )
      spids: [75 78]
    )
  ]
)