(CommandList
  children: [
    (C {(_Dbg_help_add)} {(source)} 
      {(SQ <'**source** *file*\n'> <'\n'> <'Run debugger commands in *file*.'>)}
    )
    (FuncDef
      name: _Dbg_do_source
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_DEqual
                              left: (ArithWord w:{($ VSub_Pound '$#')})
                              right: (ArithWord w:{(Lit_Digits 0)})
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(_Dbg_errmsg)} {(SQ <'Need to give a filename for the "source" command.'>)})
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
                  ]
                  spids: [16777215 105]
                )
              ]
              spids: [16777215 120]
            )
            (Assignment
              keyword: Assign_Typeset
              pairs: [(assign_pair lhs:(LhsName name:filename) op:Equal spids:[126])]
              spids: [124]
            )
            (C {(_Dbg_tilde_expand_filename)} {(DQ ($ VSub_Number '$1'))})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (AndOr
                          children: [
                            (DBracket
                              expr: (BoolUnary op_id:BoolUnary_r child:{($ VSub_Name '$filename')})
                            )
                            (DBracket
                              expr: 
                                (BoolBinary
                                  op_id: BoolBinary_GlobDEqual
                                  left: {(DQ ($ VSub_Name '$filename'))}
                                  right: {(SQ </dev/stdin>)}
                                )
                            )
                          ]
                          op_id: Op_DPipe
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(exec)} {(Lit_LBrace '{') (_Dbg_fdi) (Lit_RBrace '}')}]
                      redirects: [
                        (Redir
                          op_id: Redir_Less
                          fd: 16777215
                          arg_word: {(DQ ($ VSub_Name '$filename'))}
                          spids: [176]
                        )
                      ]
                    )
                    (C 
                      {(_Dbg_fd) (Lit_Other '[') (Lit_Other '+') (Lit_Other '+') (_Dbg_fd_last) 
                        (Lit_Other ']') (Lit_Other '=') ($ VSub_Name '$_Dbg_fdi')
                      }
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:_Dbg_cmdfile)
                          op: PlusEqual
                          rhs: {(ArrayLiteralPart words:[{(DQ ($ VSub_Name '$filename'))}])}
                          spids: [196]
                        )
                      ]
                      spids: [196]
                    )
                  ]
                  spids: [16777215 164]
                )
              ]
              else_action: [
                (C {(_Dbg_errmsg)} 
                  {
                    (DQ ('Source file ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) 
                      ($ VSub_Name '$filename') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (' is not readable.')
                    )
                  }
                )
                (ControlFlow token:<ControlFlow_Return return> arg_word:{(3)})
              ]
              spids: [204 223]
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
          ]
          spids: [87]
        )
      spids: [83 86]
    )
  ]
)