(command.CommandList children: [ (C {<.>} { (braced_var_sub token: <Id.VSub_Name BASH_SOURCE> suffix_op: (suffix_op.Unary op_id:Id.VOp1_Percent arg_word:{<Id.Lit_Slash '/'> <'*'>}) ) <'/test.sh'> } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:value) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [{<'../lishp.sh'>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 28 stdin_parts: [<'(let ((x 2))\n'> <' x)\n'>] ) ) ] do_fork: T ) ) } spids: [18] ) ] ) (C {<assert> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <equals>} {(DQ <'Integer :: 2'>)} {(DQ (${ Id.VSub_Name value))} {(DQ <'Basic let'>)} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:value) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [{<'../lishp.sh'>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 64 stdin_parts: [<'(let ((x (+ 1 3)))\n'> <' x)\n'>] ) ) ] do_fork: T ) ) } spids: [54] ) ] ) (C {<assert> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <equals>} {(DQ <'Integer :: 4'>)} {(DQ (${ Id.VSub_Name value))} {(DQ <'let with expression'>)} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:value) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [{<'../lishp.sh'>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 101 stdin_parts: [<'(let ((x 2)\n'> <' (y x))\n'> <' y)\n'>] ) ) ] do_fork: T ) ) } spids: [90] ) ] ) (C {<assert> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <equals>} {(DQ <1>)} {(DQ ($ Id.VSub_QMark '$?'))} {(DQ <'let failing to read previous values'>)} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:value) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [{<'../lishp.sh'>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 136 stdin_parts: [<'(let ((x 2))\n'> <' x\n'> <' (* 5 2))\n'>] ) ) ] do_fork: T ) ) } spids: [125] ) ] ) (C {<assert> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <equals>} {(DQ <'Integer :: 10'>)} {(DQ (${ Id.VSub_Name value))} {(DQ <'let returning last value'>)} ) (C {<assert> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <report>}) ] )