(CommandList children: [ (FuncDef name: _hash body: (BraceGroup children: [ (C {(echo)} {($ VSub_Dollar '$$') (.) (CommandSubPart command_list: (CommandList children: [(C {(date)} {(Lit_Other '+') (SQ <'%s.%N'>)})] ) left_token: <Left_CommandSub '$('> spids: [15 22] ) (.) ($ VSub_Name '$RANDOM') } ) ] spids: [8] ) spids: [4 7] ) (FuncDef name: 'balls::server' body: (BraceGroup children: [ (C {(balls) (Lit_Other ':') (Lit_Other ':') (load_app)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:http_sock) op: Equal rhs: {($ VSub_Name '$BALLS_TMP') (/balls.http.) ($ VSub_Dollar '$$') (.sock)} spids: [45] ) ] spids: [45] ) (AndOr children: [ (C {(Lit_Other '[')} {(-p)} {($ VSub_Name '$http_sock')} {(Lit_Other ']')}) (C {(mkfifo)} {($ VSub_Name '$http_sock')}) ] op_id: Op_DPipe ) (While cond: [(Sentence child:(C {(true)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (Pipeline children: [ (C {(cat)} {($ VSub_Name '$http_sock')}) (C {(nc)} {(-l)} {(-p)} {($ VSub_Name '$BALLS_PORT')}) (Subshell child: (CommandList children: [ (C {(http) (Lit_Other ':') (Lit_Other ':') (parse_request)}) (SimpleCommand words: [{(balls) (Lit_Other ':') (Lit_Other ':') (route)}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$http_sock')} spids: [106] ) ] ) ] ) spids: [92 111] ) ] negated: False ) ] spids: [73 114] ) ) ] spids: [36] ) spids: [29 35] ) (FuncDef name: cleanup body: (BraceGroup children: [ (C {(rm)} {(-f)} {(DQ ($ VSub_Name '$headers_sock'))} {(DQ ($ VSub_Name '$http_sock'))}) ] spids: [123] ) spids: [119 122] ) (C {(trap)} {(SQ <'cleanup; exit'>)} {(INT)}) (FuncDef name: 'balls::load_app' body: (BraceGroup children: [(C {(.)} {($ VSub_Name '$BALLS_ACTIONS') (/) (Lit_Other '*') (.sh)})] spids: [157] ) spids: [150 156] ) ] )