|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.jruby.compiler.impl.StandardASMCompiler.AbstractMethodCompiler
public abstract class StandardASMCompiler.AbstractMethodCompiler
Nested Class Summary | |
---|---|
class |
StandardASMCompiler.AbstractMethodCompiler.ASMMethodContinuationCompiler
|
Field Summary | |
---|---|
protected int |
argParamCount
|
protected Label[] |
currentLoopLabels
|
protected ASTInspector |
inspector
|
protected InvocationCompiler |
invocationCompiler
|
protected SkinnyMethodAdapter |
method
|
protected java.lang.String |
methodName
|
protected Label |
redoJump
|
protected StaticScope |
scope
|
protected Label |
scopeEnd
|
protected Label |
scopeStart
|
protected VariableCompiler |
variableCompiler
|
protected boolean |
withinProtection
|
Constructor Summary | |
---|---|
StandardASMCompiler.AbstractMethodCompiler(StaticScope scope,
ASTInspector inspector,
java.lang.String methodName)
|
Method Summary | |
---|---|
void |
aliasGlobal(java.lang.String newName,
java.lang.String oldName)
|
void |
appendToArray()
|
void |
appendToObjectArray()
|
void |
aprintln()
For logging, println the object reference currently atop the stack |
void |
aryToAry()
|
void |
assignClassVariable(java.lang.String name)
|
void |
assignClassVariable(java.lang.String name,
CompilerCallback value)
|
void |
assignConstantInCurrent(java.lang.String name)
|
void |
assignConstantInModule(java.lang.String name)
|
void |
assignConstantInObject(java.lang.String name)
|
void |
assignGlobalVariable(java.lang.String name)
Assign the top of the stack to the global variable with the specified name. |
void |
assignGlobalVariable(java.lang.String name,
CompilerCallback value)
Assign the top of the stack to the global variable with the specified name. |
void |
assignInstanceVariable(java.lang.String name)
Assign the value on top of the stack to the instance variable with the specified name on the current "self". |
void |
assignInstanceVariable(java.lang.String name,
CompilerCallback value)
Assign the value on top of the stack to the instance variable with the specified name on the current "self". |
void |
asString()
|
void |
attached()
|
void |
backref()
Push the current back reference |
void |
backrefMethod(java.lang.String methodName)
Call a static helper method on RubyRegexp with the current backref |
abstract void |
beginMethod(CompilerCallback args,
StaticScope scope)
|
void |
branchIfModule(CompilerCallback receiverCallback,
BranchCallback moduleCallback,
BranchCallback notModuleCallback)
|
void |
callZSuper(CompilerCallback closure)
|
MethodCompiler |
chainToMethod(java.lang.String methodName,
ASTInspector inspector)
|
void |
checkIsExceptionHandled()
|
void |
checkWhenWithSplat()
|
void |
concatArrays()
|
void |
concatObjectArrays()
|
void |
consumeCurrentValue()
As code executes, values are assumed to be "generated", often by being pushed on to some execution stack. |
void |
convertToJavaArray()
|
void |
createEmptyArray()
Create an empty Ruby array |
void |
createEmptyHash()
Create an empty Ruby Hash object and put a reference on top of the stack. |
void |
createNewArray(boolean lightweight)
Given an aggregated set of objects (likely created through a call to createObjectArray) create a Ruby array object. |
void |
createNewArray(java.lang.Object[] sourceArray,
ArrayCallback callback,
boolean lightweight)
Given an aggregated set of objects (likely created through a call to createObjectArray) create a Ruby array object. |
void |
createNewBignum(java.math.BigInteger value)
Generate a new "Bignum" value. |
void |
createNewClosure(int line,
StaticScope scope,
int arity,
CompilerCallback body,
CompilerCallback args,
boolean hasMultipleArgsHead,
NodeType argsNodeId,
ASTInspector inspector)
Create a new closure (block) using the given lexical scope information, call arity, and body generated by the body callback. |
void |
createNewEndBlock(CompilerCallback body)
|
void |
createNewFixnum(long value)
Generate a new "Fixnum" value. |
void |
createNewFloat(double value)
Generate a new "Float" value. |
void |
createNewForLoop(int arity,
CompilerCallback body,
CompilerCallback args,
boolean hasMultipleArgsHead,
NodeType argsNodeId)
Create a new closure (block) for a for loop with the given call arity and body generated by the body callback. |
void |
createNewHash(java.lang.Object elements,
ArrayCallback callback,
int keyCount)
Create a new hash by calling back to the specified ArrayCallback. |
void |
createNewRange(boolean isExclusive)
Create a new range. |
void |
createNewRegexp(ByteList value,
int options)
|
void |
createNewString(ArrayCallback callback,
int count)
Generate a new dynamic "String" value. |
void |
createNewString(ByteList value)
Generate a new "String" value. |
void |
createNewSymbol(ArrayCallback callback,
int count)
|
void |
createNewSymbol(java.lang.String name)
Generate a new "Symbol" value (or fetch the existing one). |
void |
createObjectArray(int elementCount)
Combine the top |
void |
createObjectArray(java.lang.Object[] sourceArray,
ArrayCallback callback)
|
protected abstract void |
createVariableCompiler()
|
void |
declareClassVariable(java.lang.String name)
|
void |
declareClassVariable(java.lang.String name,
CompilerCallback value)
|
void |
defineAlias(java.lang.String newName,
java.lang.String oldName)
Define an alias for a new name to an existing oldName'd method. |
void |
defineClass(java.lang.String name,
StaticScope staticScope,
CompilerCallback superCallback,
CompilerCallback pathCallback,
CompilerCallback bodyCallback,
CompilerCallback receiverCallback)
|
void |
defineModule(java.lang.String name,
StaticScope staticScope,
CompilerCallback pathCallback,
CompilerCallback bodyCallback)
|
void |
defineNewMethod(java.lang.String name,
int methodArity,
StaticScope scope,
CompilerCallback body,
CompilerCallback args,
CompilerCallback receiver,
ASTInspector inspector,
boolean root)
Define a new method with the given name, arity, local variable count, and body callback. |
void |
duplicateCurrentValue()
Push a copy the topmost value on the stack. |
abstract void |
endMethod()
End compilation for the method associated with the specified token. |
void |
ensureMultipleAssignableRubyArray(boolean masgnHasHead)
Ensures that the present value is an IRubyObject[] by wrapping it with one or coercing it if it is not. |
void |
ensureRubyArray()
Ensures that the present value is an IRubyObject[] by wrapping it with one if it is not. |
void |
forEachInValueArray(int start,
int count,
java.lang.Object source,
ArrayCallback callback,
ArrayCallback nilCallback,
CompilerCallback argsCallback)
Given an IRubyObject[] on the stack (or otherwise available as the present object) call back to the provided ArrayCallback 'callback' for 'count' elements, starting with 'start'. |
protected int |
getClosureIndex()
|
void |
getCompiledClass()
|
protected int |
getDynamicScopeIndex()
|
protected int |
getExceptionIndex()
|
protected int |
getFirstTempIndex()
|
void |
getFrameKlazz()
|
void |
getFrameName()
|
void |
getInstanceVariable(java.lang.String name)
|
InvocationCompiler |
getInvocationCompiler()
|
java.lang.Object |
getNewEnding()
|
protected java.lang.String |
getNewEnsureName()
|
protected java.lang.String |
getNewRescueName()
|
protected int |
getNilIndex()
|
protected int |
getPreviousExceptionIndex()
|
protected int |
getRuntimeIndex()
|
StandardASMCompiler |
getScriptCompiler()
|
protected abstract java.lang.String |
getSignature()
|
VariableCompiler |
getVariableCompiler()
|
protected int |
getVarsArrayIndex()
|
void |
getVisibilityFor(java.lang.String name)
|
void |
go(java.lang.Object gotoToken)
|
void |
hasBlock(BranchCallback trueBranch,
BranchCallback falseBranch)
|
void |
ifNotNull(java.lang.Object gotoToken)
|
void |
ifNotSuperMethodBound(java.lang.Object token)
|
void |
ifNull(java.lang.Object gotoToken)
|
void |
ifSingleton(java.lang.Object gotoToken)
|
void |
inDefined()
|
void |
invokeIRuby(java.lang.String methodName,
java.lang.String signature)
|
void |
invokeIRubyObject(java.lang.String methodName,
java.lang.String signature)
|
void |
invokeThreadContext(java.lang.String methodName,
java.lang.String signature)
|
void |
invokeUtilityMethod(java.lang.String methodName,
java.lang.String signature)
This is for utility methods used by the compiler, to reduce the amount of code generation necessary. |
void |
isCaptured(int number,
BranchCallback trueBranch,
BranchCallback falseBranch)
|
void |
isClassVarDefined(java.lang.String name,
BranchCallback trueBranch,
BranchCallback falseBranch)
|
void |
isConstantBranch(BranchCallback setup,
BranchCallback isConstant,
BranchCallback isMethod,
BranchCallback none,
java.lang.String name)
|
void |
isConstantDefined(java.lang.String name,
BranchCallback trueBranch,
BranchCallback falseBranch)
|
void |
isGlobalDefined(java.lang.String name,
BranchCallback trueBranch,
BranchCallback falseBranch)
|
void |
isInstanceOf(java.lang.Class clazz,
BranchCallback trueBranch,
BranchCallback falseBranch)
|
void |
isInstanceVariableDefined(java.lang.String name,
BranchCallback trueBranch,
BranchCallback falseBranch)
|
void |
isMethodBound(java.lang.String name,
BranchCallback trueBranch,
BranchCallback falseBranch)
|
void |
isNil(BranchCallback trueBranch,
BranchCallback falseBranch)
|
void |
isNotProtected(java.lang.Object gotoToken,
int toConsume)
|
void |
isNull(BranchCallback trueBranch,
BranchCallback falseBranch)
|
void |
isPrivate(java.lang.Object gotoToken,
int toConsume)
|
void |
issueLoopBreak()
|
void |
issueLoopNext()
|
void |
issueLoopRedo()
|
void |
issueRetryEvent()
|
void |
lineNumber(ISourcePosition position)
This method provides a way to specify a line number for the current piece of code being compiled. |
void |
loadBlock()
|
void |
loadClass(java.lang.String name)
|
void |
loadCurrentModule()
|
void |
loadException()
|
void |
loadFalse()
Load a Ruby "false" value on top of the stack. |
void |
loadNil()
Load a Ruby "nil" value on top of the stack. |
void |
loadNull()
|
void |
loadObject()
Load the Object class |
void |
loadRuntime()
|
void |
loadSelf()
|
void |
loadSymbol(java.lang.String symbol)
Load the given string as a symbol on to the top of the stack. |
void |
loadThis()
|
void |
loadThreadContext()
|
void |
loadTrue()
Load a Ruby "true" value on top of the stack. |
void |
match()
|
void |
match2()
|
void |
match3()
|
void |
metaclass()
|
void |
negateCurrentValue()
Perform a logical Ruby "not" operation on the value on top of the stack, leaving the negated result. |
void |
notIsModuleAndClassVarDefined(java.lang.String name,
java.lang.Object gotoToken)
|
void |
nthRef(int match)
|
void |
nullToNil()
|
void |
outDefined()
|
MethodCompiler |
outline(java.lang.String methodName,
ASTInspector inspector)
|
void |
performBackref(char type)
|
void |
performBooleanBranch(BranchCallback trueBranch,
BranchCallback falseBranch)
Perform a boolean branch operation based on the Ruby "true" value of the top value on the stack. |
void |
performBooleanLoop(BranchCallback condition,
BranchCallback body,
boolean checkFirst)
Perform a boolean loop using the given condition-calculating branch and body branch. |
void |
performBooleanLoopLight(BranchCallback condition,
BranchCallback body,
boolean checkFirst)
Perform a boolean loop using the given condition-calculating branch and body branch. |
void |
performBooleanLoopSafe(BranchCallback condition,
BranchCallback body,
boolean checkFirst)
Perform a boolean loop using the given condition-calculating branch and body branch. |
void |
performLogicalAnd(BranchCallback longBranch)
Perform a logical short-circuited Ruby "and" operation, using Ruby notions of true and false. |
void |
performLogicalOr(BranchCallback longBranch)
Perform a logical short-circuited Ruby "or" operation, using Ruby notions of true and false. |
void |
pollThreadEvents()
|
void |
println()
|
void |
protect(BranchCallback regularCode,
BranchCallback protectedCode,
java.lang.Class ret)
Makes sure that the code in protectedCode will always run after regularCode. |
void |
pushNull()
|
void |
pushString(java.lang.String str)
|
void |
rescue(BranchCallback regularCode,
java.lang.Class exception,
BranchCallback catchCode,
java.lang.Class ret)
|
void |
rethrowException()
|
void |
rethrowIfSystemExit()
|
void |
retrieveClassVariable(java.lang.String name)
|
void |
retrieveConstant(java.lang.String name)
Retrieve the constant with the specified name available at the current point in the program's execution. |
void |
retrieveConstantFromModule(java.lang.String name)
Retreive a named constant from the RubyModule/RubyClass that's just been pushed. |
void |
retrieveGlobalVariable(java.lang.String name)
Retrieve the global variable with the specified name to the top of the stack. |
void |
retrieveInstanceVariable(java.lang.String name)
Retrieve the instance variable with the given name, based on the current "self". |
void |
retrieveSelf()
Retrieve the current "self" and put a reference on top of the stack. |
void |
retrieveSelfClass()
Retrieve the current "self" object's metaclass and put a reference on top of the stack |
void |
runBeginBlock(StaticScope scope,
CompilerCallback body)
|
void |
selfIsKindOf(java.lang.Object gotoToken)
|
void |
setEnding(java.lang.Object endingToken)
|
void |
setFilePosition(ISourcePosition position)
|
void |
setLinePosition(ISourcePosition position)
|
void |
singlifySplattedValue()
Given a splatted value, extract a single value. |
void |
splatCurrentValue()
Convert the current value into a "splatted value" suitable for passing as method arguments or disassembling into multiple variables. |
void |
stringOrNil()
|
void |
superClass()
|
void |
swapValues()
Swap the top and second values on the stack. |
void |
toJavaString()
|
void |
undefMethod(java.lang.String name)
|
void |
unwrapPassedBlock()
|
void |
unwrapRaiseException()
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface org.jruby.compiler.MethodCompiler |
---|
issueBreakEvent, issueNextEvent, issueRedoEvent, performReturn |
Field Detail |
---|
protected SkinnyMethodAdapter method
protected VariableCompiler variableCompiler
protected InvocationCompiler invocationCompiler
protected int argParamCount
protected Label[] currentLoopLabels
protected Label scopeStart
protected Label scopeEnd
protected Label redoJump
protected boolean withinProtection
protected StaticScope scope
protected ASTInspector inspector
protected java.lang.String methodName
Constructor Detail |
---|
public StandardASMCompiler.AbstractMethodCompiler(StaticScope scope, ASTInspector inspector, java.lang.String methodName)
Method Detail |
---|
protected abstract java.lang.String getSignature()
protected abstract void createVariableCompiler()
public abstract void beginMethod(CompilerCallback args, StaticScope scope)
public abstract void endMethod()
MethodCompiler
endMethod
in interface MethodCompiler
public MethodCompiler chainToMethod(java.lang.String methodName, ASTInspector inspector)
chainToMethod
in interface MethodCompiler
public MethodCompiler outline(java.lang.String methodName, ASTInspector inspector)
public StandardASMCompiler getScriptCompiler()
public void lineNumber(ISourcePosition position)
MethodCompiler
lineNumber
in interface MethodCompiler
position
- The ISourcePosition information to use.public void loadThreadContext()
public void loadSelf()
loadSelf
in interface MethodCompiler
protected int getClosureIndex()
protected int getRuntimeIndex()
protected int getNilIndex()
protected int getPreviousExceptionIndex()
protected int getDynamicScopeIndex()
protected int getVarsArrayIndex()
protected int getFirstTempIndex()
protected int getExceptionIndex()
public void loadThis()
public void loadRuntime()
public void loadBlock()
public void loadNil()
MethodCompiler
loadNil
in interface MethodCompiler
public void loadNull()
loadNull
in interface MethodCompiler
public void loadSymbol(java.lang.String symbol)
MethodCompiler
loadSymbol
in interface MethodCompiler
symbol
- The symbol to load.public void loadObject()
MethodCompiler
loadObject
in interface MethodCompiler
public void invokeUtilityMethod(java.lang.String methodName, java.lang.String signature)
public void invokeThreadContext(java.lang.String methodName, java.lang.String signature)
public void invokeIRuby(java.lang.String methodName, java.lang.String signature)
public void invokeIRubyObject(java.lang.String methodName, java.lang.String signature)
public void consumeCurrentValue()
MethodCompiler
consumeCurrentValue
in interface MethodCompiler
public void duplicateCurrentValue()
MethodCompiler
duplicateCurrentValue
in interface MethodCompiler
public void swapValues()
MethodCompiler
swapValues
in interface MethodCompiler
public void retrieveSelf()
MethodCompiler
retrieveSelf
in interface MethodCompiler
public void retrieveSelfClass()
MethodCompiler
retrieveSelfClass
in interface MethodCompiler
public VariableCompiler getVariableCompiler()
getVariableCompiler
in interface MethodCompiler
public InvocationCompiler getInvocationCompiler()
getInvocationCompiler
in interface MethodCompiler
public void assignConstantInCurrent(java.lang.String name)
assignConstantInCurrent
in interface MethodCompiler
public void assignConstantInModule(java.lang.String name)
assignConstantInModule
in interface MethodCompiler
public void assignConstantInObject(java.lang.String name)
assignConstantInObject
in interface MethodCompiler
public void retrieveConstant(java.lang.String name)
MethodCompiler
retrieveConstant
in interface MethodCompiler
name
- The name of the constantpublic void retrieveConstantFromModule(java.lang.String name)
MethodCompiler
retrieveConstantFromModule
in interface MethodCompiler
name
- The name of the constantpublic void retrieveClassVariable(java.lang.String name)
retrieveClassVariable
in interface MethodCompiler
public void assignClassVariable(java.lang.String name)
assignClassVariable
in interface MethodCompiler
public void assignClassVariable(java.lang.String name, CompilerCallback value)
assignClassVariable
in interface MethodCompiler
public void declareClassVariable(java.lang.String name)
declareClassVariable
in interface MethodCompiler
public void declareClassVariable(java.lang.String name, CompilerCallback value)
declareClassVariable
in interface MethodCompiler
public void createNewFloat(double value)
MethodCompiler
createNewFloat
in interface MethodCompiler
public void createNewFixnum(long value)
MethodCompiler
createNewFixnum
in interface MethodCompiler
public void createNewBignum(java.math.BigInteger value)
MethodCompiler
createNewBignum
in interface MethodCompiler
public void createNewString(ArrayCallback callback, int count)
MethodCompiler
createNewString
in interface MethodCompiler
public void createNewSymbol(ArrayCallback callback, int count)
createNewSymbol
in interface MethodCompiler
public void createNewString(ByteList value)
MethodCompiler
createNewString
in interface MethodCompiler
public void createNewSymbol(java.lang.String name)
MethodCompiler
createNewSymbol
in interface MethodCompiler
public void createNewArray(boolean lightweight)
MethodCompiler
createNewArray
in interface MethodCompiler
public void createNewArray(java.lang.Object[] sourceArray, ArrayCallback callback, boolean lightweight)
MethodCompiler
createNewArray
in interface MethodCompiler
public void createEmptyArray()
MethodCompiler
createEmptyArray
in interface MethodCompiler
public void createObjectArray(java.lang.Object[] sourceArray, ArrayCallback callback)
createObjectArray
in interface MethodCompiler
public void createObjectArray(int elementCount)
MethodCompiler
elementCountelements into a single element, generally an array or similar construct. The specified number of elements are consumed and an aggregate element remains.
createObjectArray
in interface MethodCompiler
elementCount
- The number of elements to consumepublic void createEmptyHash()
MethodCompiler
createEmptyHash
in interface MethodCompiler
public void createNewHash(java.lang.Object elements, ArrayCallback callback, int keyCount)
MethodCompiler
createNewHash
in interface MethodCompiler
elements
- An object holding the elements from which to create the Hash.callback
- An ArrayCallback implementation to which the elements array and iteration counts
are passed in sequence.keyCount
- the total count of key-value pairs to be constructed from the elements collection.public void createNewRange(boolean isExclusive)
MethodCompiler
createNewRange
in interface MethodCompiler
isExclusive
- Whether the range is exclusive or not (inclusive)public void performBooleanBranch(BranchCallback trueBranch, BranchCallback falseBranch)
MethodCompiler
performBooleanBranch
in interface MethodCompiler
trueBranch
- The callback for generating code for the "true" conditionfalseBranch
- The callback for generating code for the "false" conditionpublic void performLogicalAnd(BranchCallback longBranch)
MethodCompiler
performLogicalAnd
in interface MethodCompiler
longBranch
- The branch to execute if the "and" operation does not short-circuit.public void performLogicalOr(BranchCallback longBranch)
MethodCompiler
performLogicalOr
in interface MethodCompiler
longBranch
- The branch to execute if the "or" operation does not short-circuit.public void performBooleanLoopSafe(BranchCallback condition, BranchCallback body, boolean checkFirst)
MethodCompiler
performBooleanLoopSafe
in interface MethodCompiler
condition
- The code to execute for calculating the loop condition. A Ruby true result will
cause the body to be executed again.body
- The body to executed for the loop.checkFirst
- whether to check the condition the first time through or not.public void performBooleanLoop(BranchCallback condition, BranchCallback body, boolean checkFirst)
MethodCompiler
performBooleanLoop
in interface MethodCompiler
condition
- The code to execute for calculating the loop condition. A Ruby true result will
cause the body to be executed again.body
- The body to executed for the loop.checkFirst
- whether to check the condition the first time through or not.public void performBooleanLoopLight(BranchCallback condition, BranchCallback body, boolean checkFirst)
MethodCompiler
performBooleanLoopLight
in interface MethodCompiler
condition
- The code to execute for calculating the loop condition. A Ruby true result will
cause the body to be executed again.body
- The body to executed for the loop.checkFirst
- whether to check the condition the first time through or not.public void createNewClosure(int line, StaticScope scope, int arity, CompilerCallback body, CompilerCallback args, boolean hasMultipleArgsHead, NodeType argsNodeId, ASTInspector inspector)
MethodCompiler
createNewClosure
in interface MethodCompiler
scope
- The static scoping informationarity
- The arity of the block's argument listbody
- The callback which will generate the closure's bodypublic void runBeginBlock(StaticScope scope, CompilerCallback body)
runBeginBlock
in interface MethodCompiler
public void createNewForLoop(int arity, CompilerCallback body, CompilerCallback args, boolean hasMultipleArgsHead, NodeType argsNodeId)
MethodCompiler
createNewForLoop
in interface MethodCompiler
arity
- The arity of the block's argument listbody
- The callback which will generate the closure's bodypublic void createNewEndBlock(CompilerCallback body)
createNewEndBlock
in interface MethodCompiler
public void getCompiledClass()
public void println()
public void defineAlias(java.lang.String newName, java.lang.String oldName)
MethodCompiler
defineAlias
in interface MethodCompiler
newName
- The new alias to createoldName
- The name of the existing method or aliaspublic void loadFalse()
MethodCompiler
loadFalse
in interface MethodCompiler
public void loadTrue()
MethodCompiler
loadTrue
in interface MethodCompiler
public void loadCurrentModule()
loadCurrentModule
in interface MethodCompiler
public void retrieveInstanceVariable(java.lang.String name)
MethodCompiler
retrieveInstanceVariable
in interface MethodCompiler
name
- The name of the instance variable to retrieve.public void assignInstanceVariable(java.lang.String name)
MethodCompiler
assignInstanceVariable
in interface MethodCompiler
name
- The name of the value to assign.public void assignInstanceVariable(java.lang.String name, CompilerCallback value)
MethodCompiler
assignInstanceVariable
in interface MethodCompiler
name
- The name of the value to assign.value
- A callback for compiling the value to assignpublic void retrieveGlobalVariable(java.lang.String name)
MethodCompiler
retrieveGlobalVariable
in interface MethodCompiler
name
- The name of the global variable.public void assignGlobalVariable(java.lang.String name)
MethodCompiler
assignGlobalVariable
in interface MethodCompiler
name
- The name of the global variable.public void assignGlobalVariable(java.lang.String name, CompilerCallback value)
MethodCompiler
assignGlobalVariable
in interface MethodCompiler
name
- The name of the global variable.value
- The callback to compile the value to assignpublic void negateCurrentValue()
MethodCompiler
negateCurrentValue
in interface MethodCompiler
public void splatCurrentValue()
MethodCompiler
splatCurrentValue
in interface MethodCompiler
public void singlifySplattedValue()
MethodCompiler
singlifySplattedValue
in interface MethodCompiler
public void aryToAry()
aryToAry
in interface MethodCompiler
public void ensureRubyArray()
MethodCompiler
ensureRubyArray
in interface MethodCompiler
public void ensureMultipleAssignableRubyArray(boolean masgnHasHead)
MethodCompiler
ensureMultipleAssignableRubyArray
in interface MethodCompiler
public void forEachInValueArray(int start, int count, java.lang.Object source, ArrayCallback callback, ArrayCallback nilCallback, CompilerCallback argsCallback)
MethodCompiler
forEachInValueArray
in interface MethodCompiler
public void asString()
asString
in interface MethodCompiler
public void toJavaString()
toJavaString
in interface MethodCompiler
public void nthRef(int match)
nthRef
in interface MethodCompiler
public void match()
match
in interface MethodCompiler
public void match2()
match2
in interface MethodCompiler
public void match3()
match3
in interface MethodCompiler
public void createNewRegexp(ByteList value, int options)
createNewRegexp
in interface MethodCompiler
public void pollThreadEvents()
pollThreadEvents
in interface MethodCompiler
public void nullToNil()
nullToNil
in interface MethodCompiler
public void isInstanceOf(java.lang.Class clazz, BranchCallback trueBranch, BranchCallback falseBranch)
isInstanceOf
in interface MethodCompiler
public void isCaptured(int number, BranchCallback trueBranch, BranchCallback falseBranch)
isCaptured
in interface MethodCompiler
public void branchIfModule(CompilerCallback receiverCallback, BranchCallback moduleCallback, BranchCallback notModuleCallback)
branchIfModule
in interface MethodCompiler
public void backref()
MethodCompiler
backref
in interface MethodCompiler
public void backrefMethod(java.lang.String methodName)
MethodCompiler
backrefMethod
in interface MethodCompiler
public void issueLoopBreak()
public void issueLoopNext()
public void issueLoopRedo()
protected java.lang.String getNewEnsureName()
public void protect(BranchCallback regularCode, BranchCallback protectedCode, java.lang.Class ret)
MethodCompiler
protect
in interface MethodCompiler
protected java.lang.String getNewRescueName()
public void rescue(BranchCallback regularCode, java.lang.Class exception, BranchCallback catchCode, java.lang.Class ret)
rescue
in interface MethodCompiler
public void inDefined()
inDefined
in interface MethodCompiler
public void outDefined()
outDefined
in interface MethodCompiler
public void stringOrNil()
stringOrNil
in interface MethodCompiler
public void pushNull()
pushNull
in interface MethodCompiler
public void pushString(java.lang.String str)
pushString
in interface MethodCompiler
public void isMethodBound(java.lang.String name, BranchCallback trueBranch, BranchCallback falseBranch)
isMethodBound
in interface MethodCompiler
public void hasBlock(BranchCallback trueBranch, BranchCallback falseBranch)
hasBlock
in interface MethodCompiler
public void isGlobalDefined(java.lang.String name, BranchCallback trueBranch, BranchCallback falseBranch)
isGlobalDefined
in interface MethodCompiler
public void isConstantDefined(java.lang.String name, BranchCallback trueBranch, BranchCallback falseBranch)
isConstantDefined
in interface MethodCompiler
public void isInstanceVariableDefined(java.lang.String name, BranchCallback trueBranch, BranchCallback falseBranch)
isInstanceVariableDefined
in interface MethodCompiler
public void isClassVarDefined(java.lang.String name, BranchCallback trueBranch, BranchCallback falseBranch)
isClassVarDefined
in interface MethodCompiler
public java.lang.Object getNewEnding()
getNewEnding
in interface MethodCompiler
public void isNil(BranchCallback trueBranch, BranchCallback falseBranch)
isNil
in interface MethodCompiler
public void isNull(BranchCallback trueBranch, BranchCallback falseBranch)
isNull
in interface MethodCompiler
public void ifNull(java.lang.Object gotoToken)
ifNull
in interface MethodCompiler
public void ifNotNull(java.lang.Object gotoToken)
ifNotNull
in interface MethodCompiler
public void setEnding(java.lang.Object endingToken)
setEnding
in interface MethodCompiler
public void go(java.lang.Object gotoToken)
go
in interface MethodCompiler
public void isConstantBranch(BranchCallback setup, BranchCallback isConstant, BranchCallback isMethod, BranchCallback none, java.lang.String name)
isConstantBranch
in interface MethodCompiler
public void metaclass()
metaclass
in interface MethodCompiler
public void aprintln()
MethodCompiler
aprintln
in interface MethodCompiler
public void getVisibilityFor(java.lang.String name)
getVisibilityFor
in interface MethodCompiler
public void isPrivate(java.lang.Object gotoToken, int toConsume)
isPrivate
in interface MethodCompiler
public void isNotProtected(java.lang.Object gotoToken, int toConsume)
isNotProtected
in interface MethodCompiler
public void selfIsKindOf(java.lang.Object gotoToken)
selfIsKindOf
in interface MethodCompiler
public void notIsModuleAndClassVarDefined(java.lang.String name, java.lang.Object gotoToken)
notIsModuleAndClassVarDefined
in interface MethodCompiler
public void ifSingleton(java.lang.Object gotoToken)
ifSingleton
in interface MethodCompiler
public void getInstanceVariable(java.lang.String name)
getInstanceVariable
in interface MethodCompiler
public void getFrameName()
getFrameName
in interface MethodCompiler
public void getFrameKlazz()
getFrameKlazz
in interface MethodCompiler
public void superClass()
superClass
in interface MethodCompiler
public void attached()
attached
in interface MethodCompiler
public void ifNotSuperMethodBound(java.lang.Object token)
ifNotSuperMethodBound
in interface MethodCompiler
public void concatArrays()
concatArrays
in interface MethodCompiler
public void concatObjectArrays()
public void appendToArray()
appendToArray
in interface MethodCompiler
public void appendToObjectArray()
appendToObjectArray
in interface MethodCompiler
public void convertToJavaArray()
convertToJavaArray
in interface MethodCompiler
public void aliasGlobal(java.lang.String newName, java.lang.String oldName)
aliasGlobal
in interface MethodCompiler
public void undefMethod(java.lang.String name)
undefMethod
in interface MethodCompiler
public void defineClass(java.lang.String name, StaticScope staticScope, CompilerCallback superCallback, CompilerCallback pathCallback, CompilerCallback bodyCallback, CompilerCallback receiverCallback)
defineClass
in interface MethodCompiler
public void defineModule(java.lang.String name, StaticScope staticScope, CompilerCallback pathCallback, CompilerCallback bodyCallback)
defineModule
in interface MethodCompiler
public void unwrapPassedBlock()
unwrapPassedBlock
in interface MethodCompiler
public void performBackref(char type)
performBackref
in interface MethodCompiler
public void callZSuper(CompilerCallback closure)
callZSuper
in interface MethodCompiler
public void checkIsExceptionHandled()
checkIsExceptionHandled
in interface MethodCompiler
public void rethrowException()
rethrowException
in interface MethodCompiler
public void loadClass(java.lang.String name)
loadClass
in interface MethodCompiler
public void unwrapRaiseException()
unwrapRaiseException
in interface MethodCompiler
public void loadException()
loadException
in interface MethodCompiler
public void setFilePosition(ISourcePosition position)
setFilePosition
in interface MethodCompiler
public void setLinePosition(ISourcePosition position)
setLinePosition
in interface MethodCompiler
public void checkWhenWithSplat()
checkWhenWithSplat
in interface MethodCompiler
public void issueRetryEvent()
issueRetryEvent
in interface MethodCompiler
public void defineNewMethod(java.lang.String name, int methodArity, StaticScope scope, CompilerCallback body, CompilerCallback args, CompilerCallback receiver, ASTInspector inspector, boolean root)
MethodCompiler
defineNewMethod
in interface MethodCompiler
name
- The name to which to bind the resulting method.body
- The callback which will generate the method's body.public void rethrowIfSystemExit()
rethrowIfSystemExit
in interface MethodCompiler
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |