public static final class Bytecode.Assign extends AbstractBytecode implements Bytecode.Stmt
An assignment bytecode has the following layout:
+--------+----------------+-----------------+ | opcode | leftHandSide[] | rightHandSide[] | +--------+----------------+-----------------+
Here, the left-hand side identifies zero or more operands which are being assigned to, whilst the right-hand side identifies one or more operands which whose results are being assigned. The left-hand side may have fewer operands than the right-hand side. This happens, for example, in the case of an invocation where the result is ignored.
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 |
|---|
Assign(int[] lhs,
int[] rhs)
Construct an assignment from a right-hand operand to a left-hand
operand.
|
Assign(int lhs,
int rhs)
Construct an assignment from a right-hand operand to a left-hand
operand.
|
| Modifier and Type | Method and Description |
|---|---|
int |
getOpcode()
Return the opcode value of this bytecode.
|
int[] |
leftHandSide()
Returns operand(s) from which assigned value is written to.
|
int[] |
rightHandSide()
Returns operand(s) from which assigned value is read.
|
String |
toString() |
equals, getBlock, getBlocks, getOperand, getOperandGroup, getOperands, hashCode, numberOfBlocks, numberOfOperandGroups, numberOfOperandsclone, finalize, getClass, notify, notifyAll, wait, wait, waitgetBlock, getBlocks, numberOfBlocksgetOperand, getOperandGroup, getOperands, numberOfOperandGroups, numberOfOperandspublic Assign(int lhs,
int rhs)
lhs - LVal on left-hand side which is assigned torhs - Operand on right-hand side whose value is assignedpublic Assign(int[] lhs,
int[] rhs)
lhs - LVal on left-hand side which is assigned torhs - Operand on right-hand side whose value is assignedpublic int getOpcode()
AbstractBytecodegetOpcode in interface BytecodegetOpcode in class AbstractBytecodepublic int[] leftHandSide()
public int[] rightHandSide()
Copyright © 2017. All rights reserved.