org.jruby.compiler.impl
Class StandardASMCompiler

java.lang.Object
  extended by org.jruby.compiler.impl.StandardASMCompiler
All Implemented Interfaces:
ScriptCompiler

public class StandardASMCompiler
extends java.lang.Object
implements ScriptCompiler

Author:
headius

Field Summary
static int ARGS_INDEX
           
static int CLOSURE_OFFSET
           
static java.lang.String CLOSURE_SIGNATURE
           
static int DYNAMIC_SCOPE_OFFSET
           
static int EXCEPTION_OFFSET
           
static int FIRST_TEMP_OFFSET
           
static java.lang.reflect.Constructor invDynInvCompilerConstructor
           
static java.lang.reflect.Method invDynSupportInstaller
           
static java.lang.String IRUBYOBJECT
           
static java.lang.String[] METHOD_SIGNATURES
           
static int NIL_OFFSET
           
static int PREVIOUS_EXCEPTION_OFFSET
           
static java.lang.String RUBY
           
static int RUNTIME_OFFSET
           
static int SELF_INDEX
           
static int THIS
           
static java.lang.String THREADCONTEXT
           
static int THREADCONTEXT_INDEX
           
static int VARS_ARRAY_OFFSET
           
 
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
 

Field Detail

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
Constructor Detail

StandardASMCompiler

public StandardASMCompiler(java.lang.String classname,
                           java.lang.String sourcename)
Creates a new instance of StandardCompilerContext

Method Detail

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.