(command.CommandList
  children: [
    (command.Simple
      blame_tok: <Id.Lit_Colon ':'>
      more_env: []
      words: [
        {<Id.Lit_Colon ':'>}
        {
          (BracedVarSub
            left: <Id.Left_DollarBrace '${'>
            token: <Id.VSub_Name TEST_SH>
            var_name: TEST_SH
            suffix_op: (suffix_op.Unary op:<Id.VTest_ColonEquals _> arg_word:{(DQ <'/bin/sh'>)})
            right: <Id.Right_DollarBrace '}'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <atf_test_case>
      more_env: []
      words: [{<atf_test_case>} {<a_basic_cmdsub>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <a_basic_cmdsub_head>
      name: a_basic_cmdsub_head
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [{<atf_set>} {(DQ <descr>)} {(SQ <'Test operation of simple $( ) substitutions'>)}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <a_basic_cmdsub_body>
      name: a_basic_cmdsub_body
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <'Result is true today'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'echo Result is $( true && echo true || echo false ) today'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <'Result is false today'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'echo Result is $( false && echo true || echo false ) today'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <aaabbbccc>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'echo aaa$( echo bbb )ccc'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <'aaabbb cccddd'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'echo aaa$( echo bbb ccc )ddd'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> (SQ <'aaabbb cccddd\\n'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'echo aaa$( echo bbb; echo ccc )ddd'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> (SQ <'aaabbb\\ncccddd\\n'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'echo "aaa$( echo bbb; echo ccc )ddd"'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> (SQ <'some string\\n'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'X=$( echo some string ); echo "$X"'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> (SQ <'weird; string *\\n'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'X=$( echo "weird; string *" ); echo "$X"'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <rm>
                  more_env: []
                  words: [{<rm>} {<-f>} {<Id.Lit_Star '*'>}]
                  redirects: [
                    (Redir
                      op: <Id.Redir_Great '2>'>
                      loc: (redir_loc.Fd fd:2)
                      arg: {<'/dev/null'>}
                    )
                  ]
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <Id.Lit_Colon ':'>
                  more_env: []
                  words: [{<Id.Lit_Colon ':'>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [f]
              iterable: (for_iter.Words words:[{<file-1>} {<file-2>}])
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Simple
                      blame_tok: <cp>
                      more_env: []
                      words: [{<cp>} {<'/dev/null'>} {(DQ ($ Id.VSub_DollarName f))}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <'Found file-1 file-2'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'echo Found $( echo * )'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <'Found file-1 file-2'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'echo Found "$( echo * )"'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <'Found file-1 file-2'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'echo Found $('>) (DQ <' echo \'*\' )'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <'Found \\*'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'echo Found "$('>) (DQ <' echo \'*\' '>) (SQ <')"'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <'Found file-1 file-2'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'echo Found $('>) 
                  (DQ <' echo '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') 
                    <'* )'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <'Found \\*'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'echo Found "$('>) 
                  (DQ <' echo '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') 
                    <'* )'>
                  ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <atf_test_case>
      more_env: []
      words: [{<atf_test_case>} {<b_basic_backticks>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <b_basic_backticks_head>
      name: b_basic_backticks_head
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [{<atf_set>} {(DQ <descr>)} {(SQ <'Test operation of old style ` ` substitutions'>)}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <b_basic_backticks_body>
      name: b_basic_backticks_body
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <'Result is true today'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'echo Result is `true && echo true || echo false` today'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <'Result is false today'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'echo Result is `false && echo true || echo false` today'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <aaabbbccc>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'echo aaa` echo bbb `ccc'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <'aaabbb cccddd'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'echo aaa` echo bbb ccc `ddd'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> (SQ <'aaabbb cccddd\\n'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'echo aaa` echo bbb; echo ccc `ddd'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> (SQ <'aaabbb\\ncccddd\\n'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'echo "aaa` echo bbb; echo ccc `ddd"'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> (SQ <'some string\\n'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'X=` echo some string `; echo "$X"'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> (SQ <'weird; string *\\n'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'X=` echo "weird; string *" `; echo "$X"'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <rm>
                  more_env: []
                  words: [{<rm>} {<-f>} {<Id.Lit_Star '*'>}]
                  redirects: [
                    (Redir
                      op: <Id.Redir_Great '2>'>
                      loc: (redir_loc.Fd fd:2)
                      arg: {<'/dev/null'>}
                    )
                  ]
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <Id.Lit_Colon ':'>
                  more_env: []
                  words: [{<Id.Lit_Colon ':'>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [f]
              iterable: (for_iter.Words words:[{<file-1>} {<file-2>}])
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Simple
                      blame_tok: <cp>
                      more_env: []
                      words: [{<cp>} {<'/dev/null'>} {(DQ ($ Id.VSub_DollarName f))}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <'Found file-1 file-2'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'echo Found ` echo * `'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <'Found file-1 file-2'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'echo Found "` echo * `"'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <'Found file-1 file-2'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'echo Found `'>) (DQ <' echo \'*\' '>) (SQ <'`'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <'Found \\*'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'echo Found "`'>) (DQ <' echo \'*\' '>) (SQ <'`"'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <'Found file-1 file-2'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'echo Found `'>) 
                  (DQ <' echo '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') 
                    <'* '>
                  ) (SQ <'`'>)
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <'Found \\*'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'echo Found "`'>) 
                  (DQ <' echo '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') 
                    <'* '>
                  ) (SQ <'`"'>)
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <atf_test_case>
      more_env: []
      words: [{<atf_test_case>} {<c_nested_cmdsub>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <c_nested_cmdsub_head>
      name: c_nested_cmdsub_head
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [{<atf_set>} {(DQ <descr>)} {(DQ <'Test that cmd substitutions can be nested'>)}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <c_nested_cmdsub_body>
      name: c_nested_cmdsub_body
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <__foobarbletch__>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'echo __$( echo foo$(echo bar)bletch )__'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <_abcde_>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'echo _$(echo a$(echo $(echo b)c$(echo d))e )_'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <123454321>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'echo 1$(echo 2$(echo 3$(echo 4$(echo 5)4)3)2)1'>)}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <atf_test_case>
      more_env: []
      words: [{<atf_test_case>} {<d_nested_backticks>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <d_nested_backticks_head>
      name: d_nested_backticks_head
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [
                {<atf_set>}
                {(DQ <descr>)}
                {(DQ <'Tests that old style backtick cmd subs can be nested'>)}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <d_nested_backticks_body>
      name: d_nested_backticks_body
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <__foobarbletch__>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'echo __` echo foo\\`echo bar\\`bletch `__'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <_abcde_>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'echo _`echo a\\`echo \\\\\\`echo b\\\\\\`c\\\\\\`echo d\\\\\\`\\`e `_'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <123454321>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {
                  (SQ 
                    <
'echo 1`echo 2\\`echo 3\\\\\\`echo 4\\\\\\\\\\\\\\`echo 5\\\\\\\\\\\\\\`4\\\\\\`3\\`2`1'
                    >
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <atf_test_case>
      more_env: []
      words: [{<atf_test_case>} {<e_perverse_mixing>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <e_perverse_mixing_head>
      name: e_perverse_mixing_head
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [
                {<atf_set>}
                {(DQ <descr>)}
                {(DQ <'Checks various mixed new and old style cmd substitutions'>)}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <e_perverse_mixing_body>
      name: e_perverse_mixing_body
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <__foobarbletch__>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'echo __$( echo foo`echo bar`bletch )__'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <__foobarbletch__>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'echo __` echo foo$(echo bar)bletch `__'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <_abcde_>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'echo _$(echo a`echo $(echo b)c$(echo d)`e )_'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <_abcde_>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'echo _`echo a$(echo \\`echo b\\`c\\`echo d\\`)e `_'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <12345654321>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'echo 1`echo 2$(echo 3\\`echo 4\\\\\\`echo 5$(echo 6)5\\\\\\`4\\`3)2`1'>)}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <atf_test_case>
      more_env: []
      words: [{<atf_test_case>} {<f_redirect_in_cmdsub>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <f_redirect_in_cmdsub_head>
      name: f_redirect_in_cmdsub_head
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [
                {<atf_set>}
                {(DQ <descr>)}
                {(DQ <'Checks that redirects work in command substitutions'>)}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <f_redirect_in_cmdsub_body>
      name: f_redirect_in_cmdsub_body
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_require_prog>
              more_env: []
              words: [{<atf_require_prog>} {<cat>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_require_prog>
              more_env: []
              words: [{<atf_require_prog>} {<rm>}]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <rm>
                  more_env: []
                  words: [{<rm>} {<-f>} {<file>}]
                  redirects: [
                    (Redir
                      op: <Id.Redir_Great '2>'>
                      loc: (redir_loc.Fd fd:2)
                      arg: {<'/dev/null'>}
                    )
                  ]
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <Id.Lit_Colon ':'>
                  more_env: []
                  words: [{<Id.Lit_Colon ':'>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <_aa_>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'echo _$( echo a$( echo b > file )a)_'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> <b>}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'cat file'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <_aba_>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'echo _$( echo a$( cat < file )a)_'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <_aa_>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'echo _$( echo a$( echo d >> file )a)_'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> (SQ <'b\\nd\\n'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'cat file'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <_aa_>)}
                {<-e>}
                {<match> <Id.Lit_Colon ':'> (SQ <'not error'>)}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'echo _$( echo a$( echo not error >&2 )a)_'>)}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <atf_test_case>
      more_env: []
      words: [{<atf_test_case>} {<g_redirect_in_backticks>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <g_redirect_in_backticks_head>
      name: g_redirect_in_backticks_head
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [
                {<atf_set>}
                {(DQ <descr>)}
                {(DQ <'Checks that redirects work in old style cmd sub'>)}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <g_redirect_in_backticks_body>
      name: g_redirect_in_backticks_body
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_require_prog>
              more_env: []
              words: [{<atf_require_prog>} {<cat>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_require_prog>
              more_env: []
              words: [{<atf_require_prog>} {<rm>}]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <rm>
                  more_env: []
                  words: [{<rm>} {<-f>} {<file>}]
                  redirects: [
                    (Redir
                      op: <Id.Redir_Great '2>'>
                      loc: (redir_loc.Fd fd:2)
                      arg: {<'/dev/null'>}
                    )
                  ]
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <Id.Lit_Colon ':'>
                  more_env: []
                  words: [{<Id.Lit_Colon ':'>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <_aa_>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'echo _` echo a\\` echo b > file \\`a`_'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> <b>}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'cat file'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <_aba_>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'echo _` echo a\\` cat < file \\`a`_'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <_aa_>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'echo _` echo a\\` echo d >> file \\`a`_'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> (SQ <'b\\nd\\n'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'cat file'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <_aa_>)}
                {<-e>}
                {<match> <Id.Lit_Colon ':'> (SQ <'not error'>)}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'echo _` echo a\\` echo not error >&2 \\`a`_'>)}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <atf_test_case>
      more_env: []
      words: [{<atf_test_case>} {<h_vars_in_cmdsub>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <h_vars_in_cmdsub_head>
      name: h_vars_in_cmdsub_head
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [
                {<atf_set>}
                {(DQ <descr>)}
                {(DQ <'Check that variables work in command substitutions'>)}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <h_vars_in_cmdsub_body>
      name: h_vars_in_cmdsub_body
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <__abc__>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'X=abc; echo __$( echo ${X} )__'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <__abc__>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'X=abc; echo __$( echo "${X}" )__'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <__abc__>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'X=abc; echo "__$( echo ${X} )__"'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <__abc__>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'X=abc; echo "__$( echo "${X}" )__"'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> (SQ <'a\\n\\nb\\n\\nc\\n'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(DQ <'for X in a \'\' b \'\' c'>) (SQ <'; do echo $( echo "$X" ); done'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <__acd__>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'X=; unset Y; echo "__$( echo a${X-b}${Y-c}d)__"'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <__abcd__>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'X=; unset Y; echo "__$( echo a${X:-b}${Y:-c}d)__"'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <__XYX__>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'X=X; echo "__${X}$( X=Y; echo ${X} )${X}__"'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <__def__>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'X=abc; echo "__$(X=def; echo "${X}" )__"'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> (SQ <'abcdef\\nabc\\n'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'X=abc; echo "$X$(X=def; echo ${X} )"; echo $X'>)}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <atf_test_case>
      more_env: []
      words: [{<atf_test_case>} {<i_vars_in_backticks>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <i_vars_in_backticks_head>
      name: i_vars_in_backticks_head
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [
                {<atf_set>}
                {(DQ <descr>)}
                {(DQ <'Checks that variables work in old style cmd sub'>)}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <i_vars_in_backticks_body>
      name: i_vars_in_backticks_body
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <__abc__>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'X=abc; echo __` echo ${X} `__'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <__abc__>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'X=abc; echo __` echo "${X}" `__'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <__abc__>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'X=abc; echo "__` echo ${X} `__"'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <__abc__>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'X=abc; echo "__` echo \\"${X}\\" `__"'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> (SQ <'a\\n\\nb\\n\\nc\\n'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(DQ <'for X in a \'\' b \'\' c'>) (SQ <'; do echo $( echo "$X" ); done'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <__acd__>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'X=; unset Y; echo "__$( echo a${X-b}${Y-c}d)__"'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <__abcd__>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'X=; unset Y; echo "__$( echo a${X:-b}${Y:-c}d)__"'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <__XYX__>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'X=X; echo "__${X}$( X=Y; echo ${X} )${X}__"'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> (SQ <'abcdef\\nabc\\n'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'X=abc; echo "$X`X=def; echo \\"${X}\\" `";echo $X'>)}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <atf_test_case>
      more_env: []
      words: [{<atf_test_case>} {<j_cmdsub_in_varexpand>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <j_cmdsub_in_varexpand_head>
      name: j_cmdsub_in_varexpand_head
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [
                {<atf_set>}
                {(DQ <descr>)}
                {(DQ <'Checks that command sub can be used in var expansion'>)}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <j_cmdsub_in_varexpand_body>
      name: j_cmdsub_in_varexpand_body
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <foo>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'X=set; echo ${X+$(echo foo)}'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <set>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'X=set; echo ${X-$(echo foo)}'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <rm>
                  more_env: []
                  words: [{<rm>} {<-f>} {<bar>}]
                  redirects: [
                    (Redir
                      op: <Id.Redir_Great '2>'>
                      loc: (redir_loc.Fd fd:2)
                      arg: {<'/dev/null'>}
                    )
                  ]
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <Id.Lit_Colon ':'>
                  more_env: []
                  words: [{<Id.Lit_Colon ':'>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <set>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'X=set; echo ${X-$(echo foo > bar)}'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<-f>} {<bar>}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <atf_fail>
                  more_env: []
                  words: [{<atf_fail>} {(DQ <'bar should not exist, but does'>)}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> (SQ <'\\n'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'X=set; echo ${X+$(echo foo > bar)}'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<-f>} {<bar>}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <atf_fail>
                  more_env: []
                  words: [{<atf_fail>} {(DQ <'bar should exist, but does not'>)}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <atf_test_case>
      more_env: []
      words: [{<atf_test_case>} {<k_backticks_in_varexpand>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <k_backticks_in_varexpand_head>
      name: k_backticks_in_varexpand_head
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [
                {<atf_set>}
                {(DQ <descr>)}
                {(DQ <'Checks that old style cmd sub works in var expansion'>)}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <k_backticks_in_varexpand_body>
      name: k_backticks_in_varexpand_body
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <foo>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'X=set; echo ${X+`echo foo`}'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <set>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'X=set; echo ${X-`echo foo`}'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <rm>
                  more_env: []
                  words: [{<rm>} {<-f>} {<bar>}]
                  redirects: [
                    (Redir
                      op: <Id.Redir_Great '2>'>
                      loc: (redir_loc.Fd fd:2)
                      arg: {<'/dev/null'>}
                    )
                  ]
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <Id.Lit_Colon ':'>
                  more_env: []
                  words: [{<Id.Lit_Colon ':'>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <set>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'X=set; echo ${X-`echo foo > bar`}'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<-f>} {<bar>}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <atf_fail>
                  more_env: []
                  words: [{<atf_fail>} {(DQ <'bar should not exist, but does'>)}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> (SQ <'\\n'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'X=set; echo ${X+`echo foo > bar`}'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<-f>} {<bar>}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <atf_fail>
                  more_env: []
                  words: [{<atf_fail>} {(DQ <'bar should exist, but does not'>)}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <atf_test_case>
      more_env: []
      words: [{<atf_test_case>} {<l_arithmetic_in_cmdsub>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <l_arithmetic_in_cmdsub_head>
      name: l_arithmetic_in_cmdsub_head
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [
                {<atf_set>}
                {(DQ <descr>)}
                {(DQ <'Checks that arithmetic works in cmd substitutions'>)}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <l_arithmetic_in_cmdsub_body>
      name: l_arithmetic_in_cmdsub_body
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> (SQ <'1 + 1 = 2\\n'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'echo 1 + 1 = $( echo $(( 1 + 1 )) )'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> (SQ <'X * Y = 6\\n'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'X=2; Y=3; echo X \\* Y = $( echo $(( X * Y )) )'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> (SQ <'Y % X = 1\\n'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'X=2; Y=3; echo Y % X = $( echo $(( $Y % $X )) )'>)}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <atf_test_case>
      more_env: []
      words: [{<atf_test_case>} {<m_arithmetic_in_backticks>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <m_arithmetic_in_backticks_head>
      name: m_arithmetic_in_backticks_head
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [
                {<atf_set>}
                {(DQ <descr>)}
                {(DQ <'Checks that arithmetic works in old style cmd sub'>)}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <m_arithmetic_in_backticks_body>
      name: m_arithmetic_in_backticks_body
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> (SQ <'2 + 3 = 5\\n'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'echo 2 + 3 = ` echo $(( 2 + 3 )) `'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> (SQ <'X * Y = 6\\n'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'X=2; Y=3; echo X \\* Y = ` echo $(( X * Y )) `'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> (SQ <'Y % X = 1\\n'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'X=2; Y=3; echo Y % X = ` echo $(( $Y % $X )) `'>)}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <atf_test_case>
      more_env: []
      words: [{<atf_test_case>} {<n_cmdsub_in_arithmetic>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <n_cmdsub_in_arithmetic_head>
      name: n_cmdsub_in_arithmetic_head
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [
                {<atf_set>}
                {(DQ <descr>)}
                {(DQ <'Tests uses of command substitutions in arithmetic'>)}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <n_cmdsub_in_arithmetic_body>
      name: n_cmdsub_in_arithmetic_body
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> (SQ <'7\\n'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'echo $(( $( echo 3 ) $( echo + ) $( echo 4 ) ))'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> (SQ <'11\\n7\\n18\\n4\\n1\\n'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {
                  (SQ <'for op in + - \\* / %\n'> <'\t\t  do\n'> 
                    <'\t\t      echo $(( $( echo 9 ) $( echo "${op}" ) $( echo 2 ) ))\n'> <'\t\t  done'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <atf_test_case>
      more_env: []
      words: [{<atf_test_case>} {<o_backticks_in_arithmetic>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <o_backticks_in_arithmetic_head>
      name: o_backticks_in_arithmetic_head
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [{<atf_set>} {(DQ <descr>)} {(DQ <'Tests old style cmd sub used in arithmetic'>)}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <o_backticks_in_arithmetic_body>
      name: o_backticks_in_arithmetic_body
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> (SQ <'33\\n'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'echo $(( `echo 77` `echo -` `echo 44`))'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> (SQ <'14\\n8\\n33\\n3\\n2\\n'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {
                  (SQ <'for op in + - \\* / %\n'> <'\t\t  do\n'> 
                    <'\t\t      echo $((`echo 11``echo "${op}"``echo 3`))\n'> <'\t\t  done'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <atf_test_case>
      more_env: []
      words: [{<atf_test_case>} {<p_cmdsub_in_heredoc>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <p_cmdsub_in_heredoc_head>
      name: p_cmdsub_in_heredoc_head
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [
                {<atf_set>}
                {(DQ <descr>)}
                {(DQ <'Checks that cmdsubs work inside a here document'>)}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <p_cmdsub_in_heredoc_body>
      name: p_cmdsub_in_heredoc_body
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_require_prog>
              more_env: []
              words: [{<atf_require_prog>} {<cat>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> (SQ <'line 1+1\\nline 2\\nline 3\\n'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {
                  (SQ <'cat <<- EOF\n'> <'\t\t\t$( echo line 1 )$( echo +1 )\n'> 
                    <'\t\t\t$( echo line 2;echo line 3 )\n'> <'\t\tEOF'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <atf_test_case>
      more_env: []
      words: [{<atf_test_case>} {<q_backticks_in_heredoc>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <q_backticks_in_heredoc_head>
      name: q_backticks_in_heredoc_head
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [
                {<atf_set>}
                {(DQ <descr>)}
                {(DQ <'Checks that old style cmdsubs work in here docs'>)}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <q_backticks_in_heredoc_body>
      name: q_backticks_in_heredoc_body
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_require_prog>
              more_env: []
              words: [{<atf_require_prog>} {<cat>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> (SQ <'Mary had a\\nlittle\\nlamb\\n'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {
                  (SQ <'cat <<- EOF\n'> <'\t\t\t`echo Mary ` `echo had a `\n'> 
                    <'\t\t\t` echo little; echo lamb `\n'> <'\t\tEOF'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <atf_test_case>
      more_env: []
      words: [{<atf_test_case>} {<r_heredoc_in_cmdsub>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <r_heredoc_in_cmdsub_head>
      name: r_heredoc_in_cmdsub_head
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [{<atf_set>} {(DQ <descr>)} {(DQ <'Checks that here docs work inside cmd subs'>)}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <r_heredoc_in_cmdsub_body>
      name: r_heredoc_in_cmdsub_body
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_require_prog>
              more_env: []
              words: [{<atf_require_prog>} {<cat>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> (SQ <'Mary had a\\nlittle\\nlamb\\n'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {
                  (SQ <'echo "$( cat <<- \\EOF\n'> <'\t\t\t\tMary had a\n'> <'\t\t\t\tlittle\n'> 
                    <'\t\t\t\tlamb\n'> <'\t\t\tEOF\n'> <'\t\t\t)"'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-e>}
                {<empty>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> 
                  (SQ <'Mary had 1\\nlittle\\nlamb\\nMary had 4\\nlittle\\nlambs\\n'>)
                }
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {
                  (SQ <'for N in 1 4; do echo "$( cat <<- EOF\n'> <'\t\t\t\tMary had ${N}\n'> 
                    <'\t\t\t\tlittle\n'> <'\t\t\t\tlamb$( [ $N -gt 1 ] && echo s )\n'> <'\t\t\tEOF\n'> <'\t\t\t)"; done'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> (SQ <'A Calculation:\\n2 * 7 = 14\\n'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {
                  (SQ <'echo "$( cat <<- EOF\n'> <'\t\t\t\tA Calculation:\n'> 
                    <'\t\t\t\t\t2 * 7 = $(( 2 * 7 ))\n'> <'\t\t\tEOF\n'> <'\t\t\t)"'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <atf_test_case>
      more_env: []
      words: [{<atf_test_case>} {<s_heredoc_in_backticks>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <s_heredoc_in_backticks_head>
      name: s_heredoc_in_backticks_head
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [
                {<atf_set>}
                {(DQ <descr>)}
                {(DQ <'Checks that here docs work inside old style cmd subs'>)}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <s_heredoc_in_backticks_body>
      name: s_heredoc_in_backticks_body
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_require_prog>
              more_env: []
              words: [{<atf_require_prog>} {<cat>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> (SQ <'Mary had a little lamb\\n'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {
                  (SQ <'echo ` cat <<- \\EOF\n'> <'\t\t\t\tMary had a\n'> <'\t\t\t\tlittle\n'> 
                    <'\t\t\t\tlamb\n'> <'\t\t\tEOF\n'> <'\t\t\t`'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> (SQ <'A Calculation:\\n17 / 3 = 5\\n'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {
                  (SQ <'echo "` cat <<- EOF\n'> <'\t\t\t\tA Calculation:\n'> 
                    <'\t\t\t\t\t17 / 3 = $(( 17 / 3 ))\n'> <'\t\t\tEOF\n'> <'\t\t\t`"'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <atf_test_case>
      more_env: []
      words: [{<atf_test_case>} {<t_nested_cmdsubs_in_heredoc>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <t_nested_cmdsubs_in_heredoc_head>
      name: t_nested_cmdsubs_in_heredoc_head
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [
                {<atf_set>}
                {(DQ <descr>)}
                {(DQ <'Checks nested command substitutions in here docs'>)}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <t_nested_cmdsubs_in_heredoc_body>
      name: t_nested_cmdsubs_in_heredoc_body
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_require_prog>
              more_env: []
              words: [{<atf_require_prog>} {<cat>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_require_prog>
              more_env: []
              words: [{<atf_require_prog>} {<rm>}]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <rm>
                  more_env: []
                  words: [{<rm>} {<-f>} {<Id.Lit_Star '*'>}]
                  redirects: [
                    (Redir
                      op: <Id.Redir_Great '2>'>
                      loc: (redir_loc.Fd fd:2)
                      arg: {<'/dev/null'>}
                    )
                  ]
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <Id.Lit_Colon ':'>
                  more_env: []
                  words: [{<Id.Lit_Colon ':'>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <Hello>)}]
              redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<File>})]
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> (SQ <'Hello U\\nHelp me!\\n'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {
                  (SQ <'cat <<- EOF\n'> <'\t\t$(cat File) U\n'> 
                    <'\t\t$( V=$(cat File); echo "${V%lo}p" ) me!\n'> <'\t\tEOF'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <rm>
                  more_env: []
                  words: [{<rm>} {<-f>} {<Id.Lit_Star '*'>}]
                  redirects: [
                    (Redir
                      op: <Id.Redir_Great '2>'>
                      loc: (redir_loc.Fd fd:2)
                      arg: {<'/dev/null'>}
                    )
                  ]
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <Id.Lit_Colon ':'>
                  more_env: []
                  words: [{<Id.Lit_Colon ':'>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.Sentence
              child: 
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [{<echo>} {<V>}]
                  redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<V>})]
                  do_fork: T
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Sentence
              child: 
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [{<echo>} {<A>}]
                  redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<A>})]
                  do_fork: T
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {<R>}]
              redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<R>})]
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {<Value>}]
              redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<VAR>})]
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> (SQ <'$2.50\\n'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'cat <<- EOF\n'> <'\t$(Value='>) 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\\''>
                    ch: '\''
                  ) (SQ <'$2.50'>) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''> ch:'\'') 
                  (SQ <';eval echo $(eval $(cat V)$(cat A)$(cat R)=\\'>) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''> ch:'\'') 
                  (SQ <'\\$$(cat $(cat V)$(cat A)$(cat R))\\'>) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''> ch:'\'') 
                  (SQ <'; eval echo \\$$(set -- *;echo ${3}${1}${2})))\n'> <'\t\tEOF'>)
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <atf_test_case>
      more_env: []
      words: [{<atf_test_case>} {<u_nested_backticks_in_heredoc>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <u_nested_backticks_in_heredoc_head>
      name: u_nested_backticks_in_heredoc_head
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [{<atf_set>} {(DQ <descr>)} {(DQ <'Checks nested old style cmd subs in here docs'>)}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <u_nested_backticks_in_heredoc_body>
      name: u_nested_backticks_in_heredoc_body
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_require_prog>
              more_env: []
              words: [{<atf_require_prog>} {<cat>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_require_prog>
              more_env: []
              words: [{<atf_require_prog>} {<rm>}]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <rm>
                  more_env: []
                  words: [{<rm>} {<-f>} {<Id.Lit_Star '*'>}]
                  redirects: [
                    (Redir
                      op: <Id.Redir_Great '2>'>
                      loc: (redir_loc.Fd fd:2)
                      arg: {<'/dev/null'>}
                    )
                  ]
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <Id.Lit_Colon ':'>
                  more_env: []
                  words: [{<Id.Lit_Colon ':'>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <Hello>)}]
              redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<File>})]
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> (SQ <'Hello U\\nHelp me!\\n'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {
                  (SQ <'cat <<- EOF\n'> <'\t\t`cat File` U\n'> 
                    <'\t\t`V=\\`cat File\\`; echo "${V%lo}p" ` me!\n'> <'\t\tEOF'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <rm>
                  more_env: []
                  words: [{<rm>} {<-f>} {<Id.Lit_Star '*'>}]
                  redirects: [
                    (Redir
                      op: <Id.Redir_Great '2>'>
                      loc: (redir_loc.Fd fd:2)
                      arg: {<'/dev/null'>}
                    )
                  ]
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <Id.Lit_Colon ':'>
                  more_env: []
                  words: [{<Id.Lit_Colon ':'>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.Sentence
              child: 
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [{<echo>} {<V>}]
                  redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<V>})]
                  do_fork: T
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Sentence
              child: 
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [{<echo>} {<A>}]
                  redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<A>})]
                  do_fork: T
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {<R>}]
              redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<R>})]
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {<Value>}]
              redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<VAR>})]
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> (SQ <'$5.20\\n'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'cat <<- EOF\n'> <'\t`Value='>) 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\\''>
                    ch: '\''
                  ) (SQ <'$5.20'>) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''> ch:'\'') 
                  (SQ 
                    <
';eval echo \\`eval \\\\\\`cat V\\\\\\`\\\\\\`cat A\\\\\\`\\\\\\`cat R\\\\\\`=\\\\\\'
                    >
                  ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''> ch:'\'') 
                  (SQ 
                    <
'\\\\\\$\\\\\\`cat \\\\\\\\\\\\\\`cat V\\\\\\\\\\\\\\`\\\\\\\\\\\\\\`cat A\\\\\\\\\\\\\\`\\\\\\\\\\\\\\`cat R\\\\\\\\\\\\\\`\\\\\\`\\\\\\'
                    >
                  ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''> ch:'\'') 
                  (SQ 
                    <
'; eval echo \\\\\\$\\\\\\`set -- *;echo \\\\\\\\\\${3}\\\\\\\\\\${1}\\\\\\\\\\${2}\\\\\\`\\``\n'
                    > <'\t\tEOF'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <atf_test_case>
      more_env: []
      words: [{<atf_test_case>} {<v_cmdsub_paren_tests>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <v_cmdsub__paren_tests_head>
      name: v_cmdsub__paren_tests_head
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [{<atf_set>} {(DQ <descr>)} {(DQ <'tests with cmdsubs containing embedded \')\''>)}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <v_cmdsub_paren_tests_body>
      name: v_cmdsub_paren_tests_body
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> (SQ <'A.1\\n'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'echo $(\n'> <'\t\t\tcase x in  x) echo A.1;; esac\n'> <'\t\t)'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> (SQ <'A.2\\n'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'echo $(\n'> <'\t\t\tcase x in  x) echo A.2;; esac # comment\n'> <'\t\t)'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> (SQ <'A.3\\n'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'echo $(\n'> <'\t\t\tcase x in (x) echo A.3;; esac\n'> <'\t\t)'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> (SQ <'A.4\\n'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'echo $(\n'> <'\t\t\tcase x in (x) echo A.4;; esac # comment\n'> <'\t\t)'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> (SQ <'A.5\\n'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'echo $(\n'> <'\t\t\tcase x in (x) echo A.5\n'> <'\t\t\tesac\n'> <'\t\t)'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> (SQ <'B: quoted )\\n'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'echo $(\n'> <'\t\t\techo '>) 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\\''>
                    ch: '\''
                  ) (SQ <'B: quoted )'>) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''> ch:'\'') 
                  (SQ <'\n'> <'\t\t)'>)
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> (SQ <'C: comment then closing paren\\n'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'echo $(\n'> <'\t\t\t\techo C: comment then closing paren # )\n'> <'\t\t\t)'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> (SQ <'D.1: here-doc with )\\n'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {
                  (SQ <'echo $(\n'> <'\t\t\t\tcat <<-\\eof\n'> <'\t\t\t\tD.1: here-doc with )\n'> 
                    <'\t\t\t\teof\n'> <'\t\t\t)'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> (SQ <'D.3: here-doc with \\()\\n'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {
                  (SQ <'echo $(\n'> <'\t\t\t\tcat <<-\\eof\n'> <'\t\t\t\tD.3: here-doc with \\()\n'> 
                    <'\t\t\t\teof\n'> <'\t\t\t)'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-e>}
                {<empty>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> 
                  (SQ <'E: here-doc terminated with a parenthesis ("academic")\\n'>)
                }
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {
                  (SQ <'echo $(\n'> <'\t\t\tcat <<-\\)\n'> 
                    <'\t\t\tE: here-doc terminated with a parenthesis ("academic")\n'> <'\t\t\t)\n'> <'\t\t)'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-e>}
                {<empty>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> 
                  (SQ <'F.1: here-doc embed with unbal single, back- or doublequote '>) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''> ch:'\'') (SQ <'\\n'>)
                }
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {
                  (SQ <'echo $(\n'> <'\t\t\tcat <<-"eof"\n'> 
                    <'\t\tF.1: here-doc embed with unbal single, back- or doublequote '>
                  ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''> ch:'\'') 
                  (SQ <'\n'> <'\t\t\teof\n'> <'\t\t)'>)
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-e>}
                {<empty>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> 
                  (SQ <'F.2: here-doc embed with unbal single, back- or doublequote "\\n'>)
                }
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {
                  (SQ <'echo $(\n'> <'\t\t\tcat <<-"eof"\n'> 
                    <'\t\tF.2: here-doc embed with unbal single, back- or doublequote "\n'> <'\t\t\teof\n'> <'\t\t)'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-e>}
                {<empty>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> 
                  (SQ <'F.3: here-doc embed with unbal single, back- or doublequote `\\n'>)
                }
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {
                  (SQ <'echo $(\n'> <'\t\t\tcat <<-"eof"\n'> 
                    <'\t\tF.3: here-doc embed with unbal single, back- or doublequote `\n'> <'\t\t\teof\n'> <'\t\t)'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-e>}
                {<empty>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> (SQ <'G: backslash at end of line\\n'>)}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'echo $(\n'> <'\t\t\t\techo G: backslash at end of line # \\\n'> <'\t\t\t)'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-e>}
                {<empty>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> (SQ <'H: empty command-substitution\\n'>)}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'echo H: empty command-substitution $( )'>)}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <atf_test_case>
      more_env: []
      words: [{<atf_test_case>} {<w_heredoc_outside_cmdsub>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <w_heredoc_outside_cmdsub_head>
      name: w_heredoc_outside_cmdsub_head
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [{<atf_set>} {(DQ <descr>)} {(DQ <'Checks that here docs work inside cmd subs'>)}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <w_heredoc_outside_cmdsub_body>
      name: w_heredoc_outside_cmdsub_body
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_require_prog>
              more_env: []
              words: [{<atf_require_prog>} {<cat>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> (SQ <'Mary had a\\nlittle\\nlamb\\n'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {
                  (SQ <'echo "$( cat <<- \\EOF )"\n'> <'\t\t\t\tMary had a\n'> <'\t\t\t\tlittle\n'> 
                    <'\t\t\t\tlamb\n'> <'\t\t\tEOF\n'> <'\t\t\t'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-e>}
                {<empty>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> 
                  (SQ <'Mary had 1\\nlittle\\nlamb\\nMary had 4\\nlittle\\nlambs\\n'>)
                }
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {
                  (SQ <'for N in 1 4; do echo "$( cat <<- EOF )"\n'> <'\t\t\t\tMary had ${N}\n'> 
                    <'\t\t\t\tlittle\n'> <'\t\t\t\tlamb$( [ $N -gt 1 ] && echo s )\n'> <'\t\t\tEOF\n'> <'\t\t\tdone'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> (SQ <'A Calculation:\\n2 * 7 = 14\\n'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {
                  (SQ <'echo "$( cat <<- EOF)"\n'> <'\t\t\t\tA Calculation:\n'> 
                    <'\t\t\t\t\t2 * 7 = $(( 2 * 7 ))\n'> <'\t\t\tEOF\n'> <'\t\t\t'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <atf_test_case>
      more_env: []
      words: [{<atf_test_case>} {<x_heredoc_outside_backticks>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <x_heredoc_outside_backticks_head>
      name: x_heredoc_outside_backticks_head
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [
                {<atf_set>}
                {(DQ <descr>)}
                {(DQ <'Checks that here docs work inside old style cmd subs'>)}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <x_heredoc_outside_backticks_body>
      name: x_heredoc_outside_backticks_body
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_require_prog>
              more_env: []
              words: [{<atf_require_prog>} {<cat>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> (SQ <'Mary had a little lamb\\n'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {
                  (SQ <'echo ` cat <<- \\EOF `\n'> <'\t\t\t\tMary had a\n'> <'\t\t\t\tlittle\n'> 
                    <'\t\t\t\tlamb\n'> <'\t\t\tEOF\n'> <'\t\t\t'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> (SQ <'A Calculation:\\n17 / 3 = 5\\n'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {
                  (SQ <'echo "` cat <<- EOF `"\n'> <'\t\t\t\tA Calculation:\n'> 
                    <'\t\t\t\t\t17 / 3 = $(( 17 / 3 ))\n'> <'\t\t\tEOF\n'> <'\t\t\t'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <atf_test_case>
      more_env: []
      words: [{<atf_test_case>} {<t_nested_cmdsubs_in_heredoc>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <t_nested_cmdsubs_in_heredoc_head>
      name: t_nested_cmdsubs_in_heredoc_head
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [
                {<atf_set>}
                {(DQ <descr>)}
                {(DQ <'Checks nested command substitutions in here docs'>)}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <t_nested_cmdsubs_in_heredoc_body>
      name: t_nested_cmdsubs_in_heredoc_body
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_require_prog>
              more_env: []
              words: [{<atf_require_prog>} {<cat>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_require_prog>
              more_env: []
              words: [{<atf_require_prog>} {<rm>}]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <rm>
                  more_env: []
                  words: [{<rm>} {<-f>} {<Id.Lit_Star '*'>}]
                  redirects: [
                    (Redir
                      op: <Id.Redir_Great '2>'>
                      loc: (redir_loc.Fd fd:2)
                      arg: {<'/dev/null'>}
                    )
                  ]
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <Id.Lit_Colon ':'>
                  more_env: []
                  words: [{<Id.Lit_Colon ':'>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <Hello>)}]
              redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<File>})]
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> (SQ <'Hello U\\nHelp me!\\n'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {
                  (SQ <'cat <<- EOF\n'> <'\t\t$(cat File) U\n'> 
                    <'\t\t$( V=$(cat File); echo "${V%lo}p" ) me!\n'> <'\t\tEOF'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <rm>
                  more_env: []
                  words: [{<rm>} {<-f>} {<Id.Lit_Star '*'>}]
                  redirects: [
                    (Redir
                      op: <Id.Redir_Great '2>'>
                      loc: (redir_loc.Fd fd:2)
                      arg: {<'/dev/null'>}
                    )
                  ]
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <Id.Lit_Colon ':'>
                  more_env: []
                  words: [{<Id.Lit_Colon ':'>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.Sentence
              child: 
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [{<echo>} {<V>}]
                  redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<V>})]
                  do_fork: T
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Sentence
              child: 
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [{<echo>} {<A>}]
                  redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<A>})]
                  do_fork: T
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {<R>}]
              redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<R>})]
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {<Value>}]
              redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<VAR>})]
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> (SQ <'$2.50\\n'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {(SQ <'cat <<- EOF\n'> <'\t$(Value='>) 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\\''>
                    ch: '\''
                  ) (SQ <'$2.50'>) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''> ch:'\'') 
                  (SQ <';eval echo $(eval $(cat V)$(cat A)$(cat R)=\\'>) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''> ch:'\'') 
                  (SQ <'\\$$(cat $(cat V)$(cat A)$(cat R))\\'>) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''> ch:'\'') 
                  (SQ <'; eval echo \\$$(set -- *;echo ${3}${1}${2})))\n'> <'\t\tEOF'>)
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <atf_test_case>
      more_env: []
      words: [{<atf_test_case>} {<z_absurd_heredoc_cmdsub_combos>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <z_absurd_heredoc_cmdsub_combos_head>
      name: z_absurd_heredoc_cmdsub_combos_head
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [{<atf_set>} {(DQ <descr>)} {(DQ <'perverse and unusual cmd substitutions & more'>)}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <z_absurd_heredoc_cmdsub_combos_body>
      name: z_absurd_heredoc_cmdsub_combos_body
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'Help!'>)}]
              redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<help>})]
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> (SQ <'Help!\\nMe 2\\n'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {
                  (SQ <'\n'> <'\t\t\tcat <<- EOF\n'> <'\t\t\t\t$(\n'> <'\t\t\t\t\tcat <<- STOP\n'> 
                    <'\t\t\t\t\t\t$(\n'> <'\t\t\t\t\t\t\tcat `echo help`\n'> <'\t\t\t\t\t\t)\n'> <'\t\t\t\t\tSTOP\n'> <'\t\t\t\t)\n'> 
                    <'\t\t\t\t$(\n'> <'\t\t\t\t\tcat <<- END 4<<-TRASH\n'> <'\t\t\t\t\t\tMe $(( 1 + 1 ))\n'> <'\t\t\t\t\tEND\n'> 
                    <'\t\t\t\t\tThis is unused noise!\n'> <'\t\t\t\t\tTRASH\n'> <'\t\t\t\t)\n'> <'\t\t\tEOF\n'> <'\t\t'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<inline> <Id.Lit_Colon ':'> (SQ <'Help!\\nMe 2\\n'>)}
                {<-e>}
                {<empty>}
                {(${ Id.VSub_Name TEST_SH)}
                {<-c>}
                {
                  (SQ <'\n'> <'\t\t\tcat <<- EOF\n'> <'\t\t\t\t$(\n'> <'\t\t\t\t\tcat << STOP\n'> 
                    <'\t\t\t\t\t\t$(\n'> <'\t\t\t\t\t\t\tcat `echo help`\n'> <'\t\t\t\t\t\t)\n'> <'\t\t\t\t\tSTOP\n'> <'\t\t\t\t)\n'> 
                    <'\t\t\t\t$(\n'> <'\t\t\t\t\tcat <<- END 4<<TRASH\n'> <'\t\t\t\t\t\tMe $(( 1 + 1 ))\n'> <'\t\t\t\t\tEND\n'> 
                    <'\t\t\t\t\tThis is unused noise!\n'> <'\t\t\t\t\tTRASH\n'> <'\t\t\t\t)\n'> <'\t\t\tEOF\n'> <'\t\t'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <atf_init_test_cases>
      name: atf_init_test_cases
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_add_test_case>
              more_env: []
              words: [{<atf_add_test_case>} {<a_basic_cmdsub>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_add_test_case>
              more_env: []
              words: [{<atf_add_test_case>} {<b_basic_backticks>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_add_test_case>
              more_env: []
              words: [{<atf_add_test_case>} {<c_nested_cmdsub>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_add_test_case>
              more_env: []
              words: [{<atf_add_test_case>} {<d_nested_backticks>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_add_test_case>
              more_env: []
              words: [{<atf_add_test_case>} {<e_perverse_mixing>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_add_test_case>
              more_env: []
              words: [{<atf_add_test_case>} {<f_redirect_in_cmdsub>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_add_test_case>
              more_env: []
              words: [{<atf_add_test_case>} {<g_redirect_in_backticks>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_add_test_case>
              more_env: []
              words: [{<atf_add_test_case>} {<h_vars_in_cmdsub>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_add_test_case>
              more_env: []
              words: [{<atf_add_test_case>} {<i_vars_in_backticks>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_add_test_case>
              more_env: []
              words: [{<atf_add_test_case>} {<j_cmdsub_in_varexpand>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_add_test_case>
              more_env: []
              words: [{<atf_add_test_case>} {<k_backticks_in_varexpand>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_add_test_case>
              more_env: []
              words: [{<atf_add_test_case>} {<l_arithmetic_in_cmdsub>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_add_test_case>
              more_env: []
              words: [{<atf_add_test_case>} {<m_arithmetic_in_backticks>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_add_test_case>
              more_env: []
              words: [{<atf_add_test_case>} {<n_cmdsub_in_arithmetic>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_add_test_case>
              more_env: []
              words: [{<atf_add_test_case>} {<o_backticks_in_arithmetic>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_add_test_case>
              more_env: []
              words: [{<atf_add_test_case>} {<p_cmdsub_in_heredoc>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_add_test_case>
              more_env: []
              words: [{<atf_add_test_case>} {<q_backticks_in_heredoc>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_add_test_case>
              more_env: []
              words: [{<atf_add_test_case>} {<r_heredoc_in_cmdsub>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_add_test_case>
              more_env: []
              words: [{<atf_add_test_case>} {<s_heredoc_in_backticks>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_add_test_case>
              more_env: []
              words: [{<atf_add_test_case>} {<t_nested_cmdsubs_in_heredoc>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_add_test_case>
              more_env: []
              words: [{<atf_add_test_case>} {<u_nested_backticks_in_heredoc>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_add_test_case>
              more_env: []
              words: [{<atf_add_test_case>} {<v_cmdsub_paren_tests>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_add_test_case>
              more_env: []
              words: [{<atf_add_test_case>} {<w_heredoc_outside_cmdsub>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_add_test_case>
              more_env: []
              words: [{<atf_add_test_case>} {<x_heredoc_outside_backticks>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_add_test_case>
              more_env: []
              words: [{<atf_add_test_case>} {<z_absurd_heredoc_cmdsub_combos>}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
  ]
)