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_RECORD, 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, ASM10_EXPERIMENTAL, ASM4, ASM5, ASM6, ASM7, ASM8, ASM9, 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, V14, V15, V16, V17, V18, V19, 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.IOException
public void addRunnable() throws java.io.IOException
java.io.IOException
public void addMain() throws java.io.IOException
java.io.IOException
public void addBootstrap() throws java.io.IOException
java.io.IOException
public void addFunctions() throws java.io.IOException
java.io.IOException
public void write(java.io.OutputStream stream) throws java.io.IOException
java.io.IOException
public Future getFutures()
getFutures
in interface CompilationContext
public java.lang.String getFilename()
getFilename
in interface CompilationContext
public ScopeInfo getScopeInfo(PythonTree node)
getScopeInfo
in interface CompilationContext
public void error(java.lang.String msg, boolean err, PythonTree node) throws java.lang.Exception
error
in interface CompilationContext
java.lang.Exception
public 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.Exception
protected static void _module_init(mod node, Module module, boolean printResults, CompilerFlags cflags) throws java.lang.Exception
java.lang.Exception
public 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.Exception
public void emitNum(Num node, Code code) throws java.lang.Exception
java.lang.Exception
public void emitStr(Str node, Code code) throws java.lang.Exception
java.lang.Exception
public boolean emitPrimitiveArraySetters(java.util.List<? extends PythonTree> nodes, Code code) throws java.lang.Exception
java.lang.Exception