(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:tmpfiles)
          op: assign_op.Equal
          rhs: (word.Empty)
          spids: [4]
        )
      ]
    )
    (C {(trap)} {(SQ (Token id:Id.Lit_Chars val:'rm -fr $tmpfiles' span_id:9))} {(1)} {(2)} {(3)} {(15)})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:tmpfiles)
          op: assign_op.Equal
          rhs: {(t-lseek.tmp)}
          spids: [21]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (command.Simple
          words: [{(./test-lseek) (${ Id.VSub_Name EXEEXT)} {(0)}]
          redirects: [
            (redir.Redir
              op: (Token id:Id.Redir_Less val:'<' span_id:34)
              fd: -1
              arg_word: {(DQ ($ Id.VSub_DollarName '$srcdir') (/test-lseek.sh))}
            )
            (redir.Redir
              op: (Token id:Id.Redir_Great val:'>' span_id:41)
              fd: -1
              arg_word: {(t-lseek.tmp)}
            )
          ]
        )
        (command.ControlFlow
          token: (Token id:Id.ControlFlow_Exit val:exit span_id:47)
          arg_word: {(1)}
        )
      ]
    )
    (command.Pipeline
      children: [
        (C {(echo)} {(hi)})
        (command.BraceGroup
          children: [
            (command.Sentence
              child: (C {(./test-lseek) (${ Id.VSub_Name EXEEXT)} {(1)})
              terminator: (Token id:Id.Op_Semi val:';' span_id:69)
            )
            (command.Sentence
              child: 
                (command.Simple
                  words: [{(echo)} {($ Id.VSub_QMark '$?')}]
                  redirects: [
                    (redir.Redir
                      op: (Token id:Id.Redir_Great val:'>' span_id:75)
                      fd: -1
                      arg_word: {(t-lseek.tmp)}
                    )
                  ]
                )
              terminator: (Token id:Id.Op_Semi val:';' span_id:78)
            )
            (command.Sentence
              child: 
                (command.Simple
                  words: [{(cat)}]
                  redirects: [
                    (redir.Redir
                      op: (Token id:Id.Redir_Great val:'>' span_id:82)
                      fd: -1
                      arg_word: {(/dev/null)}
                    )
                  ]
                )
              terminator: (Token id:Id.Op_Semi val:';' span_id:85)
            )
          ]
        )
        (C {(cat)})
      ]
      negated: F
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {(test)} 
          {
            (DQ 
              (command_sub
                left_token: (Token id:Id.Left_Backtick val:'`' span_id:96)
                command_list: (command.CommandList children:[(C {(cat)} {(t-lseek.tmp)})])
              )
            )
          } {(Id.Lit_Equals '=')} {(DQ (0))}
        )
        (command.ControlFlow
          token: (Token id:Id.ControlFlow_Exit val:exit span_id:113)
          arg_word: {(1)}
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (command.Simple
          words: [{(./test-lseek) (${ Id.VSub_Name EXEEXT)} {(2)}]
          redirects: [
            (redir.Redir
              op: (Token id:Id.Redir_LessAnd val:'<&' span_id:128)
              fd: -1
              arg_word: {(-)}
            )
            (redir.Redir
              op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:131)
              fd: -1
              arg_word: {(-)}
            )
          ]
        )
        (command.ControlFlow
          token: (Token id:Id.ControlFlow_Exit val:exit span_id:136)
          arg_word: {(1)}
        )
      ]
    )
    (C {(rm)} {(-rf)} {($ Id.VSub_DollarName '$tmpfiles')})
    (command.ControlFlow token:(Token id:Id.ControlFlow_Exit val:exit span_id:147) arg_word:{(0)})
  ]
)