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