(command.CommandList
  children: [
    (C {(echo)} {(SQ (Token id:Id.Lit_Chars val:'--- setlock requires arguments' span_id:3))})
    (command.CommandList
      children: [
        (command.Sentence
          child: (C {(setlock)} {(whatever)})
          terminator: (Token id:Id.Op_Semi val:';' span_id:9)
        )
        (C {(echo)} {($ Id.VSub_QMark '$?')})
      ]
    )
    (C {(echo)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: '--- setlock complains if it cannot create lock file'
            span_id: 19
          )
        )
      }
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: (C {(setlock)} {(nonexistent/lock)} {(echo)} {(wrong)})
          terminator: (Token id:Id.Op_Semi val:';' span_id:29)
        )
        (C {(echo)} {($ Id.VSub_QMark '$?')})
      ]
    )
    (C {(echo)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: '--- setlock -x exits quietly if it cannot create lock file'
            span_id: 39
          )
        )
      }
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: (C {(setlock)} {(-x)} {(nonexistent/lock)} {(echo)} {(wrong)})
          terminator: (Token id:Id.Op_Semi val:';' span_id:51)
        )
        (C {(echo)} {($ Id.VSub_QMark '$?')})
      ]
    )
    (C {(echo)} {(SQ (Token id:Id.Lit_Chars val:'--- setlock creates lock file' span_id:61))})
    (command.CommandList
      children: [
        (command.Sentence
          child: (C {(setlock)} {(lock)} {(echo)} {(ok)})
          terminator: (Token id:Id.Op_Semi val:';' span_id:71)
        )
        (C {(echo)} {($ Id.VSub_QMark '$?')})
      ]
    )
    (C {(echo)} {(SQ (Token id:Id.Lit_Chars val:'--- setlock does not truncate lock file' span_id:81))})
    (command.Simple
      words: [{(echo)} {(ok)}]
      redirects: [(redir.Redir op:(Token id:Id.Redir_Great val:'>' span_id:88) fd:-1 arg_word:{(lock)})]
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: (C {(setlock)} {(lock)} {(cat)} {(lock)})
          terminator: (Token id:Id.Op_Semi val:';' span_id:99)
        )
        (C {(echo)} {($ Id.VSub_QMark '$?')})
      ]
    )
    (C {(rm)} {(-f)} {(lock)})
    (C {(echo)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: '--- setlock -n complains if file is already locked'
            span_id: 115
          )
        )
      }
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (C {(setlock)} {(lock)} {(sh)} {(-c)} 
              {(SQ (Token id:Id.Lit_Chars val:'setlock -n lock echo one && echo two' span_id:127))}
            )
          terminator: (Token id:Id.Op_Semi val:';' span_id:129)
        )
        (C {(echo)} {($ Id.VSub_QMark '$?')})
      ]
    )
    (C {(echo)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: '--- setlock -nx exits quietly if file is already locked'
            span_id: 139
          )
        )
      }
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (C {(setlock)} {(lock)} {(sh)} {(-c)} 
              {(SQ (Token id:Id.Lit_Chars val:'setlock -nx lock echo one && echo two' span_id:151))}
            )
          terminator: (Token id:Id.Op_Semi val:';' span_id:153)
        )
        (C {(echo)} {($ Id.VSub_QMark '$?')})
      ]
    )
  ]
)