public static final class Bytecode.Lambda extends AbstractBytecode implements Bytecode.Expr
A lambda bytecode has the following layout:
+--------+------+-------------+---------------+ | opcode | body | parameter[] | environment[] | +--------+------+-------------+---------------+
Here, the body operand identifies an expression which constitutes the body of this lambda. The parameters are those variables which are declared by the lambda itself for use within the lambda body. The environment identifies those variables from the surrounding environment.
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 |
|---|
Lambda(Type.FunctionOrMethod type,
int body,
int[] parameters,
int[] environment)
Create a new lambda bytecode
|
| Modifier and Type | Method and Description |
|---|---|
int |
body() |
int[] |
environment() |
boolean |
equals(Object o) |
int |
getOpcode()
Return the opcode value of this bytecode.
|
int |
hashCode() |
int[] |
parameters() |
String |
toString() |
Type.FunctionOrMethod |
type() |
getBlock, getBlocks, getOperand, getOperandGroup, getOperands, numberOfBlocks, numberOfOperandGroups, numberOfOperandsclone, finalize, getClass, notify, notifyAll, wait, wait, waitgetOperand, getOperandGroup, getOperands, numberOfOperandGroups, numberOfOperandspublic Lambda(Type.FunctionOrMethod type, int body, int[] parameters, int[] environment)
type - The type of the resulting lambda.body - The expression corresponding to the body of the lambda
expression.parameters - The set of declared variables using within the lambda
expression.environment - The set of variables from the enclosing scope which are
used within the lambda body.public int getOpcode()
AbstractBytecodegetOpcode in interface BytecodegetOpcode in class AbstractBytecodepublic Type.FunctionOrMethod type()
public int body()
public int[] parameters()
public int[] environment()
public boolean equals(Object o)
equals in class AbstractBytecodepublic int hashCode()
hashCode in class AbstractBytecodeCopyright © 2017. All rights reserved.