Skip to content

Wat

wat

WatPrinter dataclass

Source code in xdsl/dialects/wasm/wat.py
15
16
17
18
19
20
21
22
23
24
25
26
27
28
@dataclass(eq=False, repr=False)
class WatPrinter:
    stream: Any | None = field(default=None)

    def print_string(self, text: str) -> None:
        print(text, end="", file=self.stream)

    @contextmanager
    def in_parens(self):
        self.print_string("(")
        try:
            yield
        finally:
            self.print_string(")")

stream: Any | None = field(default=None) class-attribute instance-attribute

__init__(stream: Any | None = None) -> None

print_string(text: str) -> None

Source code in xdsl/dialects/wasm/wat.py
19
20
def print_string(self, text: str) -> None:
    print(text, end="", file=self.stream)

in_parens()

Source code in xdsl/dialects/wasm/wat.py
22
23
24
25
26
27
28
@contextmanager
def in_parens(self):
    self.print_string("(")
    try:
        yield
    finally:
        self.print_string(")")

WatPrintable

Bases: ABC

Source code in xdsl/dialects/wasm/wat.py
31
32
33
34
class WatPrintable(abc.ABC):
    @abc.abstractmethod
    def print_wat(self, printer: WatPrinter) -> None:
        raise NotImplementedError()

print_wat(printer: WatPrinter) -> None abstractmethod

Source code in xdsl/dialects/wasm/wat.py
32
33
34
@abc.abstractmethod
def print_wat(self, printer: WatPrinter) -> None:
    raise NotImplementedError()

WatTarget dataclass

Bases: Target

Source code in xdsl/dialects/wasm/wat.py
37
38
39
40
41
42
43
44
45
46
47
48
@dataclass(frozen=True)
class WatTarget(Target):
    name = "wat"

    def emit(self, ctx: Context, module: ModuleOp, output: IO[str]) -> None:
        from xdsl.dialects.wasm import WasmModuleOp

        for op in module.walk():
            if isinstance(op, WasmModuleOp):
                printer = WatPrinter(output)
                op.print_wat(printer)
                print("", file=output)

name = 'wat' class-attribute instance-attribute

__init__() -> None

emit(ctx: Context, module: ModuleOp, output: IO[str]) -> None

Source code in xdsl/dialects/wasm/wat.py
41
42
43
44
45
46
47
48
def emit(self, ctx: Context, module: ModuleOp, output: IO[str]) -> None:
    from xdsl.dialects.wasm import WasmModuleOp

    for op in module.walk():
        if isinstance(op, WasmModuleOp):
            printer = WatPrinter(output)
            op.print_wat(printer)
            print("", file=output)