public abstract class AbstractRelational extends AbstractParamOperator implements Jumpable
| 限定符和类型 | 字段和说明 |
|---|---|
protected cn.wensiqun.asmsupport.org.objectweb.asm.Label |
falseLbl |
protected KernelParam |
leftFactor
the left factor of arithmetic
|
protected KernelParam |
rightFactor
the left factor of arithmetic
|
protected AClass |
targetClass |
protected cn.wensiqun.asmsupport.org.objectweb.asm.Label |
trueLbl |
block, insnHelper| 限定符 | 构造器和说明 |
|---|---|
protected |
AbstractRelational(KernelProgramBlock block,
KernelParam leftFactor,
KernelParam rightFactor,
Operator operator) |
| 限定符和类型 | 方法和说明 |
|---|---|
void |
asArgument()
If current
KernelParam has used by other, than need call this method. |
protected void |
checkFactorForNumerical(AClass ftrCls) |
protected void |
defaultStackOperator() |
protected void |
doExecute() |
void |
execute()
Do execute
|
protected abstract void |
factorsToStack() |
AClass |
getResultType() |
protected void |
initAdditionalProperties()
Template for
AbstractOperator.prepare() method. |
protected void |
instructionGenerate() |
void |
jumpNegative(KernelParam from,
cn.wensiqun.asmsupport.org.objectweb.asm.Label posLbl,
cn.wensiqun.asmsupport.org.objectweb.asm.Label negLbl)
To execute negative jump and generate relevant byte code.
|
void |
jumpPositive(KernelParam from,
cn.wensiqun.asmsupport.org.objectweb.asm.Label posLbl,
cn.wensiqun.asmsupport.org.objectweb.asm.Label negLbl)
To execute positive jump and generate relevant byte code.
|
void |
loadToStack(KernelProgramBlock block)
Push current to a stack of specify block
|
protected abstract void |
negativeCmp(cn.wensiqun.asmsupport.org.objectweb.asm.Label lbl) |
protected abstract void |
positiveCmp(cn.wensiqun.asmsupport.org.objectweb.asm.Label lbl) |
fieldautoCast, checkAsArgument, checkCrement, endingPrepare, getBlock, getCompileOrder, getOperatorSymbol, prepare, startingPrepare, verifyArgumenthasNext, next, previousprotected KernelParam leftFactor
protected KernelParam rightFactor
protected AClass targetClass
protected cn.wensiqun.asmsupport.org.objectweb.asm.Label trueLbl
protected cn.wensiqun.asmsupport.org.objectweb.asm.Label falseLbl
protected AbstractRelational(KernelProgramBlock block, KernelParam leftFactor, KernelParam rightFactor, Operator operator)
protected void initAdditionalProperties()
AbstractOperatorAbstractOperator.prepare() method. protected final void checkFactorForNumerical(AClass ftrCls)
public void loadToStack(KernelProgramBlock block)
PushStackableloadToStack 在接口中 PushStackablepublic void execute()
Executableexecute 在接口中 Executableexecute 在类中 AbstractOperatorpublic AClass getResultType()
getResultType 在接口中 IParampublic void asArgument()
KernelParamKernelParam has used by other, than need call this method.asArgument 在接口中 KernelParamprotected abstract void factorsToStack()
protected void doExecute()
doExecute 在类中 AbstractOperatorprotected void instructionGenerate()
protected void defaultStackOperator()
public void jumpPositive(KernelParam from, cn.wensiqun.asmsupport.org.objectweb.asm.Label posLbl, cn.wensiqun.asmsupport.org.objectweb.asm.Label negLbl)
JumpableTo execute positive jump and generate relevant byte code.
For example : the operator '1 == 1' then the positive jump is if_icmpeq.
the operator 'if(isTrue()){ ... }'(here we suppose the method isTrue)
return boolean value, then the positive jump is ifne
jumpPositive 在接口中 Jumpablepublic void jumpNegative(KernelParam from, cn.wensiqun.asmsupport.org.objectweb.asm.Label posLbl, cn.wensiqun.asmsupport.org.objectweb.asm.Label negLbl)
JumpableTo execute negative jump and generate relevant byte code.
For example : the operator '1 == 1' then the negative jump is if_icmpne.
the operator 'if(isTrue()){ ... }'(here we suppose the method isTrue)
return boolean value, then the positive jump is ifeq
jumpNegative 在接口中 Jumpableprotected abstract void negativeCmp(cn.wensiqun.asmsupport.org.objectweb.asm.Label lbl)
protected abstract void positiveCmp(cn.wensiqun.asmsupport.org.objectweb.asm.Label lbl)
Copyright © 2015. All rights reserved.