(command.CommandList
  children: [
    (C {(.)} {(../src/shflags)})
    (C {(DEFINE_boolean)} {(SQ <force>)} {(false)} {(SQ <'force overwriting'>)} {(SQ <f>)})
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:FLAGS_HELP spids:[91])
          op: Equal
          rhs: {(DQ ('USAGE: ') ($ VSub_Number '$0') (' [flags] filename'))}
          spids: [91]
        )
      ]
      spids: [91]
    )
    (command.FuncDef
      name: write_date
      body: 
        (command.BraceGroup
          children: [
            (command.SimpleCommand
              words: [{(date)}]
              redirects: [
                (redir.Redir
                  op: <Redir_Great '>'>
                  fd: 16777215
                  arg_word: {(DQ ($ VSub_Number '$1'))}
                )
              ]
            )
          ]
          spids: [104]
        )
      spids: [100 103]
    )
    (command.FuncDef
      name: die
      body: 
        (command.BraceGroup
          children: [
            (command.AndOr
              ops: [Op_DAmp]
              children: [
                (C {(Lit_Other '[')} {($ VSub_Pound '$#')} {(-gt)} {(0)} {(Lit_Other ']')})
                (command.SimpleCommand
                  words: [{(echo)} {(DQ ('error: ') ($ VSub_At '$@'))}]
                  redirects: [(redir.Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})]
                )
              ]
            )
            (C {(flags_help)})
            (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
          spids: [121]
        )
      spids: [117 120]
    )
    (command.AndOr
      ops: [Op_DPipe]
      children: [
        (C {(FLAGS)} {(DQ ($ VSub_At '$@'))})
        (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
      ]
    )
    (C {(eval)} {(set)} {(--)} {(DQ (${ VSub_Name FLAGS_ARGV))})
    (command.AndOr
      ops: [Op_DPipe]
      children: [
        (C {(Lit_Other '[')} {($ VSub_Pound '$#')} {(-gt)} {(0)} {(Lit_Other ']')})
        (C {(die)} {(SQ <'filename missing'>)})
      ]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:filename spids:[207])
          op: Equal
          rhs: {($ VSub_Number '$1')}
          spids: [207]
        )
      ]
      spids: [207]
    )
    (command.AndOr
      ops: [Op_DAmp]
      children: [
        (C {(Lit_Other '[')} {(-f)} {(DQ (${ VSub_Name filename))} {(-a)} {(${ VSub_Name FLAGS_force)} 
          {(-eq)} {(${ VSub_Name FLAGS_FALSE)} {(Lit_Other ']')}
        )
        (C {(die)} {(SQ <'filename exists; not overwriting'>)})
      ]
    )
    (C {(write_date)} {(DQ (${ VSub_Name filename))})
  ]
)