(command.CommandList children: [ (C {<_Dbg_help_add>} {<export>} { (SQ <'**export** *var1* [**var2** ...]\n'> <'\n'> <'Marks **var1**, **var2***, to get reassigned with their current values after on\n'> <'subshell exit. The values are set by the debugger only after it\n'> <'notices that the current shell is left.\n'> <'\n'> <'Nothing is done if you aren not in a subshell.\n'> ) } ) (command.ShFunction name: _Dbg_do_export body: (BraceGroup children: [ (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 {<_Dbg_errmsg>} {(DQ <'Expecting at least one variable name; got none.'>)}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [76 91] ) ] ) (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.Lit_Digits 0>} right: <Id.Lit_ArithVarLike BASH_SUBSHELL> ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<_Dbg_errmsg>} {(DQ <'You are not in a subshell, so no value(s) need saving.'>)}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<2>} ) ] spids: [110 125] ) ] ) (C {<typeset>} {<var_name>}) (command.ForEach iter_name: var_name iter_words: [{($ Id.VSub_At '$@')}] do_arg_iter: F body: (command.DoGroup children: [ (C {<_Dbg_defined>} {($ Id.VSub_DollarName '$var_name')}) (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_QMark '$?')} right: {<Id.Lit_Digits 0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<typeset>} {<val>}) (C {<typeset>} {<Id.Lit_VarLike 'val_cmd='> (DQ <'val='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ) <'{'> ($ Id.VSub_DollarName '$var_name') <'}'> ) } ) (C {<eval>} {(DQ ($ Id.VSub_DollarName '$val_cmd'))}) (C {<_Dbg_write_journal>} {(DQ (${ Id.VSub_Name var_name) <'='> (${ Id.VSub_Name val))} ) ] spids: [167 182] ) ] else_action: [ (C {<_Dbg_errmsg>} { (DQ <'name: '> ($ Id.VSub_DollarName '$var_name') <' is not known to be a variable.'> ) } ) ] ) ] ) ) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>}) ] ) ) ] )