(CommandList
  children: [
    (C {(typeset)} 
      {(Lit_VarLike "_Dbg_evalfile=") 
        (CommandSubPart
          command_list: (CommandList children:[(C {(_Dbg_tempname)} {(eval)})])
          left_token: <Left_CommandSub "$(">
          spids: [67 71]
        )
      }
    )
    (C {(_Dbg_help_add)} {(eval)} 
      {
        (SQ <"**eval** *cmd*\n"> <"\n"> <"**eval**\n"> <"\n"> <"**eval?**\n"> <"\n"> 
          <"In the first form *cmd* is a string *cmd* is a string sent to special\n"> <"shell builtin eval.\n"> <"\n"> <"In the second form, use evaluate the current source line text.\n"> 
          <"\n"> <"Often when one is stopped at the line of the first part of an \"if\",\n"> 
          <"\"elif\", \"case\", \"return\", \"while\" compound statement or an assignment\n"> <"statement, one wants to eval is just the expression portion.  For\n"> 
          <"this, use eval?. Actually, any alias that ends in ? which is aliased\n"> <"to eval will do thie same thing.\n"> <"\n"> <"See also:\n"> <"---------\n"> <"\n"> 
          <"**print** and **set autoeval**.">
        )
      } {(1)} {(_Dbg_complete_eval)}
    )
    (Sentence child:(C {(typeset)} {(-i)} {(_Dbg_show_eval_rc)}) terminator:<Op_Semi ";">)
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:_Dbg_show_eval_rc) op:Equal rhs:{(1)} spids:[115])]
      spids: [115]
    )
    (FuncDef
      name: _Dbg_complete_eval
      body: 
        (BraceGroup
          children: [
            (Sentence child:(C {(typeset)} {(-a)} {(words)}) terminator:<Op_Semi ";">)
            (C {(typeset)} {(subcmds)})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:IFS)
                  op: Equal
                  rhs: {(SQ <" ">)}
                  spids: [142]
                )
                (assign_pair
                  lhs: (LhsName name:words)
                  op: Equal
                  rhs: {(ArrayLiteralPart words:[{($ VSub_Name "$COMP_LINE")}])}
                  spids: [147]
                )
              ]
              spids: [142]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_DEqual
                              left: 
                                (ArithWord
                                  w: 
                                    {
                                      (BracedVarSub
                                        token: <VSub_Name words>
                                        prefix_op: VSub_Pound
                                        bracket_op: (WholeArray op_id:Lit_At)
                                        spids: [163 169]
                                      )
                                    }
                                )
                              right: (ArithWord w:{(Lit_Digits 1)})
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (BoolBinary
                                      op_id: BoolBinary_GlobDEqual
                                      left: 
                                        {
                                          (BracedVarSub
                                            token: <VSub_Name words>
                                            bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                            spids: [186 191]
                                          )
                                        }
                                      right: {(SQ <"eval?">)}
                                    )
                                )
                              terminator: <Op_Semi ";">
                            )
                          ]
                          action: [
                            (C {(typeset)} {(extracted)})
                            (C {(_Dbg_eval_extract_condition)} {(DQ ($ VSub_Name "$_Dbg_source_line"))})
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:COMPREPLY)
                                  op: Equal
                                  rhs: {(ArrayLiteralPart words:[{(DQ ($ VSub_Name "$extracted"))}])}
                                  spids: [218]
                                )
                              ]
                              spids: [218]
                            )
                          ]
                          spids: [-1 203]
                        )
                      ]
                      else_action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:COMPREPLY)
                              op: Equal
                              rhs: 
                                {
                                  (ArrayLiteralPart
                                    words: [{(DQ ($ VSub_Name "$_Dbg_source_line"))}]
                                  )
                                }
                              spids: [229]
                            )
                          ]
                          spids: [229]
                        )
                      ]
                      spids: [226 237]
                    )
                  ]
                  spids: [-1 179]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:COMPREPLY)
                      op: Equal
                      rhs: {(ArrayLiteralPart)}
                      spids: [243]
                    )
                  ]
                  spids: [243]
                )
              ]
              spids: [240 248]
            )
          ]
          spids: [126]
        )
      spids: [122 125]
    )
    (C {(complete)} {(-F)} {(_Dbg_complete_eval)} {(SQ <"eval?">)})
    (FuncDef
      name: _Dbg_do_eval
      body: 
        (BraceGroup
          children: [
            (SimpleCommand
              words: [{(builtin)} {(echo)} {(DQ (". ") (${ VSub_Name _Dbg_libdir) (/dbg-set-d-vars.inc))}]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: -1
                  arg_word: {($ VSub_Name "$_Dbg_evalfile")}
                  spids: [284]
                )
              ]
            )
            (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 {(typeset)} 
                      {(Lit_VarLike "source_line_save=") (DQ ($ VSub_Name "$_Dbg_source_line"))}
                    )
                    (C {(typeset)} 
                      {(Lit_VarLike "highlight_save=") ($ VSub_Name "$_Dbg_set_highlight")}
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:_Dbg_set_highlight)
                          op: Equal
                          rhs: {(SQ )}
                          spids: [329]
                        )
                      ]
                      spids: [329]
                    )
                    (C {(_Dbg_get_source_line)})
                    (C {(typeset)} {(suffix)})
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:suffix)
                          op: Equal
                          rhs: 
                            {
                              (BracedVarSub
                                token: <VSub_Name _Dbg_orig_cmd>
                                suffix_op: 
                                  (Slice
                                    begin: 
                                      (ArithBinary
                                        op_id: Arith_Minus
                                        left: 
                                          (ArithWord
                                            w: 
                                              {
                                                (BracedVarSub
                                                  token: <VSub_Name _Dbg_orig_cmd>
                                                  prefix_op: VSub_Pound
                                                  spids: [351 354]
                                                )
                                              }
                                          )
                                        right: (ArithWord w:{(Lit_Digits 1)})
                                      )
                                    length: (ArithWord w:{(Lit_Digits 1)})
                                  )
                                spids: [348 359]
                              )
                            }
                          spids: [347]
                        )
                      ]
                      spids: [347]
                    )
                    (C {(typeset)} {(source_line)})
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (BoolBinary
                                      op_id: BoolBinary_GlobDEqual
                                      left: {(SQ <"?">)}
                                      right: {(DQ ($ VSub_Name "$suffix"))}
                                    )
                                )
                              terminator: <Op_Semi ";">
                            )
                          ]
                          action: [
                            (C {(typeset)} {(extracted)})
                            (C {(_Dbg_eval_extract_condition)} {(DQ ($ VSub_Name "$_Dbg_source_line"))})
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:source_line)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Name "$extracted"))}
                                  spids: [400]
                                )
                              ]
                              spids: [400]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:source_line_save)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Name "$extracted"))}
                                  spids: [406]
                                )
                              ]
                              spids: [406]
                            )
                          ]
                          spids: [-1 385]
                        )
                      ]
                      else_action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:source_line)
                              op: Equal
                              rhs: {(DQ ($ VSub_Name "$_Dbg_bash_command"))}
                              spids: [415]
                            )
                          ]
                          spids: [415]
                        )
                      ]
                      spids: [412 421]
                    )
                    (SimpleCommand
                      words: [{(builtin)} {(echo)} {(DQ ($ VSub_Name "$source_line"))}]
                      redirects: [
                        (Redir
                          op_id: Redir_DGreat
                          fd: -1
                          arg_word: {($ VSub_Name "$_Dbg_evalfile")}
                          spids: [433]
                        )
                      ]
                    )
                    (C {(_Dbg_msg)} {(DQ ("eval: ") (${ VSub_Name source_line))})
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:_Dbg_source_line)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name "$source_line_save"))}
                          spids: [448]
                        )
                      ]
                      spids: [448]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:_Dbg_set_highlight)
                          op: Equal
                          rhs: {($ VSub_Name "$_Dbg_highlight_save")}
                          spids: [454]
                        )
                      ]
                      spids: [454]
                    )
                  ]
                  spids: [-1 304]
                )
              ]
              else_action: [
                (SimpleCommand
                  words: [{(builtin)} {(echo)} {(DQ ($ VSub_At "$@"))}]
                  redirects: [
                    (Redir
                      op_id: Redir_DGreat
                      fd: -1
                      arg_word: {($ VSub_Name "$_Dbg_evalfile")}
                      spids: [469]
                    )
                  ]
                )
              ]
              spids: [458 474]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: (BoolUnary op_id:BoolUnary_n child:{($ VSub_Name "$_Dbg_tty")})
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(.)} {($ VSub_Name "$_Dbg_evalfile")}]
                      redirects: [
                        (Redir
                          op_id: Redir_DGreat
                          fd: -1
                          arg_word: {($ VSub_Name "$_Dbg_tty")}
                          spids: [496]
                        )
                      ]
                    )
                  ]
                  spids: [-1 489]
                )
              ]
              else_action: [(C {(.)} {($ VSub_Name "$_Dbg_evalfile")})]
              spids: [500 508]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_Dbg_rc)
                  op: Equal
                  rhs: {($ VSub_QMark "$?")}
                  spids: [511]
                )
              ]
              spids: [511]
            )
            (AndOr
              children: [
                (DParen child:(ArithVarRef name:_Dbg_show_eval_rc))
                (C {(_Dbg_msg)} 
                  {
                    (DQ (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("? is ") 
                      ($ VSub_Name "$_Dbg_rc")
                    )
                  }
                )
              ]
              op_id: Op_DAmp
            )
            (C {(_Dbg_set_debugger_internal)})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_Dbg_last_cmd)
                  op: Equal
                  rhs: {(SQ <eval>)}
                  spids: [544]
                )
              ]
              spids: [544]
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
          ]
          spids: [268]
        )
      spids: [264 267]
    )
    (C {(_Dbg_alias_add)} {(SQ <ev>)} {(SQ <eval>)})
    (C {(_Dbg_alias_add)} {(SQ <"ev?">)} {(SQ <eval>)})
    (C {(_Dbg_alias_add)} {(SQ <"eval?">)} {(SQ <eval>)})
    (C {(typeset)} {(Lit_VarLike "_Dbg_last_print_args=") (SQ )})
    (C {(_Dbg_help_add)} {(print)} 
      {
        (SQ <"print EXPRESSION -- Print EXPRESSION.\n"> <"\n"> 
          <"EXPRESSION is a string like you would put in a print statement.\n"> <"See also eval.\n"> <"\n"> 
          <"The difference between eval and print. Suppose cmd has the value \"ls\".\n"> <"\n"> <"print $cmd # prints \"ls\"\n"> <"eval $cmd  # runs an ls command\n">
        )
      }
    )
    (FuncDef
      name: _Dbg_do_print
      body: 
        (BraceGroup
          children: [
            (C {(typeset)} 
              {(Lit_VarLike "_Dbg_expr=") 
                (BracedVarSub
                  token: <VSub_At "@">
                  suffix_op: 
                    (StringUnary
                      op_id: VTest_ColonHyphen
                      arg_word: {(DQ ($ VSub_Name "$_Dbg_last_print_args"))}
                    )
                  spids: [626 632]
                )
              }
            )
            (Sentence child:(C {(typeset)} {(dq_expr)}) terminator:<Op_Semi ";">)
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:dq_expr)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [(C {(_Dbg_esc_dq)} {(DQ ($ VSub_Name "$_Dbg_expr"))})]
                          )
                        left_token: <Left_CommandSub "$(">
                        spids: [641 647]
                      )
                    }
                  spids: [640]
                )
              ]
              spids: [640]
            )
            (C {(.)} {(${ VSub_Name _Dbg_libdir) (/dbg-set-d-vars.inc)})
            (C {(eval)} {(DQ ("_Dbg_msg ") ($ VSub_Name "$_Dbg_expr"))})
            (C {(typeset)} {(-i)} {(Lit_VarLike "rc=") ($ VSub_QMark "$?")})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_Dbg_last_print_args)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name "$dq_expr"))}
                  spids: [674]
                )
              ]
              spids: [674]
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{($ VSub_Name "$rc")})
          ]
          spids: [620]
        )
      spids: [616 619]
    )
    (C {(_Dbg_alias_add)} {(SQ <pr>)} {(SQ <print>)})
  ]
)