(CommandList children: [ (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:OSH_OVM) op: Equal rhs: { (BracedVarSub token: <VSub_Name OSH_OVM> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: {($ VSub_Name '$PWD') (Lit_Slash /) (_bin) (Lit_Slash /) (osh)} ) spids: [19 27] ) } spids: [18] ) ] spids: [16] ) (FuncDef name: die body: (BraceGroup children: [ (SimpleCommand words: [{(echo)} {(DQ ('FATAL: ') ($ VSub_At '$@'))}] redirects: [(Redir op_id:Redir_GreatAnd fd:1 arg_word:{(2)} spids:[47])] ) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [37] ) spids: [33 36] ) (FuncDef name: log body: (BraceGroup children: [ (SimpleCommand words: [{(echo)} {(DQ ($ VSub_At '$@'))}] redirects: [(Redir op_id:Redir_GreatAnd fd:1 arg_word:{(2)} spids:[71])] ) ] spids: [62] ) spids: [58 61] ) (FuncDef name: csv-concat body: (BraceGroup children: [ (Sentence child: (C {(tools/csv_concat.py)} {(DQ ($ VSub_At '$@'))}) terminator: <Op_Semi ';'> ) ] spids: [81] ) spids: [77 80] ) (FuncDef name: tsv-concat body: (BraceGroup children: [ (Sentence child: (C {(tools/csv_concat.py)} {(DQ ($ VSub_At '$@'))}) terminator: <Op_Semi ';'> ) ] spids: [100] ) spids: [96 99] ) (FuncDef name: csv2html body: (BraceGroup children: [ (Sentence child: (C {(web/table/csv2html.py)} {(--css-class-pattern)} {(SQ <'special ^osh'>)} {(DQ ($ VSub_At '$@'))} ) terminator: <Op_Semi ';'> ) ] spids: [119] ) spids: [115 118] ) (FuncDef name: tsv2html body: (BraceGroup children: [ (Sentence child: (C {(web/table/csv2html.py)} {(--tsv)} {(DQ ($ VSub_At '$@'))}) terminator: <Op_Semi ';'> ) ] spids: [142] ) spids: [138 141] ) (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:_time_tool) op: Equal rhs: {($ VSub_Name '$PWD') (/benchmarks/time.py)} spids: [162] ) ] spids: [160] ) (FuncDef name: time-tsv body: (BraceGroup children: [ (Sentence child: (C {($ VSub_Name '$_time_tool')} {(--tsv)} {(DQ ($ VSub_At '$@'))}) terminator: <Op_Semi ';'> ) ] spids: [171] ) spids: [167 170] ) ] )