(command.CommandList children: [ (C {<readonly>} {<Id.Lit_VarLike 'OSH_OVM='> (braced_var_sub token: <Id.VSub_Name OSH_OVM> suffix_op: (suffix_op.Unary tok: <Id.VTest_ColonHyphen ':-'> arg_word: {($ Id.VSub_DollarName '$PWD') <Id.Lit_Slash '/'> <_bin> <Id.Lit_Slash '/'> <osh>} ) ) } ) (command.ShFunction name: die body: (BraceGroup children: [ (command.Simple words: [{<echo>} {(DQ <'FATAL: '> ($ Id.VSub_At '$@'))}] redirects: [(redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) ) (command.ShFunction name: log body: (BraceGroup children: [ (command.Simple words: [{<echo>} {(DQ ($ Id.VSub_At '$@'))}] redirects: [(redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) ] ) ) (command.ShFunction name: csv-concat body: (BraceGroup children: [ (command.Sentence child: (C {<'tools/csv_concat.py'>} {(DQ ($ Id.VSub_At '$@'))}) terminator: <Id.Op_Semi _> ) ] ) ) (command.ShFunction name: tsv-concat body: (BraceGroup children: [ (command.Sentence child: (C {<'tools/csv_concat.py'>} {(DQ ($ Id.VSub_At '$@'))}) terminator: <Id.Op_Semi _> ) ] ) ) (command.ShFunction name: csv2html body: (BraceGroup children: [ (command.Sentence child: (C {<'web/table/csv2html.py'>} {<--css-class-pattern>} {(SQ <'special ^osh'>)} {(DQ ($ Id.VSub_At '$@'))} ) terminator: <Id.Op_Semi _> ) ] ) ) (command.ShFunction name: tsv2html body: (BraceGroup children: [ (command.Sentence child: (C {<'web/table/csv2html.py'>} {<--tsv>} {(DQ ($ Id.VSub_At '$@'))}) terminator: <Id.Op_Semi _> ) ] ) ) (C {<readonly>} {<Id.Lit_VarLike '_time_tool='> ($ Id.VSub_DollarName '$PWD') <'/benchmarks/time.py'>} ) (command.ShFunction name: time-tsv body: (BraceGroup children: [ (command.Sentence child: (C {($ Id.VSub_DollarName '$_time_tool')} {<--tsv>} {(DQ ($ Id.VSub_At '$@'))}) terminator: <Id.Op_Semi _> ) ] ) ) ] )