(CommandList children: [ (C {(.)} { (BracedVarSub token: <VSub_Name BASH_SOURCE> suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(Lit_Slash /) ('*')}) spids: [6 11] ) (/test.sh) } ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:value) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [{(../lishp.sh)}] redirects: [ (HereDoc op: <Redir_DLess '<<'> fd: 16777215 here_begin: {(EOF)} here_end_span_id: 28 stdin_parts: [('(let ((x 2))\n') (' x)\n')] ) ] ) ] ) left_token: <Left_CommandSub '$('> spids: [19 29] ) } spids: [18] ) ] spids: [18] ) (C {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} {(DQ ('Integer :: 2'))} {(DQ (${ VSub_Name value))} {(DQ ('Basic let'))} ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:value) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [{(../lishp.sh)}] redirects: [ (HereDoc op: <Redir_DLess '<<'> fd: 16777215 here_begin: {(EOF)} here_end_span_id: 64 stdin_parts: [('(let ((x (+ 1 3)))\n') (' x)\n')] ) ] ) ] ) left_token: <Left_CommandSub '$('> spids: [55 65] ) } spids: [54] ) ] spids: [54] ) (C {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} {(DQ ('Integer :: 4'))} {(DQ (${ VSub_Name value))} {(DQ ('let with expression'))} ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:value) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [{(../lishp.sh)}] redirects: [ (HereDoc op: <Redir_DLess '<<'> fd: 16777215 here_begin: {(EOF)} here_end_span_id: 101 stdin_parts: [('(let ((x 2)\n') (' (y x))\n') (' y)\n')] ) ] ) ] ) left_token: <Left_CommandSub '$('> spids: [91 102] ) } spids: [90] ) ] spids: [90] ) (C {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} {(DQ (1))} {(DQ ($ VSub_QMark '$?'))} {(DQ ('let failing to read previous values'))} ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:value) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [{(../lishp.sh)}] redirects: [ (HereDoc op: <Redir_DLess '<<'> fd: 16777215 here_begin: {(EOF)} here_end_span_id: 136 stdin_parts: [('(let ((x 2))\n') (' x\n') (' (* 5 2))\n')] ) ] ) ] ) left_token: <Left_CommandSub '$('> spids: [126 137] ) } spids: [125] ) ] spids: [125] ) (C {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} {(DQ ('Integer :: 10'))} {(DQ (${ VSub_Name value))} {(DQ ('let returning last value'))} ) (C {(assert) (Lit_Other ':') (Lit_Other ':') (report)}) ] )