jtenner/starshine/wast does not have a README file

    ParserError

    pub suberror ParserError {
    UnexpectedToken(Token, String)
    InvalidInstruction(String)
    Custom(String)
    } derive(Eq,
    Debug
    )

    impl Show for ParserError

    WastTextError

    pub suberror WastTextError {
    Unsupported(String)
    }

    Annotation

    pub struct Annotation {
    name : String
    args : Array[String]
    } derive(Eq,
    Debug
    )

    impl Show for Annotation

    AtomicOrder

    pub enum AtomicOrder {
    SeqCst
    AcqRel
    Relaxed
    } derive(Eq,
    Debug
    )

    BlockType

    pub struct BlockType {
    label : String?
    type_use : TypeUse?
    } derive(Eq,
    Debug
    )

    CatchClause

    pub enum CatchClause {
    CatchClause(Index, Index)
    CatchRefClause(Index, Index)
    CatchAllClause(Index)
    CatchAllRefClause(Index)
    } derive(Eq,
    Debug
    )

    impl Show for CatchClause

    DataSegment

    pub struct DataSegment {
    id : String?
    memory_index : Index
    offset : Array[Instruction]
    data : Bytes
    } derive(Eq,
    Debug
    )

    ElemInitExpr

    pub struct ElemInitExpr {
    instrs : Array[Instruction]
    explicit_item : Bool
    } derive(Eq,
    Debug
    )

    ElemSegment

    pub struct ElemSegment {
    id : String?
    declarative : Bool
    table_index : Index
    offset : Array[Instruction]
    func_indices : Array[Index]
    elem_exprs : Array[ElemInitExpr]
    elem_type : ValueType?
    } derive(Eq,
    Debug
    )

    ErrorLevel

    pub enum ErrorLevel {
    Error
    } derive(Eq,
    Debug
    )

    impl Show for ErrorLevel

    Export

    pub struct Export {
    name : String
    desc : ExportDesc
    } derive(Eq,
    Debug
    )

    impl Show for Export

    ExportDesc

    pub enum ExportDesc {
    Func(Index)
    Table(Index)
    Memory(Index)
    Global(Index)
    Tag(Index)
    } derive(Eq,
    Debug
    )

    FieldStorage

    pub enum FieldStorage {
    Value(ValueType)
    I8
    I16
    } derive(Eq,
    Debug
    )

    Func

    pub struct Func {
    id : String?
    annotations : Array[Annotation]
    exports : Array[InlineExport]
    type_use : TypeUse
    locals : Array[Local]
    body : Array[Instruction]
    } derive(Eq,
    Debug
    )

    impl Show for Func

    FuncType

    pub struct FuncType {
    params : Array[ValueType]
    results : Array[ValueType]
    } derive(Eq,
    Debug
    )

    Global

    pub struct Global {
    id : String?
    exports : Array[InlineExport]
    global_type : GlobalType
    init : Array[Instruction]
    } derive(Eq,
    Debug
    )

    impl Show for Global

    GlobalType

    pub struct GlobalType {
    val_type : ValueType
    mutable_ : Bool
    } derive(Eq,
    Debug
    )

    HeapTypeRef

    pub enum HeapTypeRef {
    TypeNum(UInt)
    TypeId(String)
    ExactTypeNum(UInt)
    ExactTypeId(String)
    Any
    String
    Eq
    I31
    Struct
    Array
    None_
    NoFunc
    Func
    NoExtern
    NoExn
    Waitqueue
    NoWaitqueue
    Shared(HeapTypeRef)
    } derive(Eq,
    Debug
    )

    impl Show for HeapTypeRef

    Import

    pub struct Import {
    module_name : String
    field_name : String
    desc : ImportDesc
    id : String?
    annotations : Array[Annotation]
    } derive(Eq,
    Debug
    )

    impl Show for Import

    ImportDesc

    pub enum ImportDesc {
    Func(TypeUse)
    Table(TableType)
    Memory(MemoryType)
    Global(GlobalType)
    Tag(TypeUse)
    } derive(Eq,
    Debug
    )

    Index

    pub enum Index {
    Num(UInt)
    Id(String)
    } derive(Eq,
    Debug
    )

    impl Show for Index

    InlineExport

    pub enum InlineExport {
    Export(String)
    } derive(Eq,
    Debug
    )

    Instruction

    pub enum Instruction {
    Unreachable
    Nop
    Block(BlockType, Array[Instruction])
    Loop(BlockType, Array[Instruction])
    If(BlockType, Array[Instruction], Array[Instruction])
    Br(Index)
    BrIf(Index)
    BrOnNull(Index)
    BrOnNonNull(Index)
    BrOnCastDescEq(Index, ValueType, ValueType)
    BrOnCastDescEqFail(Index, ValueType, ValueType)
    BrTable(Array[Index], Index)
    Return
    Call(Index)
    CallIndirect(Index, TypeUse)
    ReturnCall(Index)
    ReturnCallIndirect(Index, TypeUse)
    CallRef(TypeUse)
    ReturnCallRef(TypeUse)
    Throw(Index)
    ThrowRef
    Rethrow(Index)
    TryTable(BlockType, Array[CatchClause], Array[Instruction])
    TryLegacy(BlockType, Array[Instruction], Array[LegacyCatchClause], Index?)
    Drop
    Select(Array[ValueType]?)
    LocalGet(Index)
    LocalSet(Index)
    LocalTee(Index)
    GlobalGet(Index)
    GlobalSet(Index)
    TableGet(Index)
    TableSet(Index)
    TableSize(Index)
    TableGrow(Index)
    TableFill(Index)
    TableCopy(Index, Index)
    TableInit(Index, Index)
    ElemDrop(Index)
    MemoryAtomic(MemoryAtomicOp, AtomicOrder, Index?, MemArg)
    AtomicFence(AtomicOrder)
    Load(Opcode, MemArg)
    Store(Opcode, MemArg)
    ArrayLoad(Opcode, Index, MemArg)
    ArrayStore(Opcode, Index, MemArg)
    MemorySize
    MemoryGrow
    MemoryFill
    MemoryCopy
    MemoryInit(Index)
    DataDrop(Index)
    Const(Opcode, String)
    Unary(Opcode)
    Binary(Opcode)
    Test(Opcode)
    Compare(Opcode)
    Convert(Opcode)
    RefNull(ValueType)
    RefIsNull
    RefFunc(Index)
    StringConst(Bytes)
    StringMeasureWtf16
    StringConcat
    StringEq
    StringAsWtf16
    StringViewWtf16GetCodeunit
    StringViewWtf16Slice
    StringNewUtf8Array
    StringNewWtf16Array
    StringEncodeUtf8Array
    StringEncodeWtf16Array
    StringNewLossyUtf8Array
    StringNewWtf8Array
    StringEncodeLossyUtf8Array
    StringEncodeWtf8Array
    StructNew(Index)
    StructNewDefault(Index)
    ArrayNew(Index)
    ArrayNewDefault(Index)
    ArrayNewFixed(Index, UInt)
    ArrayNewData(Index, Index)
    ArrayNewElem(Index, Index)
    StructGet(Index, UInt)
    StructGetS(Index, UInt)
    StructGetU(Index, UInt)
    WaitqueueNew
    WaitqueueNotify
    StructWait(Index, UInt)
    Publish
    StructAtomicSet(AtomicOrder, Index, UInt)
    ArrayAtomicSet(AtomicOrder, Index)
    StructAtomicGet(AtomicOrder, Index, UInt)
    StructAtomicGetS(AtomicOrder, Index, UInt)
    StructAtomicGetU(AtomicOrder, Index, UInt)
    StructAtomicRmw(AtomicOrder,
    AggregateAtomicRmwOp
    , Index, UInt)
    StructAtomicCmpxchg(AtomicOrder, Index, UInt)
    ArrayAtomicGet(AtomicOrder, Index)
    ArrayAtomicGetS(AtomicOrder, Index)
    ArrayAtomicGetU(AtomicOrder, Index)
    ArrayAtomicRmw(AtomicOrder,
    AggregateAtomicRmwOp
    , Index)
    ArrayAtomicCmpxchg(AtomicOrder, Index)
    StructNewDesc(Index)
    StructNewDefaultDesc(Index)
    RefGetDesc(Index)
    RefTestDesc(Bool, Index)
    RefCastDescEq(Bool, Index)
    V128Const(V128Const)
    V128Load(MemArg)
    V128Load8x8S(MemArg)
    V128Load8x8U(MemArg)
    V128Load16x4S(MemArg)
    V128Load16x4U(MemArg)
    V128Load32x2S(MemArg)
    V128Load32x2U(MemArg)
    V128Load8Splat(MemArg)
    V128Load16Splat(MemArg)
    V128Load32Splat(MemArg)
    V128Load64Splat(MemArg)
    V128Load32Zero(MemArg)
    V128Load64Zero(MemArg)
    V128Store(MemArg)
    V128Load8Lane(MemArg, UInt)
    V128Load16Lane(MemArg, UInt)
    V128Load32Lane(MemArg, UInt)
    V128Load64Lane(MemArg, UInt)
    V128Store8Lane(MemArg, UInt)
    V128Store16Lane(MemArg, UInt)
    V128Store32Lane(MemArg, UInt)
    V128Store64Lane(MemArg, UInt)
    I8x16Shuffle(ShuffleLanes)
    I8x16Swizzle
    I8x16Splat
    I16x8Splat
    I32x4Splat
    I64x2Splat
    F32x4Splat
    F64x2Splat
    I8x16ExtractLaneS(UInt)
    I8x16ExtractLaneU(UInt)
    I8x16ReplaceLane(UInt)
    I16x8ExtractLaneS(UInt)
    I16x8ExtractLaneU(UInt)
    I16x8ReplaceLane(UInt)
    I32x4ExtractLane(UInt)
    I32x4ReplaceLane(UInt)
    I64x2ExtractLane(UInt)
    I64x2ReplaceLane(UInt)
    F32x4ExtractLane(UInt)
    F32x4ReplaceLane(UInt)
    F64x2ExtractLane(UInt)
    F64x2ReplaceLane(UInt)
    SimdUnary(Opcode)
    SimdBinary(Opcode)
    SimdTernary(Opcode)
    SimdShift(Opcode)
    SimdTest(Opcode)
    SimdCompare(Opcode)
    SimdConvert(Opcode)
    SimdRelaxed(Opcode)
    } derive(Eq,
    Debug
    )

    KeywordTable

    pub struct KeywordTable {
    map :
    HashMap
    [String, TokenType]
    }

    KeywordTable::lookup

    fn KeywordTable::lookup(self : KeywordTable, s : String) -> TokenType?

    LegacyCatchClause

    pub enum LegacyCatchClause {
    LegacyCatch(Index, Array[Instruction])
    LegacyCatchAll(Array[Instruction])
    } derive(Eq,
    Debug
    )

    LexerError

    pub struct LexerError {
    level : ErrorLevel
    location : Location
    message : String
    } derive(Eq,
    Debug
    )

    impl Show for LexerError

    LexerState

    pub struct LexerState {
    cursor : Int
    line : Int
    line_start : Int
    }

    Limits

    pub struct Limits {
    min : UInt
    max : UInt?
    } derive(Eq,
    Debug
    )

    impl Show for Limits

    Literal

    pub struct Literal {
    literal_type : LiteralType
    text : String
    } derive(Eq,
    Debug
    )

    impl Show for Literal

    LiteralType

    pub enum LiteralType {
    Int
    Float
    Hexfloat
    Infinity
    Nan
    } derive(Eq,
    Debug
    )

    impl Show for LiteralType

    Local

    pub struct Local {
    id : String?
    val_type : ValueType
    } derive(Eq,
    Debug
    )

    impl Show for Local

    Location

    pub struct Location {
    filename : String
    line : Int
    first_column : Int
    last_column : Int
    } derive(Eq,
    Debug
    )

    impl Show for Location

    MemArg

    pub struct MemArg {
    align : UInt64
    offset : UInt64
    } derive(Eq,
    Debug
    )

    impl Show for MemArg

    Memory

    pub struct Memory {
    id : String?
    exports : Array[InlineExport]
    memory_type : MemoryType
    } derive(Eq,
    Debug
    )

    impl Show for Memory

    MemoryAtomicOp

    pub enum MemoryAtomicOp {
    I32AtomicLoad
    I64AtomicLoad
    I32AtomicLoad8U
    I32AtomicLoad16U
    I64AtomicLoad8U
    I64AtomicLoad16U
    I64AtomicLoad32U
    I32AtomicStore
    I64AtomicStore
    I32AtomicStore8
    I32AtomicStore16
    I64AtomicStore8
    I64AtomicStore16
    I64AtomicStore32
    I32AtomicRmwAdd
    I64AtomicRmwAdd
    I32AtomicRmw8AddU
    I32AtomicRmw16AddU
    I64AtomicRmw8AddU
    I64AtomicRmw16AddU
    I64AtomicRmw32AddU
    I32AtomicRmwSub
    I64AtomicRmwSub
    I32AtomicRmw8SubU
    I32AtomicRmw16SubU
    I64AtomicRmw8SubU
    I64AtomicRmw16SubU
    I64AtomicRmw32SubU
    I32AtomicRmwAnd
    I64AtomicRmwAnd
    I32AtomicRmw8AndU
    I32AtomicRmw16AndU
    I64AtomicRmw8AndU
    I64AtomicRmw16AndU
    I64AtomicRmw32AndU
    I32AtomicRmwOr
    I64AtomicRmwOr
    I32AtomicRmw8OrU
    I32AtomicRmw16OrU
    I64AtomicRmw8OrU
    I64AtomicRmw16OrU
    I64AtomicRmw32OrU
    I32AtomicRmwXor
    I64AtomicRmwXor
    I32AtomicRmw8XorU
    I32AtomicRmw16XorU
    I64AtomicRmw8XorU
    I64AtomicRmw16XorU
    I64AtomicRmw32XorU
    I32AtomicRmwXchg
    I64AtomicRmwXchg
    I32AtomicRmw8XchgU
    I32AtomicRmw16XchgU
    I64AtomicRmw8XchgU
    I64AtomicRmw16XchgU
    I64AtomicRmw32XchgU
    I32AtomicRmwCmpxchg
    I64AtomicRmwCmpxchg
    I32AtomicRmw8CmpxchgU
    I32AtomicRmw16CmpxchgU
    I64AtomicRmw8CmpxchgU
    I64AtomicRmw16CmpxchgU
    I64AtomicRmw32CmpxchgU
    MemoryAtomicNotify
    MemoryAtomicWait32
    MemoryAtomicWait64
    } derive(Eq,
    Debug
    )

    Linear-memory atomic operators. Memory indices and orders are independent immediates; access alignment follows the access width even for memory64.

    MemoryType

    pub struct MemoryType {
    min : UInt64
    max : UInt64?
    shared : Bool
    memory64 : Bool
    } derive(Eq,
    Debug
    )

    impl Show for MemoryType

    MemoryType::new

    fn MemoryType::new(min : UInt64, max? : UInt64?, shared? : Bool, memory64? : Bool) -> MemoryType

    Module

    pub struct Module {
    id : String?
    fields : Array[ModuleField]
    } derive(Eq,
    Debug
    )

    impl Show for Module

    Module::new

    fn Module::new(fields : Array[ModuleField], id? : String?) -> Module

    ModuleField

    pub enum ModuleField {
    TypeField(TypeDef)
    RecField(Array[TypeDef])
    FuncField(Func)
    TableField(Table)
    MemoryField(Memory)
    GlobalField(Global)
    TagField(Tag)
    ImportField(Import)
    ExportField(Export)
    StartField(Start)
    ElemField(ElemSegment)
    DataField(DataSegment)
    } derive(Eq,
    Debug
    )

    Opcode

    pub enum Opcode {
    Unreachable
    Nop
    Br
    BrIf
    BrOnNull
    BrOnNonNull
    BrOnCastDescEq
    BrOnCastDescEqFail
    BrTable
    Return
    Call
    CallIndirect
    ReturnCall
    ReturnCallIndirect
    CallRef
    ReturnCallRef
    Throw
    ThrowRef
    TryTable
    RefNull
    RefIsNull
    RefFunc
    RefEq
    RefAsNonNull
    StringConst
    StringMeasureWtf16
    StringConcat
    StringEq
    StringAsWtf16
    StringViewWtf16GetCodeunit
    StringViewWtf16Slice
    StringNewUtf8Array
    StringNewWtf16Array
    StringEncodeUtf8Array
    StringEncodeWtf16Array
    StringNewLossyUtf8Array
    StringNewWtf8Array
    StringEncodeLossyUtf8Array
    StringEncodeWtf8Array
    AnyConvertExtern
    ExternConvertAny
    RefI31
    RefI31Shared
    I31GetS
    I31GetU
    StructNew
    StructNewDefault
    ArrayNew
    ArrayNewDefault
    ArrayNewFixed
    ArrayNewData
    ArrayNewElem
    StructGet
    StructGetS
    StructGetU
    WaitqueueNew
    WaitqueueNotify
    StructWait
    Publish
    StructAtomicSet
    ArrayAtomicSet
    StructAtomicGet
    StructAtomicGetS
    StructAtomicGetU
    StructAtomicRmwAdd
    StructAtomicRmwSub
    StructAtomicRmwAnd
    StructAtomicRmwOr
    StructAtomicRmwXor
    StructAtomicRmwXchg
    StructAtomicRmwCmpxchg
    ArrayAtomicGet
    ArrayAtomicGetS
    ArrayAtomicGetU
    ArrayAtomicRmwAdd
    ArrayAtomicRmwSub
    ArrayAtomicRmwAnd
    ArrayAtomicRmwOr
    ArrayAtomicRmwXor
    ArrayAtomicRmwXchg
    ArrayAtomicRmwCmpxchg
    StructNewDesc
    StructNewDefaultDesc
    RefGetDesc
    RefTestDesc
    RefTestDescNull
    RefCastDescEq
    RefCastDescEqNull
    RefExtern
    Drop
    Select
    LocalGet
    LocalSet
    LocalTee
    GlobalGet
    GlobalSet
    TableGet
    TableSet
    TableSize
    TableGrow
    TableFill
    TableCopy
    TableInit
    ElemDrop
    MemoryAtomic(MemoryAtomicOp)
    AtomicFence
    I32Load
    I64Load
    F32Load
    F64Load
    I32Load8S
    I32Load8U
    I32Load16S
    I32Load16U
    I64Load8S
    I64Load8U
    I64Load16S
    I64Load16U
    I64Load32S
    I64Load32U
    I32Store
    I64Store
    F32Store
    F64Store
    I32Store8
    I32Store16
    I64Store8
    I64Store16
    I64Store32
    MemorySize
    MemoryGrow
    MemoryFill
    MemoryCopy
    MemoryInit
    DataDrop
    I32Const
    I64Const
    F32Const
    F64Const
    I32Eqz
    I32Eq
    I32Ne
    I32LtS
    I32LtU
    I32GtS
    I32GtU
    I32LeS
    I32LeU
    I32GeS
    I32GeU
    I32Clz
    I32Ctz
    I32Popcnt
    I32Add
    I32Sub
    I32Mul
    I32DivS
    I32DivU
    I32RemS
    I32RemU
    I32And
    I32Or
    I32Xor
    I32Shl
    I32ShrS
    I32ShrU
    I32Rotl
    I32Rotr
    I64Eqz
    I64Eq
    I64Ne
    I64LtS
    I64LtU
    I64GtS
    I64GtU
    I64LeS
    I64LeU
    I64GeS
    I64GeU
    I64Clz
    I64Ctz
    I64Popcnt
    I64Add
    I64Sub
    I64Mul
    I64DivS
    I64DivU
    I64RemS
    I64RemU
    I64And
    I64Or
    I64Xor
    I64Shl
    I64ShrS
    I64ShrU
    I64Rotl
    I64Rotr
    F32Eq
    F32Ne
    F32Lt
    F32Gt
    F32Le
    F32Ge
    F32Abs
    F32Neg
    F32Ceil
    F32Floor
    F32Trunc
    F32Nearest
    F32Sqrt
    F32Add
    F32Sub
    F32Mul
    F32Div
    F32Min
    F32Max
    F32Copysign
    F64Eq
    F64Ne
    F64Lt
    F64Gt
    F64Le
    F64Ge
    F64Abs
    F64Neg
    F64Ceil
    F64Floor
    F64Trunc
    F64Nearest
    F64Sqrt
    F64Add
    F64Sub
    F64Mul
    F64Div
    F64Min
    F64Max
    F64Copysign
    I32WrapI64
    I32TruncF32S
    I32TruncF32U
    I32TruncF64S
    I32TruncF64U
    I64ExtendI32S
    I64ExtendI32U
    I64TruncF32S
    I64TruncF32U
    I64TruncF64S
    I64TruncF64U
    F32ConvertI32S
    F32ConvertI32U
    F32ConvertI64S
    F32ConvertI64U
    F32DemoteF64
    F64ConvertI32S
    F64ConvertI32U
    F64ConvertI64S
    F64ConvertI64U
    F64PromoteF32
    I32ReinterpretF32
    I64ReinterpretF64
    F32ReinterpretI32
    F64ReinterpretI64
    I32Extend8S
    I32Extend16S
    I64Extend8S
    I64Extend16S
    I64Extend32S
    I32TruncSatF32S
    I32TruncSatF32U
    I32TruncSatF64S
    I32TruncSatF64U
    I64TruncSatF32S
    I64TruncSatF32U
    I64TruncSatF64S
    I64TruncSatF64U
    V128Const
    V128Load
    V128Load8x8S
    V128Load8x8U
    V128Load16x4S
    V128Load16x4U
    V128Load32x2S
    V128Load32x2U
    V128Load8Splat
    V128Load16Splat
    V128Load32Splat
    V128Load64Splat
    V128Load32Zero
    V128Load64Zero
    V128Store
    V128Load8Lane
    V128Load16Lane
    V128Load32Lane
    V128Load64Lane
    V128Store8Lane
    V128Store16Lane
    V128Store32Lane
    V128Store64Lane
    I8x16Shuffle
    I8x16Swizzle
    I8x16Splat
    I8x16ExtractLaneS
    I8x16ExtractLaneU
    I8x16ReplaceLane
    I8x16Eq
    I8x16Ne
    I8x16LtS
    I8x16LtU
    I8x16GtS
    I8x16GtU
    I8x16LeS
    I8x16LeU
    I8x16GeS
    I8x16GeU
    I8x16Abs
    I8x16Neg
    I8x16Popcnt
    I8x16AllTrue
    I8x16Bitmask
    I8x16NarrowI16x8S
    I8x16NarrowI16x8U
    I8x16Shl
    I8x16ShrS
    I8x16ShrU
    I8x16Add
    I8x16AddSatS
    I8x16AddSatU
    I8x16Sub
    I8x16SubSatS
    I8x16SubSatU
    I8x16MinS
    I8x16MinU
    I8x16MaxS
    I8x16MaxU
    I8x16AvgrU
    I16x8Splat
    I16x8ExtractLaneS
    I16x8ExtractLaneU
    I16x8ReplaceLane
    I16x8Eq
    I16x8Ne
    I16x8LtS
    I16x8LtU
    I16x8GtS
    I16x8GtU
    I16x8LeS
    I16x8LeU
    I16x8GeS
    I16x8GeU
    I16x8Abs
    I16x8Neg
    I16x8Q15mulrSatS
    I16x8AllTrue
    I16x8Bitmask
    I16x8NarrowI32x4S
    I16x8NarrowI32x4U
    I16x8ExtendLowI8x16S
    I16x8ExtendHighI8x16S
    I16x8ExtendLowI8x16U
    I16x8ExtendHighI8x16U
    I16x8Shl
    I16x8ShrS
    I16x8ShrU
    I16x8Add
    I16x8AddSatS
    I16x8AddSatU
    I16x8Sub
    I16x8SubSatS
    I16x8SubSatU
    I16x8Mul
    I16x8MinS
    I16x8MinU
    I16x8MaxS
    I16x8MaxU
    I16x8AvgrU
    I16x8ExtmulLowI8x16S
    I16x8ExtmulHighI8x16S
    I16x8ExtmulLowI8x16U
    I16x8ExtmulHighI8x16U
    I32x4Splat
    I32x4ExtractLane
    I32x4ReplaceLane
    I32x4Eq
    I32x4Ne
    I32x4LtS
    I32x4LtU
    I32x4GtS
    I32x4GtU
    I32x4LeS
    I32x4LeU
    I32x4GeS
    I32x4GeU
    I32x4Abs
    I32x4Neg
    I32x4AllTrue
    I32x4Bitmask
    I32x4ExtendLowI16x8S
    I32x4ExtendHighI16x8S
    I32x4ExtendLowI16x8U
    I32x4ExtendHighI16x8U
    I32x4Shl
    I32x4ShrS
    I32x4ShrU
    I32x4Add
    I32x4Sub
    I32x4Mul
    I32x4MinS
    I32x4MinU
    I32x4MaxS
    I32x4MaxU
    I32x4DotI16x8S
    I32x4ExtmulLowI16x8S
    I32x4ExtmulHighI16x8S
    I32x4ExtmulLowI16x8U
    I32x4ExtmulHighI16x8U
    I32x4TruncSatF32x4S
    I32x4TruncSatF32x4U
    I32x4TruncSatF64x2SZero
    I32x4TruncSatF64x2UZero
    I64x2Splat
    I64x2ExtractLane
    I64x2ReplaceLane
    I64x2Eq
    I64x2Ne
    I64x2LtS
    I64x2GtS
    I64x2LeS
    I64x2GeS
    I64x2Abs
    I64x2Neg
    I64x2AllTrue
    I64x2Bitmask
    I64x2ExtendLowI32x4S
    I64x2ExtendHighI32x4S
    I64x2ExtendLowI32x4U
    I64x2ExtendHighI32x4U
    I64x2Shl
    I64x2ShrS
    I64x2ShrU
    I64x2Add
    I64x2Sub
    I64x2Mul
    I64x2ExtmulLowI32x4S
    I64x2ExtmulHighI32x4S
    I64x2ExtmulLowI32x4U
    I64x2ExtmulHighI32x4U
    F32x4Splat
    F32x4ExtractLane
    F32x4ReplaceLane
    F32x4Eq
    F32x4Ne
    F32x4Lt
    F32x4Gt
    F32x4Le
    F32x4Ge
    F32x4Abs
    F32x4Neg
    F32x4Sqrt
    F32x4Add
    F32x4Sub
    F32x4Mul
    F32x4Div
    F32x4Min
    F32x4Max
    F32x4Pmin
    F32x4Pmax
    F32x4Ceil
    F32x4Floor
    F32x4Trunc
    F32x4Nearest
    F32x4ConvertI32x4S
    F32x4ConvertI32x4U
    F32x4DemoteF64x2Zero
    F64x2Splat
    F64x2ExtractLane
    F64x2ReplaceLane
    F64x2Eq
    F64x2Ne
    F64x2Lt
    F64x2Gt
    F64x2Le
    F64x2Ge
    F64x2Abs
    F64x2Neg
    F64x2Sqrt
    F64x2Add
    F64x2Sub
    F64x2Mul
    F64x2Div
    F64x2Min
    F64x2Max
    F64x2Pmin
    F64x2Pmax
    F64x2Ceil
    F64x2Floor
    F64x2Trunc
    F64x2Nearest
    F64x2ConvertLowI32x4S
    F64x2ConvertLowI32x4U
    F64x2PromoteLowF32x4
    V128Not
    V128And
    V128AndNot
    V128Or
    V128Xor
    V128Bitselect
    V128AnyTrue
    I8x16RelaxedSwizzle
    I32x4RelaxedTruncF32x4S
    I32x4RelaxedTruncF32x4U
    I32x4RelaxedTruncF64x2SZero
    I32x4RelaxedTruncF64x2UZero
    F32x4RelaxedMadd
    F32x4RelaxedNmadd
    F64x2RelaxedMadd
    F64x2RelaxedNmadd
    I8x16RelaxedLaneselect
    I16x8RelaxedLaneselect
    I32x4RelaxedLaneselect
    I64x2RelaxedLaneselect
    F32x4RelaxedMin
    F32x4RelaxedMax
    F64x2RelaxedMin
    F64x2RelaxedMax
    I16x8RelaxedQ15mulrS
    I16x8RelaxedDotI8x16I7x16S
    I32x4RelaxedDotI8x16I7x16AddS
    } derive(Eq,
    Debug
    )

    impl Show for Opcode

    ParseError

    pub struct ParseError {
    location : Location
    message : String
    } derive(Eq,
    Debug
    )

    impl Show for ParseError

    ShuffleLanes

    pub struct ShuffleLanes {
    lanes : FixedArray[UInt]
    } derive(Eq,
    Debug
    )

    SimdShape

    pub enum SimdShape {
    I8x16
    I16x8
    I32x4
    I64x2
    F32x4
    F64x2
    } derive(Eq,
    Debug
    )

    Start

    pub struct Start {
    func_index : Index
    } derive(Eq,
    Debug
    )

    impl Show for Start

    StructFieldDef

    pub struct StructFieldDef {
    storage : FieldStorage
    mutable_ : Bool
    } derive(Eq,
    Debug
    )

    Table

    pub struct Table {
    id : String?
    exports : Array[InlineExport]
    table_type : TableType
    elem_init : Array[Index]?
    elem_exprs : Array[ElemInitExpr]?
    elem_init_type : ValueType?
    elem_offset : Array[Instruction]?
    } derive(Eq,
    Debug
    )

    impl Show for Table

    TableType

    pub struct TableType {
    limits : Limits
    elem_type : ValueType
    } derive(Eq,
    Debug
    )

    Tag

    pub struct Tag {
    id : String?
    exports : Array[InlineExport]
    type_use : TypeUse
    } derive(Eq,
    Debug
    )

    impl Show for Tag

    Token

    pub struct Token {
    location : Location
    token_type : TokenType
    value : TokenValue
    } derive(Eq,
    Debug
    )

    impl Show for Token

    TokenType

    pub enum TokenType {
    Eof
    Lpar
    Rpar
    LparAnn
    Nat
    Int
    Float
    Text
    Var
    Reserved
    Invalid
    Module
    Type
    Func
    Param
    Result
    Local
    Global
    Tag
    Table
    Memory
    Import
    Export
    ValueType(ValueType)
    Opcode(Opcode)
    Block
    Loop
    If
    Try
    Do
    Then
    Else
    End
    Catch
    CatchRef
    CatchAll
    CatchAllRef
    Delegate
    Rethrow
    Offset
    Item
    Start
    Data
    Elem
    Mut
    Binary
    Quote
    Input
    Output
    Register
    Invoke
    Get
    Declare
    AssertMalformed
    AssertInvalid
    AssertUnlinkable
    AssertReturn
    AssertTrap
    AssertException
    AssertExhaustion
    NanCanonical
    NanArithmetic
    OffsetEqNat
    AlignEqNat
    SimdShapeToken(SimdShape)
    } derive(Eq,
    Debug
    )

    impl Show for TokenType

    TokenValue

    pub enum TokenValue {
    None
    Text(String)
    Literal(Literal)
    ValueType(ValueType)
    Opcode(Opcode)
    } derive(Eq,
    Debug
    )

    impl Show for TokenValue

    TypeDef

    pub struct TypeDef {
    id : String?
    is_sub : Bool
    final_ : Bool
    supers : Array[Index]
    metadata : TypeDefMetadata
    body : TypeDefBody
    } derive(Eq,
    Debug
    )

    impl Show for TypeDef

    TypeDefBody

    pub enum TypeDefBody {
    Func(FuncType)
    Struct(Array[StructFieldDef])
    Array(StructFieldDef)
    Shared(TypeDefBody)
    } derive(Eq,
    Debug
    )

    impl Show for TypeDefBody

    TypeDefMetadata

    pub struct TypeDefMetadata {
    describes : Index?
    descriptor : Index?
    } derive(Eq,
    Debug
    )

    TypeUse

    pub struct TypeUse {
    type_index : Index?
    func_type : FuncType
    param_ids : Array[String?]
    } derive(Eq,
    Debug
    )

    impl Show for TypeUse

    V128Const

    pub struct V128Const {
    shape : SimdShape
    values : Array[String]
    } derive(Eq,
    Debug
    )

    ValueType

    pub enum ValueType {
    I32
    I64
    F32
    F64
    V128
    FuncRef
    ExternRef
    ExnRef
    NonNullFuncRef
    NonNullExternRef
    NonNullExnRef
    TypedFuncRef(HeapTypeRef)
    NonNullTypedFuncRef(HeapTypeRef)
    } derive(Eq,
    Debug
    )

    WastAction

    pub struct WastAction {
    module_name : String?
    name : String
    args : Array[WastValue]
    } derive(Eq,
    Debug
    )

    WastActionType

    pub enum WastActionType {
    Invoke(WastAction)
    Get(String?, String)
    } derive(Eq,
    Debug
    )

    WastArbitraryFeatureStats

    pub struct WastArbitraryFeatureStats {
    gc_type_fields : Int
    exported_tags : Int
    descriptor_ref_ops : Int
    bulk_memory_ops : Int
    bulk_table_ops : Int
    tail_call_ops : Int
    exception_ops : Int
    simd_const_ops : Int
    control_ops : Int
    parametric_ops : Int
    variable_ops : Int
    table_ops : Int
    memory_ops : Int
    numeric_ops : Int
    reference_ops : Int
    simd_ops : Int
    } derive(Eq,
    Debug
    )

    WastCommand

    pub enum WastCommand {
    Module(Module)
    ModuleBinary(String?, Bytes)
    ModuleQuote(String?, Array[String])
    Register(String, String?)
    Action(WastActionType)
    AssertReturn(WastActionType, Array[WastResult])
    AssertTrap(WastActionType, String)
    AssertException(WastActionType)
    AssertExhaustion(WastActionType, String)
    AssertMalformed(WastModuleDef, String)
    AssertInvalid(WastModuleDef, String)
    AssertUnlinkable(WastModuleDef, String)
    } derive(Eq,
    Debug
    )

    WastLexer

    pub struct WastLexer {
    buffer : Bytes
    filename : String
    line : Int
    cursor : Int
    line_start : Int
    token_start : Int
    errors : Array[LexerError]
    }

    WastLexer::get_errors

    fn WastLexer::get_errors(self : WastLexer) -> Array[LexerError]

    WastLexer::get_token

    fn WastLexer::get_token(self : WastLexer) -> Token

    WastLexer::has_errors

    fn WastLexer::has_errors(self : WastLexer) -> Bool

    WastLexer::new

    fn WastLexer::new(buffer : Bytes, filename : String) -> WastLexer

    WastModuleDef

    pub enum WastModuleDef {
    Inline(Module)
    Binary(Bytes)
    Quote(Array[String])
    } derive(Eq,
    Debug
    )

    WastParser

    pub struct WastParser {
    lexer : WastLexer
    current : Token
    errors : Array[ParseError]
    }

    WastParser::get_errors

    fn WastParser::get_errors(self : WastParser) -> Array[ParseError]

    WastParser::has_errors

    fn WastParser::has_errors(self : WastParser) -> Bool

    WastParser::new

    fn WastParser::new(lexer : WastLexer) -> WastParser

    WastParser::parse_module

    fn WastParser::parse_module(self : WastParser) -> Module raise ParserError

    WastParser::parse_script

    fn WastParser::parse_script(self : WastParser) -> WastScript raise ParserError

    WastResult

    pub enum WastResult {
    Value(WastValue)
    F32NanCanonical
    F32NanArithmetic
    F64NanCanonical
    F64NanArithmetic
    RefNull(ValueType?)
    RefFunc
    } derive(Eq,
    Debug
    )

    WastRoundtripFuzzStats

    pub struct WastRoundtripFuzzStats {
    profile : String
    seed : UInt64
    attempts : Int
    successes : Int
    stable : Int
    script_iterations : Int
    module_commands : Int
    rendered_scripts : Int
    generation_mode : String
    valid_lowered_modules : Int
    static_assertions : Int
    feature_stats : WastArbitraryFeatureStats
    } derive(Eq,
    Debug
    )

    WastScript

    pub struct WastScript {
    commands : Array[WastCommand]
    } derive(Eq,
    Debug
    )

    WastSpecCommandReport

    pub struct WastSpecCommandReport {
    command_index : Int
    status : WastSpecCommandStatus
    } derive(Eq,
    Debug
    )

    WastSpecCommandStatus

    pub enum WastSpecCommandStatus {
    Passed
    KnownSkipped(String)
    Blocked(String)
    Failed(String)
    } derive(Eq,
    Debug
    )

    WastSpecFileReport

    pub struct WastSpecFileReport {
    path : String
    status : WastSpecFileStatus
    command_reports : Array[WastSpecCommandReport]
    total_commands : Int
    checked_commands : Int
    skipped_commands : Int
    blocked_commands : Int
    } derive(Eq,
    Debug
    )

    WastSpecFileStatus

    pub enum WastSpecFileStatus {
    Passed
    Skipped(String)
    Failed(String)
    } derive(Eq,
    Debug
    )

    WastSpecRunSummary

    pub struct WastSpecRunSummary {
    files : Array[WastSpecFileReport]
    total_files : Int
    passed_files : Int
    skipped_files : Int
    failed_files : Int
    } derive(Eq,
    Debug
    )

    WastStaticAssertionKind

    pub enum WastStaticAssertionKind {
    Malformed
    Invalid
    Unlinkable
    } derive(Eq,
    Debug
    )

    WastStaticAssertionResult

    pub struct WastStaticAssertionResult {
    kind : WastStaticAssertionKind
    stage : WastStaticAssertionStage
    } derive(Eq,
    Debug
    )

    WastStaticAssertionStage

    pub enum WastStaticAssertionStage {
    ParseOrLowerRejected
    ValidateRejected
    ValidBeforeLink
    } derive(Eq,
    Debug
    )

    WastValue

    pub enum WastValue {
    I32(String)
    I64(String)
    F32(String)
    F64(String)
    RefNull(ValueType)
    RefFunc
    } derive(Eq,
    Debug
    )

    evaluate_wast_static_assertion

    fn evaluate_wast_static_assertion(cmd : WastCommand, path : String) -> Result[WastStaticAssertionResult, String]

    semantics before any runtime execution path.

    lookup_keyword

    fn lookup_keyword(s : String) -> TokenType?

    module_to_wast

    fn module_to_wast(mod : Module) -> Result[String, String]

    module_to_wast_with_context

    fn module_to_wast_with_context(mod : Module, ctx :
    PrettyPrintContext
    ) -> Result[String, String]

    run_wast_roundtrip_fuzz

    fn run_wast_roundtrip_fuzz(profile : String, seed : UInt64) -> Result[WastRoundtripFuzzStats, String]

    run_wast_spec_file

    fn run_wast_spec_file(path : String, source : String) -> WastSpecFileReport

    Drive one file through full parse/check and fold command-level failures into pass/skip/fail reporting used by summary consumers.

    run_wast_spec_suite

    fn run_wast_spec_suite(files : Array[(String, String)]) -> WastSpecRunSummary

    per-file diagnostics for downstream CLI/test rendering.

    script_to_wast

    fn script_to_wast(script : WastScript) -> Result[String, String]

    script_to_wast_with_context

    fn script_to_wast_with_context(script : WastScript, ctx :
    PrettyPrintContext
    ) -> Result[String, String]

    wast_arbitrary_feature_stats

    fn wast_arbitrary_feature_stats(mod : Module) -> WastArbitraryFeatureStats

    wast_ast_to_binary_module

    fn wast_ast_to_binary_module(mod : Module) -> Result[
    Module
    , String]

    wast_text_binary_roundtrip

    fn wast_text_binary_roundtrip(source : String, filename? : String) -> Result[(String,
    Module
    ), String]

    wast_to_binary_module

    fn wast_to_binary_module(source : String, filename? : String) -> Result[
    Module
    , String]

    wast_to_module

    fn wast_to_module(source : String, filename? : String) -> Result[Module, String]

    wast_to_script

    fn wast_to_script(source : String, filename? : String) -> Result[WastScript, String]