(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:expected) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [{(cat)}] redirects: [ (HereDoc op_id: Redir_DLess fd: -1 body: { ( "(\"#!/usr/bin/env bash\" \" echo \\\"bash >= 4.0 required\\\" >&2\" \"#!/bin/bash\" \" \\\"how do we replace bash?\\\")\" \" (title \\\"gherkin - a lisp1 written in bash4\\\")\" \" \\\" - no real array in bash\\\"\" \" \\\"Aron Griffis: bash pro tips\\\"\")\n" ) } do_expansion: False here_end: EOF was_filled: True spids: [8] ) ] ) ] ) left_token: <Left_CommandSub "$("> spids: [4 14] ) } spids: [3] ) ] spids: [3] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:actual) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(./gherkin)} {(-e)} { (SQ < "(load-file \"core\") (sh (str \"grep -h bash \" (join \" \" (remove (fn [x] (or (eq? \"simple_test.sh\" x) (eq? \"README.md\" x))) (sh \"ls\")))))" > ) } ) ] ) left_token: <Left_CommandSub "$("> spids: [18 26] ) } spids: [17] ) ] spids: [17] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_Name "$expected"))} right: {(DQ ($ VSub_Name "$actual"))} ) ) terminator: <Op_Semi ";"> ) ] action: [(C {(echo)} {(DQ ("test 1/1 passed"))})] spids: [-1 46] ) ] else_action: [ (C {(echo)} {(DQ ("test 1/1 failed"))}) (C {(echo)} {(DQ ("EXPECTED: ") ($ VSub_Name "$expected"))}) (C {(echo)} {(DQ ("RECEIVED: ") ($ VSub_Name "$actual"))}) ] spids: [55 80] ) ] )