(command.CommandList children: [ (command.Simple blame_tok: <typeset> more_env: [] words: [ {<typeset>} {<Id.Lit_VarLike '_Dbg_evalfile='> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <_Dbg_tempname> more_env: [] words: [{<_Dbg_tempname>} {<eval>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <_Dbg_help_add> more_env: [] words: [ {<_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>} ] redirects: [] do_fork: T ) (command.CommandList children: [ (command.Sentence child: (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-i>} {<_Dbg_show_eval_rc>}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) (command.ShAssignment left: <Id.Lit_VarLike '_Dbg_show_eval_rc='> pairs: [ (AssignPair left: <Id.Lit_VarLike '_Dbg_show_eval_rc='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike '_Dbg_show_eval_rc='> name: _Dbg_show_eval_rc ) op: assign_op.Equal rhs: {<1>} ) ] redirects: [] ) ] ) (command.ShFunction name_tok: <_Dbg_complete_eval> name: _Dbg_complete_eval body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Sentence child: (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-a>} {<words>}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<subcmds>}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'IFS='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'IFS='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS) op: assign_op.Equal rhs: {(SQ <' '>)} ) (AssignPair left: <Id.Lit_VarLike 'words='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'words='> name:words) op: assign_op.Equal rhs: { (ShArrayLiteral left: <Id.Op_LParen _> words: [{($ Id.VSub_DollarName COMP_LINE)}] right: <Id.Right_ShArrayLiteral _> ) } ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen left: <Id.Op_DLeftParen _> child: (arith_expr.Binary op_id: Id.Arith_DEqual left: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name words> var_name: words prefix_op: <Id.VSub_Pound '#'> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } right: {<Id.Lit_Digits 1>} ) right: <Id.Op_DRightParen _> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name words> var_name: words bracket_op: (bracket_op.ArrayIndex expr: {<Id.Lit_Digits 0>} ) right: <Id.Right_DollarBrace '}'> ) } right: {(SQ <'eval?'>)} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<extracted>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <_Dbg_eval_extract_condition> more_env: [] words: [ {<_Dbg_eval_extract_condition>} {(DQ ($ Id.VSub_DollarName _Dbg_source_line))} ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'COMPREPLY='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'COMPREPLY='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'COMPREPLY='> name: COMPREPLY ) op: assign_op.Equal rhs: { (ShArrayLiteral left: <Id.Op_LParen _> words: [{(DQ ($ Id.VSub_DollarName extracted))}] right: <Id.Right_ShArrayLiteral _> ) } ) ] redirects: [] ) ] spids: [182 203] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.ShAssignment left: <Id.Lit_VarLike 'COMPREPLY='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'COMPREPLY='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'COMPREPLY='> name: COMPREPLY ) op: assign_op.Equal rhs: { (ShArrayLiteral left: <Id.Op_LParen _> words: [{(DQ ($ Id.VSub_DollarName _Dbg_source_line))}] right: <Id.Right_ShArrayLiteral _> ) } ) ] redirects: [] ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] spids: [159 179] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.ShAssignment left: <Id.Lit_VarLike 'COMPREPLY='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'COMPREPLY='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'COMPREPLY='> name:COMPREPLY) op: assign_op.Equal rhs: { (ShArrayLiteral left: <Id.Op_LParen _> words: [] right: <Id.Right_ShArrayLiteral _> ) } ) ] redirects: [] ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.Simple blame_tok: <complete> more_env: [] words: [{<complete>} {<-F>} {<_Dbg_complete_eval>} {(SQ <'eval?'>)}] redirects: [] do_fork: T ) (command.ShFunction name_tok: <_Dbg_do_eval> name: _Dbg_do_eval body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <builtin> more_env: [] words: [ {<builtin>} {<echo>} {(DQ <'. '> (${ Id.VSub_Name _Dbg_libdir) <'/dbg-set-d-vars.inc'>)} ] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName _Dbg_evalfile)} ) ] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen left: <Id.Op_DLeftParen _> child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_Pound '#')} right: {<Id.Lit_Digits 0>} ) right: <Id.Op_DRightParen _> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <typeset> more_env: [] words: [ {<typeset>} {<Id.Lit_VarLike 'source_line_save='> (DQ ($ Id.VSub_DollarName _Dbg_source_line)) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <typeset> more_env: [] words: [ {<typeset>} {<Id.Lit_VarLike 'highlight_save='> ($ Id.VSub_DollarName _Dbg_set_highlight)} ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike '_Dbg_set_highlight='> pairs: [ (AssignPair left: <Id.Lit_VarLike '_Dbg_set_highlight='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike '_Dbg_set_highlight='> name: _Dbg_set_highlight ) op: assign_op.Equal rhs: {(SQ )} ) ] redirects: [] ) (command.Simple blame_tok: <_Dbg_get_source_line> more_env: [] words: [{<_Dbg_get_source_line>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<suffix>}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'suffix='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'suffix='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'suffix='> name:suffix) op: assign_op.Equal rhs: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name _Dbg_orig_cmd> var_name: _Dbg_orig_cmd suffix_op: (suffix_op.Slice begin: (arith_expr.Binary op_id: Id.Arith_Minus left: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name _Dbg_orig_cmd> var_name: _Dbg_orig_cmd prefix_op: <Id.VSub_Pound '#'> right: <Id.Right_DollarBrace '}'> ) } right: {<Id.Lit_Digits 1>} ) length: {<Id.Lit_Digits 1>} ) right: <Id.Arith_RBrace _> ) } ) ] redirects: [] ) (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<source_line>}] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(SQ <'?'>)} right: {(DQ ($ Id.VSub_DollarName suffix))} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<extracted>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <_Dbg_eval_extract_condition> more_env: [] words: [ {<_Dbg_eval_extract_condition>} {(DQ ($ Id.VSub_DollarName _Dbg_source_line))} ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'source_line='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'source_line='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'source_line='> name: source_line ) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName extracted))} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'source_line_save='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'source_line_save='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'source_line_save='> name: source_line_save ) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName extracted))} ) ] redirects: [] ) ] spids: [367 385] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.ShAssignment left: <Id.Lit_VarLike 'source_line='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'source_line='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'source_line='> name: source_line ) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName _Dbg_bash_command))} ) ] redirects: [] ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <builtin> more_env: [] words: [{<builtin>} {<echo>} {(DQ ($ Id.VSub_DollarName source_line))}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName _Dbg_evalfile)} ) ] do_fork: T ) (command.Simple blame_tok: <_Dbg_msg> more_env: [] words: [{<_Dbg_msg>} {(DQ <'eval: '> (${ Id.VSub_Name source_line))}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike '_Dbg_source_line='> pairs: [ (AssignPair left: <Id.Lit_VarLike '_Dbg_source_line='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike '_Dbg_source_line='> name: _Dbg_source_line ) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName source_line_save))} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike '_Dbg_set_highlight='> pairs: [ (AssignPair left: <Id.Lit_VarLike '_Dbg_set_highlight='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike '_Dbg_set_highlight='> name: _Dbg_set_highlight ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName _Dbg_highlight_save)} ) ] redirects: [] ) ] spids: [289 304] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.Simple blame_tok: <builtin> more_env: [] words: [{<builtin>} {<echo>} {(DQ ($ Id.VSub_At '@'))}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName _Dbg_evalfile)} ) ] do_fork: T ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName _Dbg_tty)} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <.> more_env: [] words: [{<.>} {($ Id.VSub_DollarName _Dbg_evalfile)}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName _Dbg_tty)} ) ] do_fork: T ) ] spids: [477 489] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.Simple blame_tok: <.> more_env: [] words: [{<.>} {($ Id.VSub_DollarName _Dbg_evalfile)}] redirects: [] do_fork: T ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike '_Dbg_rc='> pairs: [ (AssignPair left: <Id.Lit_VarLike '_Dbg_rc='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_Dbg_rc='> name:_Dbg_rc) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} ) ] redirects: [] ) (command.AndOr children: [ (command.DParen left: <Id.Op_DLeftParen _> child: ($ Id.Lit_ArithVarLike _Dbg_show_eval_rc) right: <Id.Op_DRightParen _> redirects: [] ) (command.Simple blame_tok: <_Dbg_msg> more_env: [] words: [ {<_Dbg_msg>} { (DQ (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'? is '> ($ Id.VSub_DollarName _Dbg_rc) ) } ] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.Simple blame_tok: <_Dbg_set_debugger_internal> more_env: [] words: [{<_Dbg_set_debugger_internal>}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike '_Dbg_last_cmd='> pairs: [ (AssignPair left: <Id.Lit_VarLike '_Dbg_last_cmd='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_Dbg_last_cmd='> name:_Dbg_last_cmd) op: assign_op.Equal rhs: {(SQ <eval>)} ) ] redirects: [] ) (command.ControlFlow keyword:<Id.ControlFlow_Return return> arg_word:{<0>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.Simple blame_tok: <_Dbg_alias_add> more_env: [] words: [{<_Dbg_alias_add>} {(SQ <ev>)} {(SQ <eval>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <_Dbg_alias_add> more_env: [] words: [{<_Dbg_alias_add>} {(SQ <'ev?'>)} {(SQ <eval>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <_Dbg_alias_add> more_env: [] words: [{<_Dbg_alias_add>} {(SQ <'eval?'>)} {(SQ <eval>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<Id.Lit_VarLike '_Dbg_last_print_args='> (SQ )}] redirects: [] do_fork: T ) (command.Simple blame_tok: <_Dbg_help_add> more_env: [] words: [ {<_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'> ) } ] redirects: [] do_fork: T ) (command.ShFunction name_tok: <_Dbg_do_print> name: _Dbg_do_print body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <typeset> more_env: [] words: [ {<typeset>} {<Id.Lit_VarLike '_Dbg_expr='> (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_At '@'> var_name: '@' suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {(DQ ($ Id.VSub_DollarName _Dbg_last_print_args))} ) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) (command.Sentence child: (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<dq_expr>}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) (command.ShAssignment left: <Id.Lit_VarLike 'dq_expr='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'dq_expr='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dq_expr='> name:dq_expr) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <_Dbg_esc_dq> more_env: [] words: [{<_Dbg_esc_dq>} {(DQ ($ Id.VSub_DollarName _Dbg_expr))}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.Simple blame_tok: <.> more_env: [] words: [{<.>} {(${ Id.VSub_Name _Dbg_libdir) <'/dbg-set-d-vars.inc'>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [{<eval>} {(DQ <'_Dbg_msg '> ($ Id.VSub_DollarName _Dbg_expr))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-i>} {<Id.Lit_VarLike 'rc='> ($ Id.VSub_QMark '?')}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike '_Dbg_last_print_args='> pairs: [ (AssignPair left: <Id.Lit_VarLike '_Dbg_last_print_args='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike '_Dbg_last_print_args='> name: _Dbg_last_print_args ) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName dq_expr))} ) ] redirects: [] ) (command.ControlFlow keyword: <Id.ControlFlow_Return return> arg_word: {($ Id.VSub_DollarName rc)} ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.Simple blame_tok: <_Dbg_alias_add> more_env: [] words: [{<_Dbg_alias_add>} {(SQ <pr>)} {(SQ <print>)}] redirects: [] do_fork: T ) ] )