From e2495878b872b341e6e04eed31dd255b1a6e256f Mon Sep 17 00:00:00 2001 From: nsfisis Date: Wed, 3 Jan 2024 01:35:32 +0900 Subject: feat: implement binary decoder --- src/Structure/Modules/Data.php | 17 ++++++++++++ src/Structure/Modules/DataMode.php | 23 ++++++++++++++++ src/Structure/Modules/DataModes/Active.php | 18 +++++++++++++ src/Structure/Modules/DataModes/Passive.php | 14 ++++++++++ src/Structure/Modules/Elem.php | 21 +++++++++++++++ src/Structure/Modules/ElemMode.php | 28 ++++++++++++++++++++ src/Structure/Modules/ElemModes/Active.php | 18 +++++++++++++ src/Structure/Modules/ElemModes/Declarative.php | 14 ++++++++++ src/Structure/Modules/ElemModes/Passive.php | 14 ++++++++++ src/Structure/Modules/Export.php | 17 ++++++++++++ src/Structure/Modules/ExportDesc.php | 33 +++++++++++++++++++++++ src/Structure/Modules/ExportDescs/Func.php | 16 +++++++++++ src/Structure/Modules/ExportDescs/Global_.php | 16 +++++++++++ src/Structure/Modules/ExportDescs/Mem.php | 16 +++++++++++ src/Structure/Modules/ExportDescs/Table.php | 16 +++++++++++ src/Structure/Modules/Func.php | 21 +++++++++++++++ src/Structure/Modules/Global_.php | 17 ++++++++++++ src/Structure/Modules/Import.php | 19 ++++++++++++++ src/Structure/Modules/ImportDesc.php | 33 +++++++++++++++++++++++ src/Structure/Modules/ImportDescs/Func.php | 16 +++++++++++ src/Structure/Modules/ImportDescs/Global_.php | 16 +++++++++++ src/Structure/Modules/ImportDescs/Mem.php | 16 +++++++++++ src/Structure/Modules/ImportDescs/Table.php | 16 +++++++++++ src/Structure/Modules/Local.php | 15 +++++++++++ src/Structure/Modules/Mem.php | 15 +++++++++++ src/Structure/Modules/Module.php | 35 +++++++++++++++++++++++++ src/Structure/Modules/Start.php | 15 +++++++++++ src/Structure/Modules/Table.php | 15 +++++++++++ 28 files changed, 530 insertions(+) create mode 100644 src/Structure/Modules/Data.php create mode 100644 src/Structure/Modules/DataMode.php create mode 100644 src/Structure/Modules/DataModes/Active.php create mode 100644 src/Structure/Modules/DataModes/Passive.php create mode 100644 src/Structure/Modules/Elem.php create mode 100644 src/Structure/Modules/ElemMode.php create mode 100644 src/Structure/Modules/ElemModes/Active.php create mode 100644 src/Structure/Modules/ElemModes/Declarative.php create mode 100644 src/Structure/Modules/ElemModes/Passive.php create mode 100644 src/Structure/Modules/Export.php create mode 100644 src/Structure/Modules/ExportDesc.php create mode 100644 src/Structure/Modules/ExportDescs/Func.php create mode 100644 src/Structure/Modules/ExportDescs/Global_.php create mode 100644 src/Structure/Modules/ExportDescs/Mem.php create mode 100644 src/Structure/Modules/ExportDescs/Table.php create mode 100644 src/Structure/Modules/Func.php create mode 100644 src/Structure/Modules/Global_.php create mode 100644 src/Structure/Modules/Import.php create mode 100644 src/Structure/Modules/ImportDesc.php create mode 100644 src/Structure/Modules/ImportDescs/Func.php create mode 100644 src/Structure/Modules/ImportDescs/Global_.php create mode 100644 src/Structure/Modules/ImportDescs/Mem.php create mode 100644 src/Structure/Modules/ImportDescs/Table.php create mode 100644 src/Structure/Modules/Local.php create mode 100644 src/Structure/Modules/Mem.php create mode 100644 src/Structure/Modules/Module.php create mode 100644 src/Structure/Modules/Start.php create mode 100644 src/Structure/Modules/Table.php (limited to 'src/Structure/Modules') diff --git a/src/Structure/Modules/Data.php b/src/Structure/Modules/Data.php new file mode 100644 index 0000000..7d36600 --- /dev/null +++ b/src/Structure/Modules/Data.php @@ -0,0 +1,17 @@ + $init + */ + public function __construct( + public array $init, + public DataMode $mode, + ) { + } +} diff --git a/src/Structure/Modules/DataMode.php b/src/Structure/Modules/DataMode.php new file mode 100644 index 0000000..08228d9 --- /dev/null +++ b/src/Structure/Modules/DataMode.php @@ -0,0 +1,23 @@ + $init + */ + public function __construct( + public RefType $type, + public array $init, + public ElemMode $mode, + ) { + } +} diff --git a/src/Structure/Modules/ElemMode.php b/src/Structure/Modules/ElemMode.php new file mode 100644 index 0000000..d6496dd --- /dev/null +++ b/src/Structure/Modules/ElemMode.php @@ -0,0 +1,28 @@ + $locals + */ + public function __construct( + public TypeIdx $type, + public array $locals, + public Expr $body, + ) { + } +} diff --git a/src/Structure/Modules/Global_.php b/src/Structure/Modules/Global_.php new file mode 100644 index 0000000..9d6d371 --- /dev/null +++ b/src/Structure/Modules/Global_.php @@ -0,0 +1,17 @@ + $types + * @param list $funcs + * @param list $tables + * @param list $mems + * @param list $globals + * @param list $elems + * @param list $datas + * @param list $imports + * @param list $exports + */ + public function __construct( + public array $types, + public array $funcs, + public array $tables, + public array $mems, + public array $globals, + public array $elems, + public array $datas, + public ?Start $start, + public array $imports, + public array $exports, + ) { + } +} diff --git a/src/Structure/Modules/Start.php b/src/Structure/Modules/Start.php new file mode 100644 index 0000000..afb583b --- /dev/null +++ b/src/Structure/Modules/Start.php @@ -0,0 +1,15 @@ +