(command.CommandList
  children: [
    (command.ShAssignment
      left: <Id.Lit_VarLike 'test_description='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'test_description='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'test_description='> name:test_description)
          op: assign_op.Equal
          rhs: {(SQ <'quoted output'>)}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <.>
      more_env: []
      words: [{<.>} {<'./test-lib.sh'>}]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'FN='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'FN='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FN='> name:FN)
          op: assign_op.Equal
          rhs: {(SQ <'濱野'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GN='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GN='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'GN='> name:GN)
          op: assign_op.Equal
          rhs: {(SQ <'純'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'HT='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'HT='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'HT='> name:HT)
          op: assign_op.Equal
          rhs: {(SQ <'\t'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'DQ='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'DQ='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DQ='> name:DQ)
          op: assign_op.Equal
          rhs: {(SQ <'"'>)}
        )
      ]
      redirects: []
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <test_have_prereq>
          more_env: []
          words: [{<test_have_prereq>} {<MINGW>}]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <echo>
          more_env: []
          words: [{<echo>} {<foo>}]
          redirects: [
            (Redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>})
            (Redir
              op: <Id.Redir_Great '>'>
              loc: (redir_loc.Fd fd:1)
              arg: {(DQ <'Name and an'> (${ Id.VSub_Name HT) <HT>)}
            )
          ]
          do_fork: T
        )
      ]
      ops: [<Id.Op_DPipe _>]
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Pipeline
                  negated: <Id.KW_Bang '!'>
                  children: [
                    (command.Simple
                      blame_tok: <test>
                      more_env: []
                      words: [{<test>} {<-f>} {(DQ <'Name and an'> (${ Id.VSub_Name HT) <HT>)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  ops: []
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'skip_all='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'skip_all='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'skip_all='> name:skip_all)
                  op: assign_op.Equal
                  rhs: {(SQ <'Your filesystem does not allow tabs in filenames'>)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <test_done>
              more_env: []
              words: [{<test_done>}]
              redirects: []
              do_fork: T
            )
          ]
          spids: [68 84]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.ShFunction
      name_tok: <for_each_name>
      name: for_each_name
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [name]
              iterable: 
                (for_iter.Words
                  words: [
                    {<Name>}
                    {(DQ <'Name and a'> (${ Id.VSub_Name LF) <LF>)}
                    {(DQ <'Name and an'> (${ Id.VSub_Name HT) <HT>)}
                    {(DQ <Name> (${ Id.VSub_Name DQ))}
                    {
                      (DQ ($ Id.VSub_DollarName FN) ($ Id.VSub_DollarName HT) ($ Id.VSub_DollarName GN))
                    }
                    {
                      (DQ ($ Id.VSub_DollarName FN) ($ Id.VSub_DollarName LF) ($ Id.VSub_DollarName GN))
                    }
                    {(DQ ($ Id.VSub_DollarName FN) <' '> ($ Id.VSub_DollarName GN))}
                    {(DQ ($ Id.VSub_DollarName FN) ($ Id.VSub_DollarName GN))}
                    {
                      (DQ ($ Id.VSub_DollarName FN) ($ Id.VSub_DollarName DQ) ($ Id.VSub_DollarName GN))
                    }
                    {(DQ <'With SP in it'>)}
                    {(DQ ($ Id.VSub_DollarName FN) <'/file'>)}
                  ]
                )
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Simple
                      blame_tok: <eval>
                      more_env: []
                      words: [{<eval>} {(DQ ($ Id.VSub_Number 1))}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <setup>)}
        {
          (SQ <'\n'> <'\n'> <'\tmkdir "$FN" &&\n'> 
            <'\tfor_each_name "echo initial >\\"\\$name\\"" &&\n'> <'\tgit add . &&\n'> <'\tgit commit -q -m Initial &&\n'> <'\n'> 
            <'\tfor_each_name "echo second >\\"\\$name\\"" &&\n'> <'\tgit commit -a -m Second &&\n'> <'\n'> <'\tfor_each_name "echo modified >\\"\\$name\\""\n'> <'\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'setup expected files'>)}
        {
          (SQ <'\n'> <'cat >expect.quoted <<\\EOF &&\n'> <'Name\n'> <'"Name and a\\nLF"\n'> 
            <'"Name and an\\tHT"\n'> <'"Name\\""\n'> <'With SP in it\n'> <'"\\346\\277\\261\\351\\207\\216\\t\\347\\264\\224"\n'> 
            <'"\\346\\277\\261\\351\\207\\216\\n\\347\\264\\224"\n'> <'"\\346\\277\\261\\351\\207\\216 \\347\\264\\224"\n'> 
            <'"\\346\\277\\261\\351\\207\\216\\"\\347\\264\\224"\n'> <'"\\346\\277\\261\\351\\207\\216/file"\n'> <'"\\346\\277\\261\\351\\207\\216\\347\\264\\224"\n'> 
            <'EOF\n'> <'\n'> <'cat >expect.raw <<\\EOF\n'> <'Name\n'> <'"Name and a\\nLF"\n'> <'"Name and an\\tHT"\n'> 
            <'"Name\\""\n'> <'With SP in it\n'> <'"濱野\\t純"\n'> <'"濱野\\n純"\n'> <'濱野 純\n'> <'"濱野\\"純"\n'> 
            <'濱野/file\n'> <'濱野純\n'> <'EOF\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'check fully quoted output from ls-files'>)}
        {(SQ <'\n'> <'\n'> <'\tgit ls-files >current && test_cmp expect.quoted current\n'> <'\n'>)}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'check fully quoted output from diff-files'>)}
        {
          (SQ <'\n'> <'\n'> <'\tgit diff --name-only >current &&\n'> 
            <'\ttest_cmp expect.quoted current\n'> <'\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'check fully quoted output from diff-index'>)}
        {
          (SQ <'\n'> <'\n'> <'\tgit diff --name-only HEAD >current &&\n'> 
            <'\ttest_cmp expect.quoted current\n'> <'\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'check fully quoted output from diff-tree'>)}
        {
          (SQ <'\n'> <'\n'> <'\tgit diff --name-only HEAD^ HEAD >current &&\n'> 
            <'\ttest_cmp expect.quoted current\n'> <'\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'check fully quoted output from ls-tree'>)}
        {
          (SQ <'\n'> <'\n'> <'\tgit ls-tree --name-only -r HEAD >current &&\n'> 
            <'\ttest_cmp expect.quoted current\n'> <'\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'setting core.quotepath'>)}
        {(SQ <'\n'> <'\n'> <'\tgit config --bool core.quotepath false\n'> <'\n'>)}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'check fully quoted output from ls-files'>)}
        {(SQ <'\n'> <'\n'> <'\tgit ls-files >current && test_cmp expect.raw current\n'> <'\n'>)}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'check fully quoted output from diff-files'>)}
        {
          (SQ <'\n'> <'\n'> <'\tgit diff --name-only >current &&\n'> <'\ttest_cmp expect.raw current\n'> 
            <'\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'check fully quoted output from diff-index'>)}
        {
          (SQ <'\n'> <'\n'> <'\tgit diff --name-only HEAD >current &&\n'> 
            <'\ttest_cmp expect.raw current\n'> <'\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'check fully quoted output from diff-tree'>)}
        {
          (SQ <'\n'> <'\n'> <'\tgit diff --name-only HEAD^ HEAD >current &&\n'> 
            <'\ttest_cmp expect.raw current\n'> <'\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'check fully quoted output from ls-tree'>)}
        {
          (SQ <'\n'> <'\n'> <'\tgit ls-tree --name-only -r HEAD >current &&\n'> 
            <'\ttest_cmp expect.raw current\n'> <'\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_done>
      more_env: []
      words: [{<test_done>}]
      redirects: []
      do_fork: T
    )
  ]
)