(command.CommandList children: [ (C {<.>} {<../src/shflags>}) (C {<DEFINE_boolean>} {(SQ <force>)} {<false>} {(SQ <'force overwriting'>)} {(SQ <f>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:FLAGS_HELP) op: assign_op.Equal rhs: {(DQ <'USAGE: '> ($ Id.VSub_Number '$0') <' [flags] filename'>)} spids: [91] ) ] ) (command.ShFunction name: write_date body: (command.BraceGroup children: [ (command.Simple words: [{<date>}] redirects: [ (redir.Redir op: <Id.Redir_Great '>'> fd: -1 arg_word: {(DQ ($ Id.VSub_Number '$1'))} ) ] ) ] ) ) (command.ShFunction name: die body: (command.BraceGroup children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_Pound '$#')} {<-gt>} {<0>} {<Id.Lit_RBracket ']'>}) (command.Simple words: [{<echo>} {(DQ <'error: '> ($ Id.VSub_At '$@'))}] redirects: [(redir.Redir op:<Id.Redir_GreatAnd '>&'> fd:-1 arg_word:{<2>})] ) ] ) (C {<flags_help>}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<FLAGS>} {(DQ ($ Id.VSub_At '$@'))}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) (C {<eval>} {<Id.KW_Set set>} {<-->} {(DQ (${ Id.VSub_Name FLAGS_ARGV))}) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_Pound '$#')} {<-gt>} {<0>} {<Id.Lit_RBracket ']'>}) (C {<die>} {(SQ <'filename missing'>)}) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:filename) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [207] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<-f>} {(DQ (${ Id.VSub_Name filename))} {<-a>} {(${ Id.VSub_Name FLAGS_force)} {<-eq>} {(${ Id.VSub_Name FLAGS_FALSE)} {<Id.Lit_RBracket ']'>} ) (C {<die>} {(SQ <'filename exists; not overwriting'>)}) ] ) (C {<write_date>} {(DQ (${ Id.VSub_Name filename))}) ] )