kmy.jint.gen
Class CodeGenerator
java.lang.Object
|
+--kmy.jint.gen.CodeGenerator
- Direct Known Subclasses:
- JVMClassGenerator
- public class CodeGenerator
- extends java.lang.Object
- implements DefinitionConst, TokenConst
Field Summary |
(package private) int |
markCounter
|
(package private) java.io.PrintWriter |
out
|
(package private) boolean |
reachable
|
Fields inherited from interface kmy.jint.constants.DefinitionConst |
ABSTRACT_FLAG,
ACC_ABSTRACT,
ACC_FINAL,
ACC_INTERFACE,
ACC_MASK,
ACC_NATIVE,
ACC_PRIVATE,
ACC_PROTECTED,
ACC_PUBLIC,
ACC_STATIC,
ACC_SUPER,
ACC_SYNCHRONIZED,
ACC_TRANSIENT,
ACC_VOLATILE,
CONST_FLAG,
EXPLICIT_FLAG,
FINAL_FLAG,
INTERFACE_FLAG,
METHOD_SCOPE_FLAG,
MUST_BE_CLASS_FLAG,
NATIVE_FLAG,
PACKAGE_PRIVATE_FLAG,
PRIVATE_FLAG,
PROTECTED_FLAG,
PUBLIC_FLAG,
SCRIPT_STYLE_FLAG,
SELF_USED_FLAG,
STATIC_FLAG,
STRICT_FLAG,
SYNCHRONIZED_FLAG,
TRANSIENT_FLAG,
VOLATILE_FLAG,
WHERE_FLAG,
WORLD_FLAG |
Fields inherited from interface kmy.jint.constants.TokenConst |
TOK_OPT_BUFFERONLY,
TOK_OPT_DECLARE,
TOK_OPT_GLOBAL,
TOK_OPT_IGNORE,
TOK_OPT_MULTILINE,
TOK_OPT_OFFLINE,
TOK_OPT_RETAINALL,
TOK_OPT_SINGLELINE,
TOK_OPT_STANDALONE,
TOKEN_ABSTRACT,
TOKEN_AE,
TOKEN_AND,
TOKEN_ANDE,
TOKEN_BOOLEAN,
TOKEN_BREAK,
TOKEN_BYTE,
TOKEN_BYVALUE,
TOKEN_CASE,
TOKEN_CATCH,
TOKEN_CHAR,
TOKEN_CLASS,
TOKEN_CONST,
TOKEN_CONTINUE,
TOKEN_DEFAULT,
TOKEN_DO,
TOKEN_DOUBLE,
TOKEN_EE,
TOKEN_ELSE,
TOKEN_EOF,
TOKEN_EXTENDS,
TOKEN_FALSE,
TOKEN_FINAL,
TOKEN_FINALLY,
TOKEN_FLOAT,
TOKEN_FOR,
TOKEN_GE,
TOKEN_GG,
TOKEN_GGE,
TOKEN_GGG,
TOKEN_GGGE,
TOKEN_GOTO,
TOKEN_IF,
TOKEN_IMPLEMENTS,
TOKEN_IMPORT,
TOKEN_INSTANCEOF,
TOKEN_INT,
TOKEN_INTERFACE,
TOKEN_LE,
TOKEN_LL,
TOKEN_LLE,
TOKEN_LONG,
TOKEN_ME,
TOKEN_MM,
TOKEN_NATIVE,
TOKEN_NE,
TOKEN_NEW,
TOKEN_NONE,
TOKEN_NULL,
TOKEN_OR,
TOKEN_ORE,
TOKEN_PACKAGE,
TOKEN_PCE,
TOKEN_PE,
TOKEN_PP,
TOKEN_PRIVATE,
TOKEN_PROTECTED,
TOKEN_PUBLIC,
TOKEN_RETURN,
TOKEN_SE,
TOKEN_SHORT,
TOKEN_SS,
TOKEN_STATIC,
TOKEN_SUPER,
TOKEN_SWITCH,
TOKEN_SYNCHRONIZED,
TOKEN_TE,
TOKEN_THIS,
TOKEN_THREADSAFE,
TOKEN_THROW,
TOKEN_THROWS,
TOKEN_TRANSIENT,
TOKEN_TRUE,
TOKEN_TRY,
TOKEN_V_BOUND,
TOKEN_V_CHAR,
TOKEN_V_DOUBLE,
TOKEN_V_FLOAT,
TOKEN_V_FORM,
TOKEN_V_INT,
TOKEN_V_LONG,
TOKEN_V_PATT,
TOKEN_V_REGEX,
TOKEN_V_STRING,
TOKEN_V_SUBST,
TOKEN_V_TRANS,
TOKEN_VOID,
TOKEN_VOLATILE,
TOKEN_WHERE,
TOKEN_WHILE,
TOKEN_WORD,
TOKEN_XE,
UNARY_MINUS |
Method Summary |
void |
addExceptionHandler(AbstractMark from,
AbstractMark to,
AbstractMark jump,
java.lang.String exceptionClass)
|
void |
addField(int accessFlags,
java.lang.String name,
java.lang.String type,
java.lang.Object value)
Add a field to the class. |
void |
arraylength()
|
void |
athrow()
|
void |
cast(java.lang.String fromType,
java.lang.String toType)
|
void |
close()
|
void |
compare(boolean cmpToZero,
java.lang.String type,
boolean gFlag)
|
void |
dup(java.lang.String type)
|
void |
endMethod()
|
void |
flush()
|
void |
getelement(java.lang.String type)
|
void |
getfield(java.lang.String clazz,
java.lang.String name,
java.lang.String type)
|
int |
getStackDepth()
|
void |
getstatic(java.lang.String clazz,
java.lang.String name,
java.lang.String type)
|
void |
iinc(int var,
int n)
|
void |
insert(java.lang.String what,
java.lang.String under)
|
void |
instnceof(java.lang.String clazz)
|
void |
invokeinterface(java.lang.String clazz,
java.lang.String name,
java.lang.String type)
|
void |
invokespecial(java.lang.String clazz,
java.lang.String name,
java.lang.String type)
|
void |
invokestatic(java.lang.String clazz,
java.lang.String name,
java.lang.String type)
|
void |
invokevirtual(java.lang.String clazz,
java.lang.String name,
java.lang.String type)
|
boolean |
isReachable()
|
void |
jsr(AbstractMark mark,
int stackChange)
|
void |
jump(AbstractMark m)
|
void |
jumpIf(boolean ifTrue,
boolean cmpToZero,
int op,
java.lang.String type,
AbstractMark target)
|
void |
jumpIf(boolean cmpToZero,
int op,
java.lang.String type,
AbstractMark target)
|
void |
jumpIfNot(boolean cmpToZero,
int op,
java.lang.String type,
AbstractMark target)
|
void |
linenumber(int line)
|
void |
load(int var,
java.lang.String type)
|
void |
loadConst(java.lang.Object v)
|
void |
lookupswitch(int[] items,
AbstractMark[] marks,
AbstractMark defaultMark)
|
void |
mark(AbstractMark m)
|
void |
mark(AbstractMark m,
boolean mayBeUnreachable)
|
void |
mark(AbstractMark m,
int stack)
|
void |
monitorenter()
|
void |
monitorexit()
|
void |
newarray(java.lang.String elemType)
|
AbstractMark |
newMark()
|
void |
newmultiarray(java.lang.String arrType,
int depth)
|
void |
newobject(java.lang.String clazz)
|
void |
op(int op,
java.lang.String type)
|
void |
pop(java.lang.String type,
int nelem)
|
void |
putelement(java.lang.String type)
|
void |
putfield(java.lang.String clazz,
java.lang.String name,
java.lang.String type)
|
void |
putstatic(java.lang.String clazz,
java.lang.String name,
java.lang.String type)
|
void |
ret(int var)
|
void |
retrn(java.lang.String type)
|
void |
setInterfaces(java.lang.String[] impl)
|
void |
setSourceFile(java.lang.String file)
|
void |
startMethod(int accessFlags,
java.lang.String name,
java.lang.String type,
java.lang.String[] exceptions)
|
void |
store(int var,
java.lang.String type)
|
void |
swap()
|
void |
tableswitch(int low,
AbstractMark[] marks,
AbstractMark defaultMark)
|
Methods inherited from class java.lang.Object |
,
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
registerNatives,
toString,
wait,
wait,
wait |
markCounter
int markCounter
reachable
boolean reachable
out
java.io.PrintWriter out
CodeGenerator
public CodeGenerator()
CodeGenerator
public CodeGenerator(int acc,
java.lang.String name,
java.lang.String ext)
throws java.io.IOException
flush
public void flush()
throws java.io.IOException
addField
public void addField(int accessFlags,
java.lang.String name,
java.lang.String type,
java.lang.Object value)
- Add a field to the class.
- Parameters:
accessFlags
- access flags (ACC_*) for this field, ored togethername
- field nametype
- type descriptor (not class name)value
- initial value, null for nothing, short numerical
types represented by Integer
setInterfaces
public void setInterfaces(java.lang.String[] impl)
startMethod
public void startMethod(int accessFlags,
java.lang.String name,
java.lang.String type,
java.lang.String[] exceptions)
endMethod
public void endMethod()
setSourceFile
public void setSourceFile(java.lang.String file)
addExceptionHandler
public void addExceptionHandler(AbstractMark from,
AbstractMark to,
AbstractMark jump,
java.lang.String exceptionClass)
linenumber
public void linenumber(int line)
throws java.io.IOException
loadConst
public void loadConst(java.lang.Object v)
throws java.io.IOException
getfield
public void getfield(java.lang.String clazz,
java.lang.String name,
java.lang.String type)
throws java.io.IOException
getstatic
public void getstatic(java.lang.String clazz,
java.lang.String name,
java.lang.String type)
throws java.io.IOException
putfield
public void putfield(java.lang.String clazz,
java.lang.String name,
java.lang.String type)
throws java.io.IOException
putstatic
public void putstatic(java.lang.String clazz,
java.lang.String name,
java.lang.String type)
throws java.io.IOException
store
public void store(int var,
java.lang.String type)
throws java.io.IOException
load
public void load(int var,
java.lang.String type)
throws java.io.IOException
invokevirtual
public void invokevirtual(java.lang.String clazz,
java.lang.String name,
java.lang.String type)
throws java.io.IOException
invokespecial
public void invokespecial(java.lang.String clazz,
java.lang.String name,
java.lang.String type)
throws java.io.IOException
invokeinterface
public void invokeinterface(java.lang.String clazz,
java.lang.String name,
java.lang.String type)
throws java.io.IOException
invokestatic
public void invokestatic(java.lang.String clazz,
java.lang.String name,
java.lang.String type)
throws java.io.IOException
getelement
public void getelement(java.lang.String type)
throws java.io.IOException
putelement
public void putelement(java.lang.String type)
throws java.io.IOException
iinc
public void iinc(int var,
int n)
throws java.io.IOException
newobject
public void newobject(java.lang.String clazz)
throws java.io.IOException
newarray
public void newarray(java.lang.String elemType)
throws java.io.IOException
newmultiarray
public void newmultiarray(java.lang.String arrType,
int depth)
throws java.io.IOException
arraylength
public void arraylength()
throws java.io.IOException
monitorenter
public void monitorenter()
throws java.io.IOException
monitorexit
public void monitorexit()
throws java.io.IOException
newMark
public AbstractMark newMark()
throws java.io.IOException
mark
public void mark(AbstractMark m)
throws java.io.IOException
mark
public void mark(AbstractMark m,
boolean mayBeUnreachable)
throws java.io.IOException
mark
public void mark(AbstractMark m,
int stack)
throws java.io.IOException
jump
public void jump(AbstractMark m)
throws java.io.IOException
jumpIfNot
public void jumpIfNot(boolean cmpToZero,
int op,
java.lang.String type,
AbstractMark target)
throws java.io.IOException
jumpIf
public void jumpIf(boolean cmpToZero,
int op,
java.lang.String type,
AbstractMark target)
throws java.io.IOException
jumpIf
public void jumpIf(boolean ifTrue,
boolean cmpToZero,
int op,
java.lang.String type,
AbstractMark target)
throws java.io.IOException
compare
public void compare(boolean cmpToZero,
java.lang.String type,
boolean gFlag)
throws java.io.IOException
retrn
public void retrn(java.lang.String type)
throws java.io.IOException
jsr
public void jsr(AbstractMark mark,
int stackChange)
throws java.io.IOException
ret
public void ret(int var)
throws java.io.IOException
athrow
public void athrow()
throws java.io.IOException
lookupswitch
public void lookupswitch(int[] items,
AbstractMark[] marks,
AbstractMark defaultMark)
throws java.io.IOException
tableswitch
public void tableswitch(int low,
AbstractMark[] marks,
AbstractMark defaultMark)
throws java.io.IOException
cast
public void cast(java.lang.String fromType,
java.lang.String toType)
throws java.io.IOException
instnceof
public void instnceof(java.lang.String clazz)
throws java.io.IOException
pop
public void pop(java.lang.String type,
int nelem)
throws java.io.IOException
swap
public void swap()
throws java.io.IOException
dup
public void dup(java.lang.String type)
throws java.io.IOException
insert
public void insert(java.lang.String what,
java.lang.String under)
throws java.io.IOException
op
public void op(int op,
java.lang.String type)
throws java.io.IOException
isReachable
public boolean isReachable()
getStackDepth
public int getStackDepth()
close
public void close()
throws java.io.IOException