Wax_wasm.AstSourceWebAssembly Abstract Syntax Tree.
An annotated tree node.
type location = Wax_utils.Ast.location = {loc_start : Lexing.position;loc_end : Lexing.position;}A source code location.
no_loc d creates an annotated node with a dummy location.
The set of types produced by Make_types, abstracted over the index and array-wrapper representations. Naming it lets Map_types map the whole family from one instance to another.
module Make_types
(X : sig ... end) :
TYPES
with type idx = X.idx
and type 'a annotated_array = 'a X.annotated_array
and type 'a opt_annotated_array = 'a X.opt_annotated_arrayMap the heaptype/reftype/valtype/storagetype/fieldtype family from one Make_types instance to another. Only the idx-carrying arms differ between instances; everything else is copied through. ctx is threaded to M.idx so a mapper that resolves or renames indices can carry its context (a name map, a symbol table, …).
Extends Map_types_spine to the whole type family. The array wrappers differ per instance, so the caller supplies how to map each one; the functype/comptype/subtype/rectype structure is copied through.
type vec_un_op = | VecNeg of vec_shape| VecAbs of vec_shape| VecSqrt of [ `F32 | `F64 ]| VecNot| VecTruncSat of [ `F32 | `F64 ] * signage| VecConvert of [ `F32 | `F64 ] * signage| VecExtend of [ `Low | `High ] * [ `_8 | `_16 | `_32 ] * signage| VecPromote| VecDemote| VecCeil of [ `F32 | `F64 ]| VecFloor of [ `F32 | `F64 ]| VecTrunc of [ `F32 | `F64 ]| VecNearest of [ `F32 | `F64 ]| VecPopcnt| VecExtAddPairwise of signage * [ `I8 | `I16 ]| VecRelaxedTrunc of signage| VecRelaxedTruncZero of signagetype vec_bin_op = | VecAdd of vec_shape| VecSub of vec_shape| VecMul of vec_shape| VecDiv of [ `F32 | `F64 ]| VecMin of signage option * vec_shape| VecMax of signage option * vec_shape| VecPMin of [ `F32 | `F64 ]| VecPMax of [ `F32 | `F64 ]| VecAvgr of [ `I8 | `I16 ]| VecQ15MulrSat| VecAddSat of signage * [ `I8 | `I16 ]| VecSubSat of signage * [ `I8 | `I16 ]| VecDot| VecEq of vec_shape| VecNe of vec_shape| VecLt of signage option * vec_shape| VecGt of signage option * vec_shape| VecLe of signage option * vec_shape| VecGe of signage option * vec_shape| VecAnd| VecOr| VecXor| VecAndNot| VecNarrow of signage * [ `I8 | `I16 ]| VecSwizzle| VecExtMulLow of signage * [ `_8 | `_16 | `_32 ]| VecExtMulHigh of signage * [ `_8 | `_16 | `_32 ]| VecRelaxedSwizzle| VecRelaxedMin of vec_shape| VecRelaxedMax of vec_shape| VecRelaxedQ15Mulr| VecRelaxedDottype atomicop = | AtomicNotify| AtomicWait of [ `I32 | `I64 ]| AtomicLoad of [ `I32 | `I64 ] * [ `I8 | `I16 | `I32 ] option| AtomicStore of [ `I32 | `I64 ] * [ `I8 | `I16 | `I32 ] option| AtomicRmw of atomic_rmwop * [ `I32 | `I64 ] * [ `I8 | `I16 | `I32 ] optionFunctor to create instructions for a given implementation of indices and types.
Wasm Text format specific AST.
Wasm Binary format specific AST.