Class OperandStack

java.lang.Object
org.codehaus.groovy.classgen.asm.OperandStack

public class OperandStack
extends java.lang.Object
  • Constructor Details

  • Method Details

    • getStackLength

      public int getStackLength()
    • popDownTo

      public void popDownTo​(int elements)
    • castToBool

      public void castToBool​(int mark, boolean emptyDefault)
      ensure last marked parameter on the stack is a primitive boolean if mark==stack size, we assume an empty expression or statement. was used and we will use the value given in emptyDefault as boolean if mark==stack.size()-1 the top element will be cast to boolean using Groovy truth. In other cases we throw a GroovyBugError
    • pop

      public void pop()
      remove operand stack top element using bytecode pop
    • jump

      public org.objectweb.asm.Label jump​(int ifIns)
    • jump

      public void jump​(int ifIns, org.objectweb.asm.Label label)
    • dup

      public void dup()
      duplicate top element
    • box

      public ClassNode box()
    • remove

      public void remove​(int amount)
      Remove amount elements from the operand stack, without using pop. For example after a method invocation
    • push

      public void push​(ClassNode type)
      push operand on stack
    • swap

      public void swap()
      swap two top level operands
    • replace

      public void replace​(ClassNode type)
      replace top level element with new element of given type
    • replace

      public void replace​(ClassNode type, int n)
      replace n top level elements with new element of given type
    • doGroovyCast

      public void doGroovyCast​(ClassNode targetType)
      do Groovy cast for top level element
    • doGroovyCast

      public void doGroovyCast​(Variable v)
    • doAsType

      public void doAsType​(ClassNode targetType)
    • pushConstant

      public void pushConstant​(ConstantExpression expression)
      load the constant on the operand stack.
    • pushDynamicName

      public void pushDynamicName​(Expression name)
    • loadOrStoreVariable

      public void loadOrStoreVariable​(BytecodeVariable variable, boolean useReferenceDirectly)
    • storeVar

      public void storeVar​(BytecodeVariable variable)
    • load

      public void load​(ClassNode type, int idx)
    • pushBool

      public void pushBool​(boolean inclusive)
    • toString

      public java.lang.String toString()
      Overrides:
      toString in class java.lang.Object
    • getTopOperand

      public ClassNode getTopOperand()