public class Module extends java.lang.Object implements org.objectweb.asm.Opcodes, ClassConstants, CompilationContext
| Modifier and Type | Field and Description |
|---|---|
protected java.util.Hashtable<java.lang.String,java.lang.String> |
oversized_methods
Table of oversized methods represented as CPython bytecode.
|
AALOAD, AASTORE, ACC_ABSTRACT, ACC_ANNOTATION, ACC_BRIDGE, ACC_DEPRECATED, ACC_ENUM, ACC_FINAL, ACC_INTERFACE, ACC_MANDATED, ACC_MODULE, ACC_NATIVE, ACC_OPEN, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_STATIC_PHASE, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_SYNTHETIC, ACC_TRANSIENT, ACC_TRANSITIVE, ACC_VARARGS, ACC_VOLATILE, ACONST_NULL, ALOAD, ANEWARRAY, ARETURN, ARRAYLENGTH, ASM4, ASM5, ASM6, ASM7, ASTORE, ATHROW, BALOAD, BASTORE, BIPUSH, CALOAD, CASTORE, CHECKCAST, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST_0, DCONST_1, DDIV, DLOAD, DMUL, DNEG, DOUBLE, DREM, DRETURN, DSTORE, DSUB, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, F_APPEND, F_CHOP, F_FULL, F_NEW, F_SAME, F_SAME1, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FLOAD, FLOAT, FMUL, FNEG, FREM, FRETURN, FSTORE, FSUB, GETFIELD, GETSTATIC, GOTO, H_GETFIELD, H_GETSTATIC, H_INVOKEINTERFACE, H_INVOKESPECIAL, H_INVOKESTATIC, H_INVOKEVIRTUAL, H_NEWINVOKESPECIAL, H_PUTFIELD, H_PUTSTATIC, I2B, I2C, I2D, I2F, I2L, I2S, IADD, IALOAD, IAND, IASTORE, ICONST_0, ICONST_1, ICONST_2, ICONST_3, ICONST_4, ICONST_5, ICONST_M1, IDIV, IF_ACMPEQ, IF_ACMPNE, IF_ICMPEQ, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ICMPLT, IF_ICMPNE, IFEQ, IFGE, IFGT, IFLE, IFLT, IFNE, IFNONNULL, IFNULL, IINC, ILOAD, IMUL, INEG, INSTANCEOF, INTEGER, INVOKEDYNAMIC, INVOKEINTERFACE, INVOKESPECIAL, INVOKESTATIC, INVOKEVIRTUAL, IOR, IREM, IRETURN, ISHL, ISHR, ISTORE, ISUB, IUSHR, IXOR, JSR, L2D, L2F, L2I, LADD, LALOAD, LAND, LASTORE, LCMP, LCONST_0, LCONST_1, LDC, LDIV, LLOAD, LMUL, LNEG, LONG, LOOKUPSWITCH, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE, LSUB, LUSHR, LXOR, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, NEW, NEWARRAY, NOP, NULL, POP, POP2, PUTFIELD, PUTSTATIC, RET, RETURN, SALOAD, SASTORE, SIPUSH, SOURCE_DEPRECATED, SOURCE_MASK, SWAP, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT, TABLESWITCH, TOP, UNINITIALIZED_THIS, V_PREVIEW, V1_1, V1_2, V1_3, V1_4, V1_5, V1_6, V1_7, V1_8, V10, V11, V12, V13, V9$clss, $obj, $objArr, $pyCode, $pyComplex, $pyExc, $pyFloat, $pyFrame, $pyFuncTbl, $pyInteger, $pyLong, $pyObj, $pyObjArr, $pyProxy, $pyRunnable, $pyStr, $pyUnicode, $str, $strArr, $threadState, $throwable| Constructor and Description |
|---|
Module(java.lang.String name) |
Module(java.lang.String name,
java.lang.String filename,
boolean linenumbers) |
Module(java.lang.String name,
java.lang.String filename,
boolean linenumbers,
long mtime) |
| Modifier and Type | Method and Description |
|---|---|
protected static void |
_module_init(mod node,
Module module,
boolean printResults,
CompilerFlags cflags) |
void |
addBootstrap() |
void |
addFunctions() |
void |
addInit()
This block of code writes out the various standard methods
|
void |
addMain() |
void |
addRunnable() |
static void |
compile(mod node,
java.io.OutputStream ostream,
java.lang.String name,
java.lang.String filename,
boolean linenumbers,
boolean printResults,
CompilerFlags cflags) |
static void |
compile(mod node,
java.io.OutputStream ostream,
java.lang.String name,
java.lang.String filename,
boolean linenumbers,
boolean printResults,
CompilerFlags cflags,
long mtime)
Create and write a Python module as a Java class file.
|
void |
emitNum(Num node,
Code code) |
boolean |
emitPrimitiveArraySetters(java.util.List<? extends PythonTree> nodes,
Code code) |
void |
emitStr(Str node,
Code code) |
void |
error(java.lang.String msg,
boolean err,
PythonTree node) |
java.lang.String |
getFilename() |
Future |
getFutures() |
ScopeInfo |
getScopeInfo(PythonTree node) |
void |
write(java.io.OutputStream stream) |
protected java.util.Hashtable<java.lang.String,java.lang.String> oversized_methods
public Module(java.lang.String name,
java.lang.String filename,
boolean linenumbers)
public Module(java.lang.String name,
java.lang.String filename,
boolean linenumbers,
long mtime)
public Module(java.lang.String name)
public void addInit()
throws java.io.IOException
java.io.IOExceptionpublic void addRunnable()
throws java.io.IOException
java.io.IOExceptionpublic void addMain()
throws java.io.IOException
java.io.IOExceptionpublic void addBootstrap()
throws java.io.IOException
java.io.IOExceptionpublic void addFunctions()
throws java.io.IOException
java.io.IOExceptionpublic void write(java.io.OutputStream stream)
throws java.io.IOException
java.io.IOExceptionpublic Future getFutures()
getFutures in interface CompilationContextpublic java.lang.String getFilename()
getFilename in interface CompilationContextpublic ScopeInfo getScopeInfo(PythonTree node)
getScopeInfo in interface CompilationContextpublic void error(java.lang.String msg,
boolean err,
PythonTree node)
throws java.lang.Exception
error in interface CompilationContextjava.lang.Exceptionpublic static void compile(mod node, java.io.OutputStream ostream, java.lang.String name, java.lang.String filename, boolean linenumbers, boolean printResults, CompilerFlags cflags) throws java.lang.Exception
java.lang.Exceptionprotected static void _module_init(mod node, Module module, boolean printResults, CompilerFlags cflags) throws java.lang.Exception
java.lang.Exceptionpublic static void compile(mod node, java.io.OutputStream ostream, java.lang.String name, java.lang.String filename, boolean linenumbers, boolean printResults, CompilerFlags cflags, long mtime) throws java.lang.Exception
node - AST of the module to writeostream - stream onto which to write itname - filename - linenumbers - printResults - cflags - mtime - java.lang.Exceptionpublic void emitNum(Num node, Code code) throws java.lang.Exception
java.lang.Exceptionpublic void emitStr(Str node, Code code) throws java.lang.Exception
java.lang.Exceptionpublic boolean emitPrimitiveArraySetters(java.util.List<? extends PythonTree> nodes, Code code) throws java.lang.Exception
java.lang.Exception