1 from .ast import Statement, ValueOrLiteral, Signal
2 from typing import Iterable, Union, Any, Mapping
3 from contextlib import ContextDecorator
8 class _ModuleBuilderProxy:
12 Statements = Union[Statement,
16 class _ModuleBuilderDomainExplicit(_ModuleBuilderProxy):
18 assigns: Statements) -> '_ModuleBuilderDomainExplicit':
22 class _ModuleBuilderDomainImplicit(_ModuleBuilderProxy):
23 sync: _ModuleBuilderDomainExplicit
24 comb: _ModuleBuilderDomainExplicit
27 class _ModuleBuilderRoot:
28 domain: _ModuleBuilderDomainImplicit
29 d: _ModuleBuilderDomainImplicit
32 class _ValuelessContext:
33 def __enter__(self) -> None:
36 def __exit__(self, exc_type: Any, exc_value: Any, traceback: Any) -> bool:
43 encoding: Mapping[str, int],
44 decoding: Mapping[int, str]):
46 self.encoding = encoding
47 self.decoding = decoding
49 def ongoing(self, name: str) -> bool:
53 class Module(_ModuleBuilderRoot):
56 def If(self, cond: ValueOrLiteral) -> _ValuelessContext:
59 def Elif(self, cond: ValueOrLiteral) -> _ValuelessContext:
62 def Else(self) -> _ValuelessContext:
65 def Switch(self, test: ValueOrLiteral) -> _ValuelessContext:
68 def Case(self, value: Union[None, int, bool] = None) -> _ValuelessContext:
71 def elaborate(self, platform: Any) -> Any: