class Traverser[F[_], Res] extends AnyRef
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 group Category
for instructions).
To implement your own traversal, you can override the methods that need specific handling.
- Source
- Traverser.scala
Linear Supertypes
Ordering
- Alphabetic
- By Inheritance
Inherited
- Traverser
- AnyRef
- Any
- Hide All
- Show All
Visibility
- Public
- Protected
Instance Constructors
- new Traverser()(implicit F: Monad[F])
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- val binopTraverse: (Res, Binop) => F[Res]
- val blockPrepare: (Res, Block) => F[Res]
- val blockTraverse: (Res, Block) => F[Res]
- val brIfTraverse: (Res, BrIf) => F[Res]
- val brTableTraverse: (Res, BrTable) => F[Res]
- val brTraverse: (Res, Br) => F[Res]
- val callIndirectTraverse: (Res, CallIndirect) => F[Res]
- val callTraverse: (Res, Call) => F[Res]
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
- val constTraverse: (Res, AConst) => F[Res]
- val convertopTraverse: (Res, Convertop) => F[Res]
- val dropTraverse: (Res, Drop.type) => F[Res]
- val elsePrepare: (Res, If) => F[Res]
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- val f32AbsTraverse: (Res, Abs.type) => F[Res]
- val f32AddTraverse: (Res, Add.type) => F[Res]
- val f32CeilTraverse: (Res, Ceil.type) => F[Res]
- val f32ConstTraverse: (Res, Const) => F[Res]
- val f32ConvertSI32Traverse: (Res, ConvertSI32.type) => F[Res]
- val f32ConvertSI64Traverse: (Res, ConvertSI64.type) => F[Res]
- val f32ConvertUI32Traverse: (Res, ConvertUI32.type) => F[Res]
- val f32ConvertUI64Traverse: (Res, ConvertUI64.type) => F[Res]
- val f32CopysignTraverse: (Res, Copysign.type) => F[Res]
- val f32DemoteF64Traverse: (Res, DemoteF64.type) => F[Res]
- val f32DivTraverse: (Res, Div.type) => F[Res]
- val f32EqTraverse: (Res, Eq.type) => F[Res]
- val f32FloorTraverse: (Res, Floor.type) => F[Res]
- val f32GeTraverse: (Res, Ge.type) => F[Res]
- val f32GtTraverse: (Res, Gt.type) => F[Res]
- val f32LeTraverse: (Res, Le.type) => F[Res]
- val f32LoadTraverse: (Res, Load) => F[Res]
- val f32LtTraverse: (Res, Lt.type) => F[Res]
- val f32MaxTraverse: (Res, Max.type) => F[Res]
- val f32MinTraverse: (Res, Min.type) => F[Res]
- val f32MulTraverse: (Res, Mul.type) => F[Res]
- val f32NeTraverse: (Res, Ne.type) => F[Res]
- val f32NearestTraverse: (Res, Nearest.type) => F[Res]
- val f32NegTraverse: (Res, Neg.type) => F[Res]
- val f32ReinterpretI32Traverse: (Res, ReinterpretI32.type) => F[Res]
- val f32SqrtTraverse: (Res, Sqrt.type) => F[Res]
- val f32StoreTraverse: (Res, Store) => F[Res]
- val f32SubTraverse: (Res, Sub.type) => F[Res]
- val f32TruncTraverse: (Res, Trunc.type) => F[Res]
- val f64AbsTraverse: (Res, Abs.type) => F[Res]
- val f64AddTraverse: (Res, Add.type) => F[Res]
- val f64CeilTraverse: (Res, Ceil.type) => F[Res]
- val f64ConstTraverse: (Res, Const) => F[Res]
- val f64ConvertSI32Traverse: (Res, ConvertSI32.type) => F[Res]
- val f64ConvertSI64Traverse: (Res, ConvertSI64.type) => F[Res]
- val f64ConvertUI32Traverse: (Res, ConvertUI32.type) => F[Res]
- val f64ConvertUI64Traverse: (Res, ConvertUI64.type) => F[Res]
- val f64CopysignTraverse: (Res, Copysign.type) => F[Res]
- val f64DivTraverse: (Res, Div.type) => F[Res]
- val f64EqTraverse: (Res, Eq.type) => F[Res]
- val f64FloorTraverse: (Res, Floor.type) => F[Res]
- val f64GeTraverse: (Res, Ge.type) => F[Res]
- val f64GtTraverse: (Res, Gt.type) => F[Res]
- val f64LeTraverse: (Res, Le.type) => F[Res]
- val f64LoadTraverse: (Res, Load) => F[Res]
- val f64LtTraverse: (Res, Lt.type) => F[Res]
- val f64MaxTraverse: (Res, Max.type) => F[Res]
- val f64MinTraverse: (Res, Min.type) => F[Res]
- val f64MulTraverse: (Res, Mul.type) => F[Res]
- val f64NeTraverse: (Res, Ne.type) => F[Res]
- val f64NearestTraverse: (Res, Nearest.type) => F[Res]
- val f64NegTraverse: (Res, Neg.type) => F[Res]
- val f64PromoteF32Traverse: (Res, PromoteF32.type) => F[Res]
- val f64ReinterpretI64Traverse: (Res, ReinterpretI64.type) => F[Res]
- val f64SqrtTraverse: (Res, Sqrt.type) => F[Res]
- val f64StoreTraverse: (Res, Store) => F[Res]
- val f64SubTraverse: (Res, Sub.type) => F[Res]
- val f64TruncTraverse: (Res, Trunc.type) => F[Res]
- val fst: (Res, Inst) => F[Res]
- Attributes
- protected[this]
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- val globalGetTraverse: (Res, GlobalGet) => F[Res]
- val globalSetTraverse: (Res, GlobalSet) => F[Res]
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- val i32AddTraverse: (Res, Add.type) => F[Res]
- val i32AndTraverse: (Res, And.type) => F[Res]
- val i32ClzTraverse: (Res, Clz.type) => F[Res]
- val i32ConstTraverse: (Res, Const) => F[Res]
- val i32CtzTraverse: (Res, Ctz.type) => F[Res]
- val i32DivSTraverse: (Res, DivS.type) => F[Res]
- val i32DivUTraverse: (Res, DivU.type) => F[Res]
- val i32EqTraverse: (Res, Eq.type) => F[Res]
- val i32EqzTraverse: (Res, Eqz.type) => F[Res]
- val i32Extend16STraverse: (Res, Extend16S.type) => F[Res]
- val i32Extend8STraverse: (Res, Extend8S.type) => F[Res]
- val i32GeSTraverse: (Res, GeS.type) => F[Res]
- val i32GeUTraverse: (Res, GeU.type) => F[Res]
- val i32GtSTraverse: (Res, GtS.type) => F[Res]
- val i32GtUTraverse: (Res, GtU.type) => F[Res]
- val i32LeSTraverse: (Res, LeS.type) => F[Res]
- val i32LeUTraverse: (Res, LeU.type) => F[Res]
- val i32Load16STraverse: (Res, Load16S) => F[Res]
- val i32Load16UTraverse: (Res, Load16U) => F[Res]
- val i32Load8STraverse: (Res, Load8S) => F[Res]
- val i32Load8UTraverse: (Res, Load8U) => F[Res]
- val i32LoadTraverse: (Res, Load) => F[Res]
- val i32LtSTraverse: (Res, LtS.type) => F[Res]
- val i32LtUTraverse: (Res, LtU.type) => F[Res]
- val i32MulTraverse: (Res, Mul.type) => F[Res]
- val i32NeTraverse: (Res, Ne.type) => F[Res]
- val i32OrTraverse: (Res, Or.type) => F[Res]
- val i32PopcntTraverse: (Res, Popcnt.type) => F[Res]
- val i32ReinterpretF32Traverse: (Res, ReinterpretF32.type) => F[Res]
- val i32RemSTraverse: (Res, RemS.type) => F[Res]
- val i32RemUTraverse: (Res, RemU.type) => F[Res]
- val i32RotlTraverse: (Res, Rotl.type) => F[Res]
- val i32RotrTraverse: (Res, Rotr.type) => F[Res]
- val i32ShlTraverse: (Res, Shl.type) => F[Res]
- val i32ShrSTraverse: (Res, ShrS.type) => F[Res]
- val i32ShrUTraverse: (Res, ShrU.type) => F[Res]
- val i32Store16Traverse: (Res, Store16) => F[Res]
- val i32Store8Traverse: (Res, Store8) => F[Res]
- val i32StoreTraverse: (Res, Store) => F[Res]
- val i32SubTraverse: (Res, Sub.type) => F[Res]
- val i32TruncSF32Traverse: (Res, TruncSF32.type) => F[Res]
- val i32TruncSF64Traverse: (Res, TruncSF64.type) => F[Res]
- val i32TruncSatSF32Traverse: (Res, TruncSatSF32.type) => F[Res]
- val i32TruncSatSF64Traverse: (Res, TruncSatSF64.type) => F[Res]
- val i32TruncSatUF32Traverse: (Res, TruncSatUF32.type) => F[Res]
- val i32TruncSatUF64Traverse: (Res, TruncSatUF64.type) => F[Res]
- val i32TruncUF32Traverse: (Res, TruncUF32.type) => F[Res]
- val i32TruncUF64Traverse: (Res, TruncUF64.type) => F[Res]
- val i32WrapI64Traverse: (Res, WrapI64.type) => F[Res]
- val i32XorTraverse: (Res, Xor.type) => F[Res]
- val i64AddTraverse: (Res, Add.type) => F[Res]
- val i64AndTraverse: (Res, And.type) => F[Res]
- val i64ClzTraverse: (Res, Clz.type) => F[Res]
- val i64ConstTraverse: (Res, Const) => F[Res]
- val i64CtzTraverse: (Res, Ctz.type) => F[Res]
- val i64DivSTraverse: (Res, DivS.type) => F[Res]
- val i64DivUTraverse: (Res, DivU.type) => F[Res]
- val i64EqTraverse: (Res, Eq.type) => F[Res]
- val i64EqzTraverse: (Res, Eqz.type) => F[Res]
- val i64Extend16STraverse: (Res, Extend16S.type) => F[Res]
- val i64Extend32STraverse: (Res, Extend32S.type) => F[Res]
- val i64Extend8STraverse: (Res, Extend8S.type) => F[Res]
- val i64ExtendSI32Traverse: (Res, ExtendSI32.type) => F[Res]
- val i64ExtendUI32Traverse: (Res, ExtendUI32.type) => F[Res]
- val i64GeSTraverse: (Res, GeS.type) => F[Res]
- val i64GeUTraverse: (Res, GeU.type) => F[Res]
- val i64GtSTraverse: (Res, GtS.type) => F[Res]
- val i64GtUTraverse: (Res, GtU.type) => F[Res]
- val i64LeSTraverse: (Res, LeS.type) => F[Res]
- val i64LeUTraverse: (Res, LeU.type) => F[Res]
- val i64Load16STraverse: (Res, Load16S) => F[Res]
- val i64Load16UTraverse: (Res, Load16U) => F[Res]
- val i64Load32STraverse: (Res, Load32S) => F[Res]
- val i64Load32UTraverse: (Res, Load32U) => F[Res]
- val i64Load8STraverse: (Res, Load8S) => F[Res]
- val i64Load8UTraverse: (Res, Load8U) => F[Res]
- val i64LoadTraverse: (Res, Load) => F[Res]
- val i64LtSTraverse: (Res, LtS.type) => F[Res]
- val i64LtUTraverse: (Res, LtU.type) => F[Res]
- val i64MulTraverse: (Res, Mul.type) => F[Res]
- val i64NeTraverse: (Res, Ne.type) => F[Res]
- val i64OrTraverse: (Res, Or.type) => F[Res]
- val i64PopcntTraverse: (Res, Popcnt.type) => F[Res]
- val i64ReinterpretF64Traverse: (Res, ReinterpretF64.type) => F[Res]
- val i64RemSTraverse: (Res, RemS.type) => F[Res]
- val i64RemUTraverse: (Res, RemU.type) => F[Res]
- val i64RotlTraverse: (Res, Rotl.type) => F[Res]
- val i64RotrTraverse: (Res, Rotr.type) => F[Res]
- val i64ShlTraverse: (Res, Shl.type) => F[Res]
- val i64ShrSTraverse: (Res, ShrS.type) => F[Res]
- val i64ShrUTraverse: (Res, ShrU.type) => F[Res]
- val i64Store16Traverse: (Res, Store16) => F[Res]
- val i64Store32Traverse: (Res, Store32) => F[Res]
- val i64Store8Traverse: (Res, Store8) => F[Res]
- val i64StoreTraverse: (Res, Store) => F[Res]
- val i64SubTraverse: (Res, Sub.type) => F[Res]
- val i64TruncSF32Traverse: (Res, TruncSF32.type) => F[Res]
- val i64TruncSF64Traverse: (Res, TruncSF64.type) => F[Res]
- val i64TruncSatSF32Traverse: (Res, TruncSatSF32.type) => F[Res]
- val i64TruncSatSF64Traverse: (Res, TruncSatSF64.type) => F[Res]
- val i64TruncSatUF32Traverse: (Res, TruncSatUF32.type) => F[Res]
- val i64TruncSatUF64Traverse: (Res, TruncSatUF64.type) => F[Res]
- val i64TruncUF32Traverse: (Res, TruncUF32.type) => F[Res]
- val i64TruncUF64Traverse: (Res, TruncUF64.type) => F[Res]
- val i64XorTraverse: (Res, Xor.type) => F[Res]
- val ifTraverse: (Res, If) => F[Res]
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- val loadInstTraverse: (Res, LoadInst) => F[Res]
- val loadNInstTraverse: (Res, LoadNInst) => F[Res]
- val localGetTraverse: (Res, LocalGet) => F[Res]
- val localSetTraverse: (Res, LocalSet) => F[Res]
- val localTeeTraverse: (Res, LocalTee) => F[Res]
- val loopPrepare: (Res, Loop) => F[Res]
- val loopTraverse: (Res, Loop) => F[Res]
- val memoryGrowTraverse: (Res, MemoryGrow.type) => F[Res]
- val memoryInstTraverse: (Res, MemoryInst) => F[Res]
- val memorySizeTraverse: (Res, MemorySize.type) => F[Res]
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- val nopTraverse: (Res, Nop.type) => F[Res]
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- val otherPrepare: (Res, Inst) => F[Res]
- val relopTraverse: (Res, Relop) => F[Res]
- val returnTraverse: (Res, Return.type) => F[Res]
- final def run(zero: Res, inst: Inst): F[Res]
- val satConvertopTraverse: (Res, SatConvertop) => F[Res]
- val selectTraverse: (Res, Select.type) => F[Res]
- val storeInstTraverse: (Res, StoreInst) => F[Res]
- val storeNInstTraverse: (Res, StoreNInst) => F[Res]
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- val testopTraverse: (Res, Testop) => F[Res]
- val thenPrepare: (Res, If) => F[Res]
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def traverse(zero: Res, inst: Inst): F[Res]
- val unopTraverse: (Res, Unop) => F[Res]
- val unreachableTraverse: (Res, Unreachable.type) => F[Res]
- val varInstTraverse: (Res, VarInst) => F[Res]
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated @deprecated
- Deprecated
(Since version ) see corresponding Javadoc for more information.