package traversal
- Source
- package.scala
- Alphabetic
- By Inheritance
- traversal
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Type Members
- class SectionTransformer[F[_], Ctx] extends AnyRef
- class SectionTraverser[F[_], Res] extends AnyRef
- class Transformer[F[_], Ctx] extends AnyRef
Transforms a WebAssembly program into another one.
Transforms a WebAssembly program into another one. Tree traversal is performed in bottom-up order, with a _preparation_ phase for recursive instructions to upgrade the context before inspecting children.
Every instruction has a default noop
transform
method, as well as a instruction categories (see groupCategory
for instructions).To implement your own transformation, you can override the methods that need specific handling.
A Transformer is a cats.Semigroup, two transformers can be merged into one, based on the approach presented in Miniphases: Compilation using Modular and Efficient Tree Transformations. When merged, two transformers are fused, making it possible to perform both transformations in one tree traversal only. Make sure your transformations respect the criteria defined in section 6 of the Miniphase paper to fuse them, otherwise, behavior of the result won't be the expected one. If not, transformations cannot be fused, and must be chained one after the other and perform two tree traversals.
- class Traverser[F[_], Res] extends AnyRef
Traverses a WebAssembly program and computes some result.
Traverses a WebAssembly program and computes some result. Tree traversal is performed in bottom-up order, with a _preparation_ phase for recursive instructions to upgrade the context before inspecting children.
Every instruction has a default noop
traverse
method, as well as a instruction categories (see groupCategory
for instructions).To implement your own traversal, you can override the methods that need specific handling.
- implicit final class VectorOps[A] extends AnyVal
Value Members
- object Transformer