aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/Structure
diff options
context:
space:
mode:
Diffstat (limited to 'src/Structure')
-rw-r--r--src/Structure/Instructions/Expr.php23
-rw-r--r--src/Structure/Modules/DataMode.php7
-rw-r--r--src/Structure/Modules/DataModes/Active.php7
-rw-r--r--src/Structure/Modules/Elem.php4
-rw-r--r--src/Structure/Modules/ElemMode.php7
-rw-r--r--src/Structure/Modules/ElemModes/Active.php7
-rw-r--r--src/Structure/Modules/Func.php5
-rw-r--r--src/Structure/Modules/Global_.php7
8 files changed, 30 insertions, 37 deletions
diff --git a/src/Structure/Instructions/Expr.php b/src/Structure/Instructions/Expr.php
deleted file mode 100644
index ceefcc0..0000000
--- a/src/Structure/Instructions/Expr.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace Nsfisis\Waddiwasi\Structure\Instructions;
-
-final readonly class Expr
-{
- /**
- * @var non-empty-list<Instr>
- */
- public array $instrs;
-
- /**
- * @param list<Instr> $instrs
- */
- public function __construct(
- array $instrs,
- ) {
- $instrs[] = Instr::End();
- $this->instrs = $instrs;
- }
-}
diff --git a/src/Structure/Modules/DataMode.php b/src/Structure/Modules/DataMode.php
index 96cd7dc..e9b5a72 100644
--- a/src/Structure/Modules/DataMode.php
+++ b/src/Structure/Modules/DataMode.php
@@ -4,7 +4,7 @@ declare(strict_types=1);
namespace Nsfisis\Waddiwasi\Structure\Modules;
-use Nsfisis\Waddiwasi\Structure\Instructions\Expr;
+use Nsfisis\Waddiwasi\Structure\Instructions\Instr;
abstract readonly class DataMode
{
@@ -13,9 +13,12 @@ abstract readonly class DataMode
return new DataModes\Passive();
}
+ /**
+ * @param list<Instr> $offset
+ */
final public static function Active(
int $memory,
- Expr $offset,
+ array $offset,
): DataModes\Active {
return new DataModes\Active($memory, $offset);
}
diff --git a/src/Structure/Modules/DataModes/Active.php b/src/Structure/Modules/DataModes/Active.php
index 1a46f3e..de52861 100644
--- a/src/Structure/Modules/DataModes/Active.php
+++ b/src/Structure/Modules/DataModes/Active.php
@@ -4,14 +4,17 @@ declare(strict_types=1);
namespace Nsfisis\Waddiwasi\Structure\Modules\DataModes;
-use Nsfisis\Waddiwasi\Structure\Instructions\Expr;
+use Nsfisis\Waddiwasi\Structure\Instructions\Instr;
use Nsfisis\Waddiwasi\Structure\Modules\DataMode;
final readonly class Active extends DataMode
{
+ /**
+ * @param list<Instr> $offset
+ */
protected function __construct(
public int $memory,
- public Expr $offset,
+ public array $offset,
) {
}
}
diff --git a/src/Structure/Modules/Elem.php b/src/Structure/Modules/Elem.php
index e074590..5050fad 100644
--- a/src/Structure/Modules/Elem.php
+++ b/src/Structure/Modules/Elem.php
@@ -4,13 +4,13 @@ declare(strict_types=1);
namespace Nsfisis\Waddiwasi\Structure\Modules;
-use Nsfisis\Waddiwasi\Structure\Instructions\Expr;
use Nsfisis\Waddiwasi\Structure\Types\RefType;
+use Nsfisis\Waddiwasi\Structure\Instructions\Instr;
final readonly class Elem
{
/**
- * @param list<Expr> $init
+ * @param list<list<Instr>> $init
*/
public function __construct(
public RefType $type,
diff --git a/src/Structure/Modules/ElemMode.php b/src/Structure/Modules/ElemMode.php
index 051a7e1..e3e7693 100644
--- a/src/Structure/Modules/ElemMode.php
+++ b/src/Structure/Modules/ElemMode.php
@@ -4,7 +4,7 @@ declare(strict_types=1);
namespace Nsfisis\Waddiwasi\Structure\Modules;
-use Nsfisis\Waddiwasi\Structure\Instructions\Expr;
+use Nsfisis\Waddiwasi\Structure\Instructions\Instr;
abstract readonly class ElemMode
{
@@ -13,9 +13,12 @@ abstract readonly class ElemMode
return new ElemModes\Passive();
}
+ /**
+ * @param list<Instr> $offset
+ */
final public static function Active(
int $table,
- Expr $offset,
+ array $offset,
): ElemModes\Active {
return new ElemModes\Active($table, $offset);
}
diff --git a/src/Structure/Modules/ElemModes/Active.php b/src/Structure/Modules/ElemModes/Active.php
index bd5f123..5487542 100644
--- a/src/Structure/Modules/ElemModes/Active.php
+++ b/src/Structure/Modules/ElemModes/Active.php
@@ -4,14 +4,17 @@ declare(strict_types=1);
namespace Nsfisis\Waddiwasi\Structure\Modules\ElemModes;
-use Nsfisis\Waddiwasi\Structure\Instructions\Expr;
+use Nsfisis\Waddiwasi\Structure\Instructions\Instr;
use Nsfisis\Waddiwasi\Structure\Modules\ElemMode;
final readonly class Active extends ElemMode
{
+ /**
+ * @param list<Instr> $offset
+ */
protected function __construct(
public int $table,
- public Expr $offset,
+ public array $offset,
) {
}
}
diff --git a/src/Structure/Modules/Func.php b/src/Structure/Modules/Func.php
index bab1889..7c76b5e 100644
--- a/src/Structure/Modules/Func.php
+++ b/src/Structure/Modules/Func.php
@@ -4,17 +4,18 @@ declare(strict_types=1);
namespace Nsfisis\Waddiwasi\Structure\Modules;
-use Nsfisis\Waddiwasi\Structure\Instructions\Expr;
+use Nsfisis\Waddiwasi\Structure\Instructions\Instr;
final readonly class Func
{
/**
* @param list<Local> $locals
+ * @param list<Instr> $body
*/
public function __construct(
public int $type,
public array $locals,
- public Expr $body,
+ public array $body,
) {
}
}
diff --git a/src/Structure/Modules/Global_.php b/src/Structure/Modules/Global_.php
index 9d6d371..aae1706 100644
--- a/src/Structure/Modules/Global_.php
+++ b/src/Structure/Modules/Global_.php
@@ -4,14 +4,17 @@ declare(strict_types=1);
namespace Nsfisis\Waddiwasi\Structure\Modules;
-use Nsfisis\Waddiwasi\Structure\Instructions\Expr;
+use Nsfisis\Waddiwasi\Structure\Instructions\Instr;
use Nsfisis\Waddiwasi\Structure\Types\GlobalType;
final readonly class Global_
{
+ /**
+ * @param list<Instr> $init
+ */
public function __construct(
public GlobalType $type,
- public Expr $init,
+ public array $init,
) {
}
}