gnu.kawa.reflect
Class InstanceOf

java.lang.Object
  extended by gnu.mapping.PropertySet
      extended by gnu.mapping.Procedure
          extended by gnu.mapping.Procedure2
              extended by gnu.kawa.reflect.InstanceOf
All Implemented Interfaces:
CanInline, Inlineable, Named
Direct Known Subclasses:
CastableAs

public class InstanceOf
extends Procedure2
implements CanInline, Inlineable


Field Summary
protected  Language language
           
 
Constructor Summary
InstanceOf(Language language)
           
InstanceOf(Language language, java.lang.String name)
           
 
Method Summary
 java.lang.Object apply2(java.lang.Object arg1, java.lang.Object arg2)
           
 void compile(ApplyExp exp, Compilation comp, Target target)
           
static void emitIsInstance(TypeValue type, Variable incoming, Compilation comp, Target target)
           
 Type getReturnType(Expression[] args)
           
 Expression inline(ApplyExp exp, ExpWalker walker)
          Inline an application of this Procedure and return result.
 
Methods inherited from class gnu.mapping.Procedure2
apply0, apply1, apply3, apply4, applyN, numArgs
 
Methods inherited from class gnu.mapping.Procedure
apply, apply, check0, check1, check2, check3, check4, checkArgCount, checkN, getSetter, getSourceLocation, match0, match1, match2, match3, match4, matchN, maxArgs, minArgs, set0, set1, setN, setSetter, setSourceLocation, toString
 
Methods inherited from class gnu.mapping.PropertySet
getName, getProperty, getSymbol, removeProperty, setName, setProperty, setProperty, setSymbol
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

language

protected Language language
Constructor Detail

InstanceOf

public InstanceOf(Language language)

InstanceOf

public InstanceOf(Language language,
                  java.lang.String name)
Method Detail

apply2

public java.lang.Object apply2(java.lang.Object arg1,
                               java.lang.Object arg2)
Specified by:
apply2 in class Procedure2

inline

public Expression inline(ApplyExp exp,
                         ExpWalker walker)
Description copied from interface: CanInline
Inline an application of this Procedure and return result. Can return original expression.

Specified by:
inline in interface CanInline

compile

public void compile(ApplyExp exp,
                    Compilation comp,
                    Target target)
Specified by:
compile in interface Inlineable

getReturnType

public Type getReturnType(Expression[] args)
Specified by:
getReturnType in interface Inlineable

emitIsInstance

public static void emitIsInstance(TypeValue type,
                                  Variable incoming,
                                  Compilation comp,
                                  Target target)