This file implements the expression evaluation part of the stackless bytecode interpreter.
This file implements the information needed in the local interpretation context, i.e., the
context created and updated when interpreting a single function.
This file implements the statement interpretation part of the stackless bytecode interpreter.
This file implements the orchestration part of the stackless bytecode interpreter and also
provides outside-facing interfaces for the clients of stackless bytecode interpreter. Clients
of the interpreter should never directly interact with the statement player (in player.rs
) nor
the expression evaluator (in evaluator.rs
).
The type system in move-model is a fat type system that is designed to cover all cases that can
possibly appear in the whole bytecode transformation pipeline. Natually, this means that some
types are no longer applicable when the Move program reaches the end of the transformation.
This file implements several value representations to track values produced and consumed during
the statement interpretation and expression evaluation process. The value representations are
carefully designed to match the type system. In particular, BaseValue
must match BaseType
and TypedValue
must match Type
(by match, we mean each value must have a way to type it,
and each type must also have a way to construct a value of this type).