(command.CommandList children: [ (C {(CmdlineGL_LoadLib)} {(Timing)}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:RenderLoop_Done spids:[38]) op: Equal rhs: {(0)} spids: [38] ) ] spids: [38] ) (command.FuncDef name: RenderLoop_Render body: (command.BraceGroup children: [(C {(glClear)} {(GL_COLOR_BUFFER_BIT)}) (C {(cglSwapBuffers)})] spids: [49] ) spids: [45 48] ) (command.FuncDef name: RenderLoop_DispatchEvent body: (command.BraceGroup children:[(C {(false)})] spids:[69]) spids: [65 68] ) (command.FuncDef name: RenderLoop_Run body: (command.BraceGroup children: [ (command.Sentence child: (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:RenderLoop_Done spids:[90]) op: Equal rhs: {(DQ )} spids: [90] ) ] spids: [90] ) terminator: <Op_Semi ';'> ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.BoolUnary op_id: BoolUnary_z child: {(DQ ($ VSub_DollarName '$CmdlineGL_In'))} ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.WhileUntil keyword: <KW_While while> cond: [ (command.Sentence child: (command.DParen child: (arith_expr.ArithUnary op_id: Arith_Bang child: (arith_expr.ArithVarRef token: <Lit_ArithVarLike RenderLoop_Done> ) ) spids: [122 128] ) terminator: <Op_Semi ';'> ) ] body: (command.DoGroup children: [ (command.AndOr ops: [Op_DPipe] children: [(C {(RenderLoop_Render)}) (C {(true)})] ) (C {(Timing_SyncNextFrame)}) (C {(Timing_AssumeNextFrame)}) ] spids: [131 147] ) ) ] spids: [16777215 109] ) ] else_action: [ (C {(cglGetTime)}) (command.WhileUntil keyword: <KW_While while> cond: [ (command.Sentence child: (command.DParen child: (arith_expr.ArithUnary op_id: Arith_Bang child: (arith_expr.ArithVarRef token:<Lit_ArithVarLike RenderLoop_Done>) ) spids: [174 180] ) terminator: <Op_Semi ';'> ) ] body: (command.DoGroup children: [ (command.AndOr ops: [Op_DPipe] children: [(C {(RenderLoop_Render)}) (C {(true)})] ) (C {(Timing_SyncNextFrame)}) (C {(RenderLoop_ProcessInput)}) (C {(cglGetTime)}) ] spids: [183 202] ) ) ] spids: [150 205] ) ] spids: [87] ) spids: [83 86] ) (command.FuncDef name: RenderLoop_ProcessInput body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:ReadMore spids:[222]) op: Equal rhs: {(1)} spids: [222] ) (assign_pair lhs: (lhs_expr.LhsName name:ReadTimeout spids:[225]) op: Equal rhs: {(0)} spids: [225] ) ] spids: [220] ) (command.WhileUntil keyword: <KW_While while> cond: [ (command.Sentence child: (command.DParen child: (arith_expr.ArithVarRef token:<Lit_ArithVarLike ReadMore>) spids: [231 234] ) terminator: <Op_Semi ';'> ) ] body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(CmdlineGL_Recv)}) terminator: <Op_Semi ';'> ) ] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_DollarName '$CmdlineGL_InputLine'))} right: {(t) (BoolBinary_GlobEqual '=') (Lit_Other '*')} ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(Timing_Update)} { (word_part.BracedVarSub token: <VSub_Name CmdlineGL_InputLine> suffix_op: (suffix_op.Slice begin: (arith_expr.ArithWord w:{(Lit_Digits 2)}) ) spids: [274 278] ) } ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:ReadMore spids:[281]) op: Equal rhs: {(0)} spids: [281] ) ] spids: [281] ) ] spids: [16777215 265] ) ] else_action: [ (C {(RenderLoop_DispatchEvent)} {($ VSub_DollarName '$CmdlineGL_InputLine')} ) ] spids: [285 293] ) ] spids: [16777215 245] ) ] else_action: [ (C {(let)} {(ReadTimeout) (Lit_Other '+') (Lit_Other '+')}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DParen child: (arith_expr.ArithBinary op_id: Arith_Great left: (arith_expr.ArithVarRef token: <Lit_ArithVarLike ReadTimeout> ) right: (arith_expr.ArithWord w:{(Lit_Digits 3)}) ) spids: [308 313] ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:RenderLoop_Done spids:[319]) op: Equal rhs: {(1)} spids: [319] ) ] spids: [319] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:ReadMore spids:[323]) op: Equal rhs: {(0)} spids: [323] ) ] spids: [323] ) (command.SimpleCommand words: [ {(echo)} {(DQ ('Reading from pipe timed out... shutting down.'))} ] redirects: [ (redir.Redir op: <Redir_GreatAnd '>&'> fd: 16777215 arg_word: {(2)} ) ] ) ] spids: [16777215 316] ) ] spids: [16777215 337] ) ] spids: [296 340] ) ] spids: [237 343] ) ) ] spids: [217] ) spids: [213 216] ) ] )