/** * This method peforms the equivilent of an XSWAP operation to flip the operator * over to the top of the stack, and loads the stored values on the d-stack onto * the main program stack. */ private void reduceRight() { if (dStack.isEmpty()) return; Object o = stk.pop(); stk.push(dStack.pop(), o, dStack.pop()); reduce(); }
/** * This method peforms the equivilent of an XSWAP operation to flip the operator * over to the top of the stack, and loads the stored values on the d-stack onto * the main program stack. */ private void reduceRight() { if (dStack.isEmpty()) return; Object o = stk.pop(); stk.push(dStack.pop(), o, dStack.pop()); reduce(); }
/** * This method peforms the equivilent of an XSWAP operation to flip the operator * over to the top of the stack, and loads the stored values on the d-stack onto * the main program stack. */ private void reduceRight() { if (dStack.isEmpty()) return; Object o = stk.pop(); stk.push(dStack.pop()); stk.push(o); stk.push(dStack.pop()); reduce(); }
case Operator.GETFIELD: try { if (stack.isEmpty() || !(stack.peek() instanceof Class)) { throw new CompileException("getfield without class", expr, blockStart); case Operator.STOREFIELD: try { if (stack.isEmpty() || !(stack.peek() instanceof Class)) { throw new CompileException("storefield without class", expr, blockStart); Object[] parms; ExecutionStack call = new ExecutionStack(); while (!stack.isEmpty() && !(stack.peek() instanceof Class)) { call.push(stack.pop()); if (stack.isEmpty()) { throw new CompileException("invoke without class", expr, blockStart); for (int i = 0; !call.isEmpty(); i++) parms[i] = call.pop(); stack.push(m.invoke(stack.isEmpty() ? null : stack.pop(), parms));
case Operator.GETFIELD: try { if (stack.isEmpty() || !(stack.peek() instanceof Class)) { throw new CompileException("getfield without class", expr, blockStart); case Operator.STOREFIELD: try { if (stack.isEmpty() || !(stack.peek() instanceof Class)) { throw new CompileException("storefield without class", expr, blockStart); Object[] parms; ExecutionStack call = new ExecutionStack(); while (!stack.isEmpty() && !(stack.peek() instanceof Class)) { call.push(stack.pop()); if (stack.isEmpty()) { throw new CompileException("invoke without class", expr, blockStart); for (int i = 0; !call.isEmpty(); i++) parms[i] = call.pop(); stack.push(m.invoke(stack.isEmpty() ? null : stack.pop(), parms));
if (!stack.isEmpty() && stack.peek() instanceof IfNode) { markTextNode(n).next = (last = (IfNode) stack.pop()).getTerminus(); if (!stack.isEmpty()) { CompileException ce = new CompileException("unclosed @" + ((Node) stack.peek()).getName() + "{} block. expected @end{}", template, cursor); ce.setColumn(cursor - colStart);
if (!stack.isEmpty() && stack.peek() instanceof IfNode) { markTextNode(n).next = (last = (IfNode) stack.pop()).getTerminus(); if (!stack.isEmpty()) { CompileException ce = new CompileException("unclosed @" + ((Node) stack.peek()).getName() + "{} block. expected @end{}", template, cursor); ce.setColumn(cursor - colStart);
if (!stack.isEmpty() && stack.peek() instanceof IfNode) { markTextNode(n).next = (last = (IfNode) stack.pop()).getTerminus(); if (!stack.isEmpty()) { CompileException ce = new CompileException("unclosed @" + ((Node) stack.peek()).getName() + "{} block. expected @end{}", template, cursor); ce.setColumn(cursor - colStart);
else if (stk.isEmpty()) { stk.push(tk.getReducedValueAccelerated(ctx, ctx, variableFactory));
else if (stk.isEmpty()) { stk.push(tk.getReducedValueAccelerated(ctx, ctx, variableFactory));
else if (stk.isEmpty()) { stk.push(tk.getReducedValueAccelerated(ctx, ctx, variableFactory));
if (stk.isEmpty()) { stk.push(tk.getReducedValue(ctx, ctx, variableFactory));
if (stk.isEmpty()) { if ((tk.fields & ASTNode.STACKLANG) != 0) { stk.push(tk.getReducedValue(stk, ctx, variableFactory));
if (stk.isEmpty()) { if ((tk.fields & ASTNode.STACKLANG) != 0) { stk.push(tk.getReducedValue(stk, ctx, variableFactory));
if (!dStack.isEmpty()) dreduce(); else { while (stk.isReduceable()) {
if (!dStack.isEmpty()) dreduce(); else { while (stk.isReduceable()) {
if (!dStack.isEmpty()) dreduce(); else { while (stk.isReduceable()) {