(command.CommandList children: [ (C {<typeset>} {<Id.Lit_VarLike '_Dbg_evalfile='> (command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<_Dbg_tempname>} {<eval>})) } ) (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>} ) (command.CommandList children: [ (command.Sentence child: (C {<typeset>} {<-i>} {<_Dbg_show_eval_rc>}) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_Dbg_show_eval_rc) op: assign_op.Equal rhs: {<1>} spids: [115] ) ] ) ] ) (command.ShFunction name: _Dbg_complete_eval body: (BraceGroup children: [ (command.Sentence child: (C {<typeset>} {<-a>} {<words>}) terminator: <Id.Op_Semi _> ) (C {<typeset>} {<subcmds>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:IFS) op: assign_op.Equal rhs: {(SQ <' '>)} spids: [142] ) (assign_pair lhs: (sh_lhs_expr.Name name:words) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{($ Id.VSub_DollarName '$COMP_LINE')}] ) } spids: [147] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: { (braced_var_sub token: <Id.VSub_Name words> prefix_op: (Id.VSub_Pound) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (braced_var_sub token: <Id.VSub_Name words> bracket_op: (bracket_op.ArrayIndex expr: {<Id.Lit_Digits 0>} ) ) } right: {(SQ <'eval?'>)} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<typeset>} {<extracted>}) (C {<_Dbg_eval_extract_condition>} {(DQ ($ Id.VSub_DollarName '$_Dbg_source_line'))} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ ($ Id.VSub_DollarName '$extracted'))}] ) } spids: [218] ) ] ) ] spids: [182 203] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ ($ Id.VSub_DollarName '$_Dbg_source_line'))}] ) } spids: [229] ) ] ) ] ) ] spids: [159 179] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: {(sh_array_literal left:<Id.Op_LParen _>)} spids: [243] ) ] ) ] ) ] ) ) (C {<complete>} {<-F>} {<_Dbg_complete_eval>} {(SQ <'eval?'>)}) (command.ShFunction name: _Dbg_do_eval body: (BraceGroup children: [ (command.Simple 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 arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_Pound '$#')} right: {<Id.Lit_Digits 0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<typeset>} {<Id.Lit_VarLike 'source_line_save='> (DQ ($ Id.VSub_DollarName '$_Dbg_source_line')) } ) (C {<typeset>} {<Id.Lit_VarLike 'highlight_save='> ($ Id.VSub_DollarName '$_Dbg_set_highlight') } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_Dbg_set_highlight) op: assign_op.Equal rhs: {(SQ )} spids: [329] ) ] ) (C {<_Dbg_get_source_line>}) (C {<typeset>} {<suffix>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:suffix) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name _Dbg_orig_cmd> suffix_op: (suffix_op.Slice begin: (arith_expr.Binary op_id: Id.Arith_Minus left: { (braced_var_sub token: <Id.VSub_Name _Dbg_orig_cmd> prefix_op: (Id.VSub_Pound) ) } right: {<Id.Lit_Digits 1>} ) length: {<Id.Lit_Digits 1>} ) ) } spids: [347] ) ] ) (C {<typeset>} {<source_line>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(SQ <'?'>)} right: {(DQ ($ Id.VSub_DollarName '$suffix'))} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<typeset>} {<extracted>}) (C {<_Dbg_eval_extract_condition>} {(DQ ($ Id.VSub_DollarName '$_Dbg_source_line'))} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:source_line) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$extracted'))} spids: [400] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:source_line_save) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$extracted'))} spids: [406] ) ] ) ] spids: [367 385] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:source_line) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$_Dbg_bash_command'))} spids: [415] ) ] ) ] ) (command.Simple 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 ) (C {<_Dbg_msg>} {(DQ <'eval: '> (${ Id.VSub_Name source_line))}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_Dbg_source_line) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$source_line_save'))} spids: [448] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_Dbg_set_highlight) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$_Dbg_highlight_save')} spids: [454] ) ] ) ] spids: [289 304] ) ] else_action: [ (command.Simple 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 ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName '$_Dbg_tty')} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple 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_action: [(C {<.>} {($ Id.VSub_DollarName '$_Dbg_evalfile')})] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_Dbg_rc) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [511] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DParen child:<Id.Lit_ArithVarLike _Dbg_show_eval_rc>) (C {<_Dbg_msg>} { (DQ (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'? is '> ($ Id.VSub_DollarName '$_Dbg_rc') ) } ) ] ) (C {<_Dbg_set_debugger_internal>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_Dbg_last_cmd) op: assign_op.Equal rhs: {(SQ <eval>)} spids: [544] ) ] ) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>}) ] ) ) (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>} {<Id.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'> ) } ) (command.ShFunction name: _Dbg_do_print body: (BraceGroup children: [ (C {<typeset>} {<Id.Lit_VarLike '_Dbg_expr='> (braced_var_sub token: <Id.VSub_At '@'> suffix_op: (suffix_op.Unary tok: <Id.VTest_ColonHyphen ':-'> arg_word: {(DQ ($ Id.VSub_DollarName '$_Dbg_last_print_args'))} ) ) } ) (command.Sentence child:(C {<typeset>} {<dq_expr>}) terminator:<Id.Op_Semi _>) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:dq_expr) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<_Dbg_esc_dq>} {(DQ ($ Id.VSub_DollarName '$_Dbg_expr'))}) ) } spids: [640] ) ] ) (C {<.>} {(${ Id.VSub_Name _Dbg_libdir) <'/dbg-set-d-vars.inc'>}) (C {<eval>} {(DQ <'_Dbg_msg '> ($ Id.VSub_DollarName '$_Dbg_expr'))}) (C {<typeset>} {<-i>} {<Id.Lit_VarLike 'rc='> ($ Id.VSub_QMark '$?')}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_Dbg_last_print_args) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$dq_expr'))} spids: [674] ) ] ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {($ Id.VSub_DollarName '$rc')} ) ] ) ) (C {<_Dbg_alias_add>} {(SQ <pr>)} {(SQ <print>)}) ] )