Package gnu.jel

Class OPcall

java.lang.Object
gnu.jel.OP
gnu.jel.OPcall

public class OPcall
extends OP
A tree node, representing a method call (field/local variable load).
  • Field Summary

    Fields 
    Modifier and Type Field Description
    protected static int[] arrayStoreCodes  
    protected static byte[] arrayTypeCodes  
    java.lang.reflect.Member m
    Holds method to be executed
    int nplv
    local variable number (in case m=null), number of formal parameters of the method to call otherwise.

    Fields inherited from class gnu.jel.OP

    chi, resID, resType, specialTypes, unwrapType
  • Constructor Summary

    Constructors 
    Constructor Description
    OPcall​(int lvarn, java.lang.Class<?> type)
    Prepares access to the local variable (formal parameter) of method.
    OPcall​(java.lang.reflect.Member m, int np, java.util.Stack<OP> paramOPs, boolean aEval)
    Prepares a new method/field call/get operation to be added to the code.
  • Method Summary

    Modifier and Type Method Description
    void compile​(ClassFile cf)
    Called to generate the code implementing this OP.
    java.lang.Object eval()
    Attempts to evaluate this function.

    Methods inherited from class gnu.jel.OP

    isWidening, isWidening, narrow, typeID, typeIDObject, widen

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • m

      public java.lang.reflect.Member m
      Holds method to be executed
    • nplv

      public int nplv
      local variable number (in case m=null), number of formal parameters of the method to call otherwise.
    • arrayTypeCodes

      protected static final byte[] arrayTypeCodes
    • arrayStoreCodes

      protected static final int[] arrayStoreCodes
  • Constructor Details

    • OPcall

      public OPcall​(java.lang.reflect.Member m, int np, java.util.Stack<OP> paramOPs, boolean aEval) throws CompilationException
      Prepares a new method/field call/get operation to be added to the code.
      Parameters:
      m - method/field to call/get.
      np - number of actual formal parameters (not considering "this")
      paramOPs - stack holding the operands
      aEval - indicates if the method call should be attempted at the compile time
      Throws:
      CompilationException
    • OPcall

      public OPcall​(int lvarn, java.lang.Class<?> type)
      Prepares access to the local variable (formal parameter) of method.
      Parameters:
      lvarn - local variable number.
      type - local variable type.
  • Method Details

    • eval

      public java.lang.Object eval() throws java.lang.Exception
      Attempts to evaluate this function.
      Specified by:
      eval in class OP
      Returns:
      the OPload, representing the function's result (if it can \ be evaluated).
      Throws:
      java.lang.Exception - if the function can't be evaluated, or the evaluation results in error.
    • compile

      public void compile​(ClassFile cf)
      Description copied from class: OP
      Called to generate the code implementing this OP.
      Specified by:
      compile in class OP
      Parameters:
      cf - class file with a new open method to write the code into.