org.jruby.compiler.impl
Class StandardASMCompiler
java.lang.Object
org.jruby.compiler.impl.StandardASMCompiler
- All Implemented Interfaces:
- ScriptCompiler
public class StandardASMCompiler
- extends java.lang.Object
- implements ScriptCompiler
- Author:
- headius
Constructor Summary |
StandardASMCompiler(java.lang.String classname,
java.lang.String sourcename)
Creates a new instance of StandardCompilerContext |
Method Summary |
static void |
buildStaticScopeNames(SkinnyMethodAdapter method,
StaticScope scope)
|
void |
dumpClass(java.io.PrintStream out)
|
void |
endScript(boolean generateLoad,
boolean generateMain)
End compilation for the current script, closing all context and structures
used for the compilation. |
int |
getAndIncrementEnsureNumber()
|
int |
getAndIncrementInnerIndex()
|
int |
getAndIncrementMethodIndex()
|
int |
getAndIncrementRescueNumber()
|
CacheCompiler |
getCacheCompiler()
|
byte[] |
getClassByteArray()
|
SkinnyMethodAdapter |
getClassInitMethod()
|
java.lang.String |
getClassname()
|
ClassVisitor |
getClassVisitor()
|
int |
getEnsureNumber()
|
SkinnyMethodAdapter |
getInitMethod()
|
int |
getInnerIndex()
|
int |
getMethodIndex()
|
java.lang.String |
getNewConstant(java.lang.String type,
java.lang.String name_prefix)
|
java.lang.String |
getNewConstant(java.lang.String type,
java.lang.String name_prefix,
java.lang.Object init)
|
java.lang.String |
getNewField(java.lang.String type,
java.lang.String name,
java.lang.Object init)
|
java.lang.String |
getNewStaticConstant(java.lang.String type,
java.lang.String name_prefix)
|
int |
getRescueNumber()
|
java.lang.String |
getSourcename()
|
java.lang.Class<?> |
loadClass(JRubyClassLoader classLoader)
|
BodyCompiler |
startMethod(java.lang.String rubyName,
java.lang.String javaName,
CompilerCallback args,
StaticScope scope,
ASTInspector inspector)
Begin compilation for a method that has the specified number of local variables. |
void |
startScript(StaticScope scope)
Begin compilation for a script, preparing all necessary context and code
to support this script's compiled representation. |
void |
writeClass(java.io.File destination)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
THREADCONTEXT
public static final java.lang.String THREADCONTEXT
RUBY
public static final java.lang.String RUBY
IRUBYOBJECT
public static final java.lang.String IRUBYOBJECT
METHOD_SIGNATURES
public static final java.lang.String[] METHOD_SIGNATURES
CLOSURE_SIGNATURE
public static final java.lang.String CLOSURE_SIGNATURE
THIS
public static final int THIS
- See Also:
- Constant Field Values
THREADCONTEXT_INDEX
public static final int THREADCONTEXT_INDEX
- See Also:
- Constant Field Values
SELF_INDEX
public static final int SELF_INDEX
- See Also:
- Constant Field Values
ARGS_INDEX
public static final int ARGS_INDEX
- See Also:
- Constant Field Values
CLOSURE_OFFSET
public static final int CLOSURE_OFFSET
- See Also:
- Constant Field Values
DYNAMIC_SCOPE_OFFSET
public static final int DYNAMIC_SCOPE_OFFSET
- See Also:
- Constant Field Values
RUNTIME_OFFSET
public static final int RUNTIME_OFFSET
- See Also:
- Constant Field Values
VARS_ARRAY_OFFSET
public static final int VARS_ARRAY_OFFSET
- See Also:
- Constant Field Values
NIL_OFFSET
public static final int NIL_OFFSET
- See Also:
- Constant Field Values
EXCEPTION_OFFSET
public static final int EXCEPTION_OFFSET
- See Also:
- Constant Field Values
PREVIOUS_EXCEPTION_OFFSET
public static final int PREVIOUS_EXCEPTION_OFFSET
- See Also:
- Constant Field Values
FIRST_TEMP_OFFSET
public static final int FIRST_TEMP_OFFSET
- See Also:
- Constant Field Values
invDynInvCompilerConstructor
public static final java.lang.reflect.Constructor invDynInvCompilerConstructor
invDynSupportInstaller
public static final java.lang.reflect.Method invDynSupportInstaller
StandardASMCompiler
public StandardASMCompiler(java.lang.String classname,
java.lang.String sourcename)
- Creates a new instance of StandardCompilerContext
getClassByteArray
public byte[] getClassByteArray()
loadClass
public java.lang.Class<?> loadClass(JRubyClassLoader classLoader)
throws java.lang.ClassNotFoundException
- Throws:
java.lang.ClassNotFoundException
dumpClass
public void dumpClass(java.io.PrintStream out)
writeClass
public void writeClass(java.io.File destination)
throws java.io.IOException
- Throws:
java.io.IOException
getClassname
public java.lang.String getClassname()
getSourcename
public java.lang.String getSourcename()
getClassVisitor
public ClassVisitor getClassVisitor()
startScript
public void startScript(StaticScope scope)
- Description copied from interface:
ScriptCompiler
- Begin compilation for a script, preparing all necessary context and code
to support this script's compiled representation.
- Specified by:
startScript
in interface ScriptCompiler
endScript
public void endScript(boolean generateLoad,
boolean generateMain)
- Description copied from interface:
ScriptCompiler
- End compilation for the current script, closing all context and structures
used for the compilation.
- Specified by:
endScript
in interface ScriptCompiler
buildStaticScopeNames
public static void buildStaticScopeNames(SkinnyMethodAdapter method,
StaticScope scope)
getInitMethod
public SkinnyMethodAdapter getInitMethod()
getClassInitMethod
public SkinnyMethodAdapter getClassInitMethod()
getCacheCompiler
public CacheCompiler getCacheCompiler()
startMethod
public BodyCompiler startMethod(java.lang.String rubyName,
java.lang.String javaName,
CompilerCallback args,
StaticScope scope,
ASTInspector inspector)
- Description copied from interface:
ScriptCompiler
- Begin compilation for a method that has the specified number of local variables.
The returned value is a token that can be used to end the method later.
- Specified by:
startMethod
in interface ScriptCompiler
javaName
- The outward user-readable name of the method. A unique name will be generated based on this.
- Returns:
- An Object that represents the method within this compiler. Used in calls to
endMethod once compilation for this method is completed.
getMethodIndex
public int getMethodIndex()
getAndIncrementMethodIndex
public int getAndIncrementMethodIndex()
getInnerIndex
public int getInnerIndex()
getAndIncrementInnerIndex
public int getAndIncrementInnerIndex()
getRescueNumber
public int getRescueNumber()
getAndIncrementRescueNumber
public int getAndIncrementRescueNumber()
getEnsureNumber
public int getEnsureNumber()
getAndIncrementEnsureNumber
public int getAndIncrementEnsureNumber()
getNewConstant
public java.lang.String getNewConstant(java.lang.String type,
java.lang.String name_prefix)
getNewConstant
public java.lang.String getNewConstant(java.lang.String type,
java.lang.String name_prefix,
java.lang.Object init)
getNewField
public java.lang.String getNewField(java.lang.String type,
java.lang.String name,
java.lang.Object init)
getNewStaticConstant
public java.lang.String getNewStaticConstant(java.lang.String type,
java.lang.String name_prefix)
Copyright © 2002-2007 JRuby Team. All Rights Reserved.