org.jruby.compiler.impl
Class InvokeDynamicInvocationCompiler

java.lang.Object
  extended by org.jruby.compiler.impl.StandardInvocationCompiler
      extended by org.jruby.compiler.impl.InvokeDynamicInvocationCompiler
All Implemented Interfaces:
InvocationCompiler

public class InvokeDynamicInvocationCompiler
extends StandardInvocationCompiler

Author:
headius

Field Summary
 
Fields inherited from class org.jruby.compiler.impl.StandardInvocationCompiler
method, methodCompiler
 
Constructor Summary
InvokeDynamicInvocationCompiler(BaseBodyCompiler methodCompiler, SkinnyMethodAdapter method)
           
 
Method Summary
 SkinnyMethodAdapter getMethodAdapter()
           
 void invokeAttrAssign(java.lang.String name, CompilerCallback receiverCallback, ArgumentsCallback argsCallback)
           
 void invokeAttrAssignMasgn(java.lang.String name, CompilerCallback receiverCallback, ArgumentsCallback argsCallback)
          The masgn version has the value to be assigned already on the stack, and so uses a different path to perform the assignment.
 void invokeDynamic(java.lang.String name, CompilerCallback receiverCallback, ArgumentsCallback argsCallback, CallType callType, CompilerCallback closureArg, boolean iterator)
          Invoke the named method as a "function", i.e.
 void invokeEqq(ArgumentsCallback receivers, CompilerCallback argument)
          Used for when nodes with a case; assumes stack is ..., case_value, when_cond_array
 void invokeOpAsgnWithAnd(java.lang.String attrName, java.lang.String attrAsgnName, CompilerCallback receiverCallback, ArgumentsCallback argsCallback)
           
 void invokeOpAsgnWithMethod(java.lang.String operatorName, java.lang.String attrName, java.lang.String attrAsgnName, CompilerCallback receiverCallback, ArgumentsCallback argsCallback)
           
 void invokeOpAsgnWithOr(java.lang.String attrName, java.lang.String attrAsgnName, CompilerCallback receiverCallback, ArgumentsCallback argsCallback)
           
 void invokeOpElementAsgnWithMethod(java.lang.String operatorName, CompilerCallback receiverCallback, ArgumentsCallback argsCallback)
           
 void invokeSuper(CompilerCallback argsCallback, CompilerCallback closureArg)
           
 void opElementAsgnWithAnd(CompilerCallback receiver, ArgumentsCallback args, CompilerCallback valueCallback)
           
 void opElementAsgnWithMethod(CompilerCallback receiver, ArgumentsCallback args, CompilerCallback valueCallback, java.lang.String operator)
           
 void opElementAsgnWithOr(CompilerCallback receiver, ArgumentsCallback args, CompilerCallback valueCallback)
           
 void setMethodAdapter(SkinnyMethodAdapter sma)
           
 void yield(CompilerCallback argsCallback, boolean unwrap)
          Invoke the block passed into this method, or throw an error if no block is present.
 
Methods inherited from class org.jruby.compiler.impl.StandardInvocationCompiler
invokeBinaryFixnumRHS, invokeDynamicNoBlockSpecificArity, invokeDynamicNoBlockZero, invokeDynamicSelfNoBlockSpecificArity, invokeDynamicSelfNoBlockZero, yieldSpecific
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

InvokeDynamicInvocationCompiler

public InvokeDynamicInvocationCompiler(BaseBodyCompiler methodCompiler,
                                       SkinnyMethodAdapter method)
Method Detail

getMethodAdapter

public SkinnyMethodAdapter getMethodAdapter()
Specified by:
getMethodAdapter in interface InvocationCompiler
Overrides:
getMethodAdapter in class StandardInvocationCompiler

setMethodAdapter

public void setMethodAdapter(SkinnyMethodAdapter sma)
Specified by:
setMethodAdapter in interface InvocationCompiler
Overrides:
setMethodAdapter in class StandardInvocationCompiler

invokeAttrAssignMasgn

public void invokeAttrAssignMasgn(java.lang.String name,
                                  CompilerCallback receiverCallback,
                                  ArgumentsCallback argsCallback)
Description copied from interface: InvocationCompiler
The masgn version has the value to be assigned already on the stack, and so uses a different path to perform the assignment.

Specified by:
invokeAttrAssignMasgn in interface InvocationCompiler
Overrides:
invokeAttrAssignMasgn in class StandardInvocationCompiler

invokeAttrAssign

public void invokeAttrAssign(java.lang.String name,
                             CompilerCallback receiverCallback,
                             ArgumentsCallback argsCallback)
Specified by:
invokeAttrAssign in interface InvocationCompiler
Overrides:
invokeAttrAssign in class StandardInvocationCompiler

opElementAsgnWithOr

public void opElementAsgnWithOr(CompilerCallback receiver,
                                ArgumentsCallback args,
                                CompilerCallback valueCallback)
Specified by:
opElementAsgnWithOr in interface InvocationCompiler
Overrides:
opElementAsgnWithOr in class StandardInvocationCompiler

opElementAsgnWithAnd

public void opElementAsgnWithAnd(CompilerCallback receiver,
                                 ArgumentsCallback args,
                                 CompilerCallback valueCallback)
Specified by:
opElementAsgnWithAnd in interface InvocationCompiler
Overrides:
opElementAsgnWithAnd in class StandardInvocationCompiler

opElementAsgnWithMethod

public void opElementAsgnWithMethod(CompilerCallback receiver,
                                    ArgumentsCallback args,
                                    CompilerCallback valueCallback,
                                    java.lang.String operator)
Specified by:
opElementAsgnWithMethod in interface InvocationCompiler
Overrides:
opElementAsgnWithMethod in class StandardInvocationCompiler

invokeSuper

public void invokeSuper(CompilerCallback argsCallback,
                        CompilerCallback closureArg)

invokeDynamic

public void invokeDynamic(java.lang.String name,
                          CompilerCallback receiverCallback,
                          ArgumentsCallback argsCallback,
                          CallType callType,
                          CompilerCallback closureArg,
                          boolean iterator)
Description copied from interface: InvocationCompiler
Invoke the named method as a "function", i.e. as a method on the current "self" object, using the specified argument count. It is expected that previous calls to the compiler has prepared the exact number of argument values necessary for this call. Those values will be consumed, and the result of the call will be generated.

Specified by:
invokeDynamic in interface InvocationCompiler
Overrides:
invokeDynamic in class StandardInvocationCompiler

invokeOpAsgnWithOr

public void invokeOpAsgnWithOr(java.lang.String attrName,
                               java.lang.String attrAsgnName,
                               CompilerCallback receiverCallback,
                               ArgumentsCallback argsCallback)
Specified by:
invokeOpAsgnWithOr in interface InvocationCompiler
Overrides:
invokeOpAsgnWithOr in class StandardInvocationCompiler

invokeOpAsgnWithAnd

public void invokeOpAsgnWithAnd(java.lang.String attrName,
                                java.lang.String attrAsgnName,
                                CompilerCallback receiverCallback,
                                ArgumentsCallback argsCallback)
Specified by:
invokeOpAsgnWithAnd in interface InvocationCompiler
Overrides:
invokeOpAsgnWithAnd in class StandardInvocationCompiler

invokeOpAsgnWithMethod

public void invokeOpAsgnWithMethod(java.lang.String operatorName,
                                   java.lang.String attrName,
                                   java.lang.String attrAsgnName,
                                   CompilerCallback receiverCallback,
                                   ArgumentsCallback argsCallback)
Specified by:
invokeOpAsgnWithMethod in interface InvocationCompiler
Overrides:
invokeOpAsgnWithMethod in class StandardInvocationCompiler

invokeOpElementAsgnWithMethod

public void invokeOpElementAsgnWithMethod(java.lang.String operatorName,
                                          CompilerCallback receiverCallback,
                                          ArgumentsCallback argsCallback)
Overrides:
invokeOpElementAsgnWithMethod in class StandardInvocationCompiler

yield

public void yield(CompilerCallback argsCallback,
                  boolean unwrap)
Description copied from interface: InvocationCompiler
Invoke the block passed into this method, or throw an error if no block is present. If arguments have been prepared for the block, specify true. Otherwise the default empty args will be used.

Specified by:
yield in interface InvocationCompiler
Overrides:
yield in class StandardInvocationCompiler

invokeEqq

public void invokeEqq(ArgumentsCallback receivers,
                      CompilerCallback argument)
Description copied from interface: InvocationCompiler
Used for when nodes with a case; assumes stack is ..., case_value, when_cond_array

Specified by:
invokeEqq in interface InvocationCompiler
Overrides:
invokeEqq in class StandardInvocationCompiler


Copyright © 2002-2007 JRuby Team. All Rights Reserved.