Lines Matching +full:flow +full:- +full:control
31 * Opcodes are accumulated with specific methods. A control-flow stack
60 cfPtr = -1; in WordBuilder()
69 * Build the word. The control-flow stack must be empty. A 'ret'
74 if (cfPtr != -1) { in Build()
75 throw new Exception("control-flow stack is not empty"); in Build()
77 if (jumpToLast || code[code.Count - 1].MayFallThrough) { in Build()
99 * Rotate the control-flow stack at depth 'depth'.
103 int x = cfStack[cfPtr - depth]; in CSRoll()
104 Array.Copy(cfStack, cfPtr - (depth - 1), in CSRoll()
105 cfStack, cfPtr - depth, depth); in CSRoll()
110 * Make a copy of the control-flow element at depth 'depth', and
111 * push it on top of the control-flow stack.
115 int x = cfStack[cfPtr - depth]; in CSPick()
132 return cfStack[cfPtr --]; in CSPop()
136 * Push an origin on the control-flow stack, corresponding to the
145 * Push a destination on the control-flow stack, corresponding to
150 CSPush(-code.Count - 1); in CSPushDest()
154 * Pop an origin from the control-flow stack. An exception is
167 * Pop a destination from the control-flow stack. An exception is
176 return -x - 1; in CSPopDest()
191 * - If the target is '>' followed by a local variable name, then
194 * - Otherwise, if the target is a local variable name, then a
197 * - Otherwise, a call to the named word is added. The target name
304 * pushed on the control-flow stack as an origin.
314 * if the top-of-stack value is 'true'. The new opcode address is
315 * pushed on the control-flow stack as an origin.
325 * if the top-of-stack value is 'false'. The new opcode address is
326 * pushed on the control-flow stack as an origin.
336 * The top of control-flow stack is popped and must be an origin.
341 code[x].ResolveJump(code.Count - x - 1); in Then()
346 * Push the current code address on the control-flow stack as a
356 * from the control-flow stack as a destination.
361 Add(new OpcodeJumpUncond(x - code.Count - 1)); in Again()
366 * if the top-of-stack value is 'true'. The jump target is popped
367 * from the control-flow stack as a destination.
372 Add(new OpcodeJumpIf(x - code.Count - 1)); in AgainIf()
377 * if the top-of-stack value is 'false'. The jump target is popped
378 * from the control-flow stack as a destination.
383 Add(new OpcodeJumpIfNot(x - code.Count - 1)); in AgainIfNot()