(CommandList
  children: [
    (Assignment
      keyword: Assign_Typeset
      pairs: [
        (assign_pair
          lhs: (LhsName name:_Dbg_evalfile)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: (CommandList children:[(C {(_Dbg_tempname)} {(eval)})])
                left_token: <Left_CommandSub '$('>
                spids: [67 71]
              )
            }
          spids: [66]
        )
      ]
      spids: [64]
    )
    (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)}
    )
    (CommandList
      children: [
        (Sentence
          child: 
            (Assignment
              keyword: Assign_Typeset
              flags: [-i]
              pairs: [(assign_pair lhs:(LhsName name:_Dbg_show_eval_rc) op:Equal spids:[112])]
              spids: [108]
            )
          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: 
                (Assignment
                  keyword: Assign_Typeset
                  flags: [-a]
                  pairs: [(assign_pair lhs:(LhsName name:words) op:Equal spids:[133])]
                  spids: [129]
                )
              terminator: <Op_Semi ';'>
            )
            (Assignment
              keyword: Assign_Typeset
              pairs: [(assign_pair lhs:(LhsName name:subcmds) op:Equal spids:[139])]
              spids: [137]
            )
            (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)})
                            )
                          spids: [161 176]
                        )
                      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: [
                            (Assignment
                              keyword: Assign_Typeset
                              pairs: [(assign_pair lhs:(LhsName name:extracted) op:Equal spids:[208])]
                              spids: [206]
                            )
                            (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: [16777215 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: [16777215 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: <Redir_Great '>'>
                  fd: 16777215
                  arg_word: {($ VSub_Name '$_Dbg_evalfile')}
                )
              ]
            )
            (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)})
                            )
                          spids: [291 300]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_Typeset
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:source_line_save)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name '$_Dbg_source_line'))}
                          spids: [317]
                        )
                      ]
                      spids: [315]
                    )
                    (Assignment
                      keyword: Assign_Typeset
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:highlight_save)
                          op: Equal
                          rhs: {($ VSub_Name '$_Dbg_set_highlight')}
                          spids: [325]
                        )
                      ]
                      spids: [323]
                    )
                    (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)})
                    (Assignment
                      keyword: Assign_Typeset
                      pairs: [(assign_pair lhs:(LhsName name:suffix) op:Equal spids:[344])]
                      spids: [342]
                    )
                    (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]
                    )
                    (Assignment
                      keyword: Assign_Typeset
                      pairs: [(assign_pair lhs:(LhsName name:source_line) op:Equal spids:[364])]
                      spids: [362]
                    )
                    (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: [
                            (Assignment
                              keyword: Assign_Typeset
                              pairs: [(assign_pair lhs:(LhsName name:extracted) op:Equal spids:[390])]
                              spids: [388]
                            )
                            (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: [16777215 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: <Redir_DGreat '>>'>
                          fd: 16777215
                          arg_word: {($ VSub_Name '$_Dbg_evalfile')}
                        )
                      ]
                    )
                    (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: [16777215 304]
                )
              ]
              else_action: [
                (SimpleCommand
                  words: [{(builtin)} {(echo)} {(DQ ($ VSub_At '$@'))}]
                  redirects: [
                    (Redir
                      op: <Redir_DGreat '>>'>
                      fd: 16777215
                      arg_word: {($ VSub_Name '$_Dbg_evalfile')}
                    )
                  ]
                )
              ]
              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: <Redir_DGreat '>>'>
                          fd: 16777215
                          arg_word: {($ VSub_Name '$_Dbg_tty')}
                        )
                      ]
                    )
                  ]
                  spids: [16777215 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
              ops: [Op_DAmp]
              children: [
                (DParen child:(ArithVarRef name:_Dbg_show_eval_rc) spids:[515 520])
                (C {(_Dbg_msg)} 
                  {
                    (DQ (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('? is ') 
                      ($ VSub_Name '$_Dbg_rc')
                    )
                  }
                )
              ]
            )
            (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>)})
    (Assignment
      keyword: Assign_Typeset
      pairs: [(assign_pair lhs:(LhsName name:_Dbg_last_print_args) op:Equal rhs:{(SQ )} spids:[593])]
      spids: [591]
    )
    (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: [
            (Assignment
              keyword: Assign_Typeset
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_Dbg_expr)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_At '@'>
                        suffix_op: 
                          (StringUnary
                            op_id: VTest_ColonHyphen
                            arg_word: {(DQ ($ VSub_Name '$_Dbg_last_print_args'))}
                          )
                        spids: [626 632]
                      )
                    }
                  spids: [625]
                )
              ]
              spids: [623]
            )
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_Typeset
                  pairs: [(assign_pair lhs:(LhsName name:dq_expr) op:Equal spids:[637])]
                  spids: [635]
                )
              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'))})
            (Assignment
              keyword: Assign_Typeset
              flags: [-i]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:rc)
                  op: Equal
                  rhs: {($ VSub_QMark '$?')}
                  spids: [670]
                )
              ]
              spids: [666]
            )
            (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>)})
  ]
)