public static final class Bytecode.If extends AbstractBytecode implements Bytecode.Stmt
An if bytecode has one of the the following layouts:
+--------+-----------+------------+ | opcode | condition | trueBranch | +--------+-----------+------------+
+--------+-----------+------------+-------------+ | opcode | condition | trueBranch | falseBranch | +--------+-----------+------------+-------------+
Here, the condition identifies the condition which determines whether the true branch is taken or not. If not, and there is a false branch, then that is executed. Otherwise, control proceeds to the next logical statement in the enclosing block.
Bytecode.AliasDeclaration, Bytecode.Assert, Bytecode.AssertOrAssume, Bytecode.Assign, Bytecode.Assume, Bytecode.Block, Bytecode.Blocks, Bytecode.Break, Bytecode.Case, Bytecode.Const, Bytecode.Continue, Bytecode.Convert, Bytecode.Debug, Bytecode.DoWhile, Bytecode.Expr, Bytecode.Extras, Bytecode.Fail, Bytecode.FieldLoad, Bytecode.If, Bytecode.Index, Bytecode.IndirectInvoke, Bytecode.Invoke, Bytecode.Lambda, Bytecode.Loop, Bytecode.NamedBlock, Bytecode.OperandGroups, Bytecode.Operands, Bytecode.Operator, Bytecode.OperatorKind, Bytecode.Quantifier, Bytecode.QuantifierKind, Bytecode.Range, Bytecode.Return, Bytecode.Schema, Bytecode.Skip, Bytecode.Stmt, Bytecode.StmtExpr, Bytecode.Switch, Bytecode.Util, Bytecode.VariableAccess, Bytecode.VariableDeclaration, Bytecode.WhileschemasBINARY_ASSIGNABLE, BINARY_OPERATOR, NARY_ASSIGNABLE, OPCODE_add, OPCODE_aliasdecl, OPCODE_all, OPCODE_array, OPCODE_arraygen, OPCODE_arrayindex, OPCODE_arraylength, OPCODE_assert, OPCODE_assign, OPCODE_assume, OPCODE_bitwiseand, OPCODE_bitwiseinvert, OPCODE_bitwiseor, OPCODE_bitwisexor, OPCODE_block, OPCODE_break, OPCODE_const, OPCODE_continue, OPCODE_convert, OPCODE_debug, OPCODE_dereference, OPCODE_div, OPCODE_dowhile, OPCODE_eq, OPCODE_fail, OPCODE_fieldload, OPCODE_ge, OPCODE_gt, OPCODE_if, OPCODE_ifelse, OPCODE_ifis, OPCODE_indirectinvoke, OPCODE_invoke, OPCODE_is, OPCODE_lambda, OPCODE_le, OPCODE_logicaland, OPCODE_logicalnot, OPCODE_logicalor, OPCODE_lt, OPCODE_mul, OPCODE_namedblock, OPCODE_ne, OPCODE_neg, OPCODE_newobject, OPCODE_record, OPCODE_rem, OPCODE_return, OPCODE_shl, OPCODE_shr, OPCODE_skip, OPCODE_some, OPCODE_sub, OPCODE_switch, OPCODE_varcopy, OPCODE_vardecl, OPCODE_vardeclinit, OPCODE_varmove, OPCODE_while, UNARY_ASSIGNABLE, UNARY_OPERATOR| Constructor and Description |
|---|
If(int operand,
int trueBranch) |
If(int operand,
int trueBranch,
int falseBranch) |
| Modifier and Type | Method and Description |
|---|---|
int |
condition() |
int |
falseBranch()
Return the block identifier for the false branch associated with this
bytecode.
|
int |
getOpcode()
Return the opcode value of this bytecode.
|
boolean |
hasFalseBranch()
Check whether this bytecode has a false branch of not.
|
String |
toString() |
int |
trueBranch()
Return the block identifier for the true branch associated with this
bytecode.
|
equals, getBlock, getBlocks, getOperand, getOperandGroup, getOperands, hashCode, numberOfBlocks, numberOfOperandGroups, numberOfOperandsclone, finalize, getClass, notify, notifyAll, wait, wait, waitgetBlock, getBlocks, numberOfBlocksgetOperand, getOperandGroup, getOperands, numberOfOperandGroups, numberOfOperandspublic If(int operand,
int trueBranch)
public If(int operand,
int trueBranch,
int falseBranch)
public int getOpcode()
AbstractBytecodegetOpcode in interface BytecodegetOpcode in class AbstractBytecodepublic int condition()
public boolean hasFalseBranch()
public int trueBranch()
public int falseBranch()
Copyright © 2017. All rights reserved.