org.jruby.compiler.impl
Class RootScopedBodyCompiler

java.lang.Object
  extended by org.jruby.compiler.impl.BaseBodyCompiler
      extended by org.jruby.compiler.impl.RootScopedBodyCompiler
All Implemented Interfaces:
BodyCompiler
Direct Known Subclasses:
ASMClassBodyCompiler, ChainedRootBodyCompiler, MethodBodyCompiler

public abstract class RootScopedBodyCompiler
extends BaseBodyCompiler

Behaviors common to all "root-scoped" bodies are encapsulated in this class. "Root-scoped" refers to any method body which does not inherit a containing variable scope. This includes method bodies and class bodies.


Field Summary
 
Fields inherited from class org.jruby.compiler.impl.BaseBodyCompiler
argParamCount, currentLoopLabels, inNestedMethod, inspector, invocationCompiler, method, methodName, redoJump, scope, scopeEnd, scopeStart, script, variableCompiler
 
Constructor Summary
protected RootScopedBodyCompiler(StandardASMCompiler scriptCompiler, java.lang.String friendlyName, ASTInspector inspector, StaticScope scope)
           
 
Method Summary
 void beginMethod(CompilerCallback args, StaticScope scope)
           
protected  void createVariableCompiler()
           
 void endBody()
          End compilation for the method associated with the specified token.
protected  java.lang.String getSignature()
           
 void issueBreakEvent(CompilerCallback value)
           
 void issueNextEvent(CompilerCallback value)
           
 void issueRedoEvent()
           
 ChainedRootBodyCompiler outline(java.lang.String methodName)
           
 void performReturn()
          Return the current value on the top of the stack, taking into consideration surrounding blocks.
 
Methods inherited from class org.jruby.compiler.impl.BaseBodyCompiler
aliasGlobal, appendToArray, appendToObjectArray, aprintln, aryToAry, assignClassVariable, assignClassVariable, assignConstantInCurrent, assignConstantInModule, assignConstantInObject, assignGlobalVariable, assignGlobalVariable, assignInstanceVariable, assignInstanceVariable, asString, attached, backref, backrefMethod, branchIfModule, callZSuper, chainToMethod, checkIsExceptionHandled, checkIsJavaExceptionHandled, checkWhenWithSplat, clearErrorInfo, concatArrays, concatObjectArrays, consumeCurrentValue, convertToJavaArray, createEmptyArray, createEmptyHash, createNewArray, createNewArray, createNewBignum, createNewClosure, createNewEndBlock, createNewFixnum, createNewFloat, createNewForLoop, createNewHash, createNewRange, createNewRegexp, createNewString, createNewString, createNewSymbol, createNewSymbol, createObjectArray, createObjectArray, declareClassVariable, declareClassVariable, defineAlias, defineClass, defineModule, defineNewMethod, duplicateCurrentValue, ensureMultipleAssignableRubyArray, ensureRubyArray, forEachInValueArray, getClosureIndex, getCompiledClass, getDynamicScopeIndex, getExceptionIndex, getFirstTempIndex, getFrameKlazz, getFrameName, getInstanceVariable, getInvocationCompiler, getNewEnding, getNewEnsureName, getNewRescueName, getNilIndex, getPreviousExceptionIndex, getRuntimeIndex, getScriptCompiler, getVariableCompiler, getVarsArrayIndex, getVisibilityFor, go, hasBlock, ifNotNull, ifNotSuperMethodBound, ifNull, ifSingleton, inDefined, invokeIRuby, invokeIRubyObject, invokeThreadContext, invokeUtilityMethod, isCaptured, isClassVarDefined, isConstantBranch, isConstantDefined, isGlobalDefined, isInstanceOf, isInstanceVariableDefined, isMethodBound, isNil, isNotProtected, isNull, isPrivate, issueLoopBreak, issueLoopNext, issueLoopRedo, issueRetryEvent, lineNumber, literalSwitch, loadBlock, loadClass, loadCurrentModule, loadException, loadFalse, loadFilename, loadNil, loadNull, loadObject, loadRuntime, loadSelf, loadSymbol, loadThis, loadThreadContext, loadTrue, match, match2, match3, metaclass, negateCurrentValue, notIsModuleAndClassVarDefined, nthRef, nullToNil, outDefined, performBackref, performBooleanBranch, performBooleanLoop, performBooleanLoopLight, performBooleanLoopSafe, performEnsure, performLogicalAnd, performLogicalOr, performRescue, performRescueInner, pollThreadEvents, println, protect, pushNull, pushString, rescue, rethrowException, rethrowIfSystemExit, retrieveClassVariable, retrieveConstant, retrieveConstantFromModule, retrieveGlobalVariable, retrieveInstanceVariable, retrieveSelf, retrieveSelfClass, runBeginBlock, selfIsKindOf, setEnding, setFilePosition, setLinePosition, singlifySplattedValue, splatCurrentValue, storeExceptionInErrorInfo, stringOrNil, superClass, swapValues, toJavaString, typeCheckBranch, undefMethod, unwrapPassedBlock, unwrapRaiseException, wrapJavaException, wrapJavaObject
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RootScopedBodyCompiler

protected RootScopedBodyCompiler(StandardASMCompiler scriptCompiler,
                                 java.lang.String friendlyName,
                                 ASTInspector inspector,
                                 StaticScope scope)
Method Detail

getSignature

protected java.lang.String getSignature()
Specified by:
getSignature in class BaseBodyCompiler

createVariableCompiler

protected void createVariableCompiler()
Specified by:
createVariableCompiler in class BaseBodyCompiler

beginMethod

public void beginMethod(CompilerCallback args,
                        StaticScope scope)
Specified by:
beginMethod in class BaseBodyCompiler

outline

public ChainedRootBodyCompiler outline(java.lang.String methodName)
Specified by:
outline in interface BodyCompiler
Specified by:
outline in class BaseBodyCompiler

endBody

public void endBody()
Description copied from interface: BodyCompiler
End compilation for the method associated with the specified token. This should close out all structures created for compilation of the method.

Specified by:
endBody in interface BodyCompiler
Specified by:
endBody in class BaseBodyCompiler

performReturn

public void performReturn()
Description copied from interface: BodyCompiler
Return the current value on the top of the stack, taking into consideration surrounding blocks.


issueBreakEvent

public void issueBreakEvent(CompilerCallback value)

issueNextEvent

public void issueNextEvent(CompilerCallback value)

issueRedoEvent

public void issueRedoEvent()


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