Skip to content

Commit 863fb4a

Browse files
committed
feat: Added BinaryenType to string converter
1 parent d071875 commit 863fb4a

File tree

5 files changed

+54
-8
lines changed

5 files changed

+54
-8
lines changed

binaryen/__global.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
from ._binaryen import lib
21
from .__expression import Expression
2+
from ._binaryen import lib
33

44

55
class Global:

binaryen/__module.py

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,11 @@
44

55
from . import literal
66
from .__expression import Block, Expression
7-
from .__global import Global
87
from .__feature import Feature
98
from .__functionref import FunctionRef
9+
from .__global import Global
1010
from ._binaryen import ffi, lib
11-
from .internals import (
12-
BinaryenHeapType,
13-
BinaryenLiteral,
14-
BinaryenOp,
15-
BinaryenType,
16-
)
11+
from .internals import BinaryenHeapType, BinaryenLiteral, BinaryenOp, BinaryenType
1712
from .type import TypeNone
1813

1914
type BinaryenExportRef = Any

binaryen/type/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
from .._binaryen import ffi as __ffi
77
from .._binaryen import lib as __lib
88
from . import array_type, heap_type, signature_type, struct_type
9+
from .to_str import to_str
910

1011
# These "types" are actually integers representing the type
1112
# e.g. none = 0, i32 = 2 etc.

binaryen/type/to_str.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
from .._binaryen import lib
2+
from ..internals import BinaryenType
3+
4+
5+
def to_str(type: BinaryenType) -> str:
6+
return {
7+
lib.BinaryenTypeNone(): "None",
8+
lib.BinaryenTypeInt32(): "Int32",
9+
lib.BinaryenTypeInt64(): "Int64",
10+
lib.BinaryenTypeFloat32(): "Float32",
11+
lib.BinaryenTypeFloat64(): "Float64",
12+
lib.BinaryenTypeVec128(): "Vec128",
13+
lib.BinaryenTypeFuncref(): "Funcref",
14+
lib.BinaryenTypeExternref(): "Externref",
15+
lib.BinaryenTypeAnyref(): "Anyref",
16+
lib.BinaryenTypeEqref(): "Eqref",
17+
lib.BinaryenTypeI31ref(): "I31ref",
18+
lib.BinaryenTypeStructref(): "Structref",
19+
lib.BinaryenTypeArrayref(): "Arrayref",
20+
lib.BinaryenTypeStringref(): "Stringref",
21+
lib.BinaryenTypeStringviewWTF8(): "StringviewWTF8",
22+
lib.BinaryenTypeStringviewWTF16(): "StringviewWTF16",
23+
lib.BinaryenTypeStringviewIter(): "StringviewIter",
24+
lib.BinaryenTypeNullref(): "Nullref",
25+
lib.BinaryenTypeNullExternref(): "NullExternref",
26+
lib.BinaryenTypeNullFuncref(): "NullFuncref",
27+
lib.BinaryenTypeUnreachable(): "Unreachable",
28+
lib.BinaryenTypeAuto(): "Auto",
29+
}[type]

examples/unary.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import binaryen
2+
3+
mod = binaryen.Module()
4+
5+
# f_sub = mod.unary(binaryen.operations.NegFloat32(), mod.f32(6.7))
6+
f_sub = mod.unary(
7+
binaryen.operations.NegFloat32(), mod.local_get(0, binaryen.type.Float32)
8+
)
9+
10+
mod.add_function(b"float_test", binaryen.type.Float32, binaryen.type.Float32, [], f_sub)
11+
mod.add_function_export(b"float_test", b"float_test")
12+
13+
# i_sub = mod.binary(binaryen.operations.SubInt32(), mod.i32(0), mod.i32(10))
14+
# i_sub = mod.binary(binaryen.operations.S, mod.i32(0), mod.local_get(0, binaryen.type.Int32))
15+
16+
mod.add_function(b"int_test", binaryen.type.Int32, binaryen.type.Int32, [], i_sub)
17+
mod.add_function_export(b"int_test", b"int_test")
18+
19+
mod.optimize()
20+
21+
mod.print()

0 commit comments

Comments
 (0)