diff options
Diffstat (limited to 'src/Execution/StackEntries')
| -rw-r--r-- | src/Execution/StackEntries/Frame.php | 23 | ||||
| -rw-r--r-- | src/Execution/StackEntries/Label.php | 21 | ||||
| -rw-r--r-- | src/Execution/StackEntries/Value.php | 16 |
3 files changed, 60 insertions, 0 deletions
diff --git a/src/Execution/StackEntries/Frame.php b/src/Execution/StackEntries/Frame.php new file mode 100644 index 0000000..f8bd68e --- /dev/null +++ b/src/Execution/StackEntries/Frame.php @@ -0,0 +1,23 @@ +<?php + +declare(strict_types=1); + +namespace Nsfisis\Waddiwasi\Execution\StackEntries; + +use Nsfisis\Waddiwasi\Execution\ModuleInst; +use Nsfisis\Waddiwasi\Execution\StackEntry; +use Nsfisis\Waddiwasi\Execution\Val; + +final readonly class Frame extends StackEntry +{ + /** + * @param int<0, max> $arity + * @param list<Val> $locals + */ + public function __construct( + public int $arity, + public array $locals, + public ModuleInst $module, + ) { + } +} diff --git a/src/Execution/StackEntries/Label.php b/src/Execution/StackEntries/Label.php new file mode 100644 index 0000000..b83fb0f --- /dev/null +++ b/src/Execution/StackEntries/Label.php @@ -0,0 +1,21 @@ +<?php + +declare(strict_types=1); + +namespace Nsfisis\Waddiwasi\Execution\StackEntries; + +use Nsfisis\Waddiwasi\Execution\StackEntry; +use Nsfisis\Waddiwasi\Structure\Instructions\Instr; + +final readonly class Label extends StackEntry +{ + /** + * @param int<0, max> $arity + * @param list<Instr> $target + */ + public function __construct( + public int $arity, + public array $target, + ) { + } +} diff --git a/src/Execution/StackEntries/Value.php b/src/Execution/StackEntries/Value.php new file mode 100644 index 0000000..1cd1146 --- /dev/null +++ b/src/Execution/StackEntries/Value.php @@ -0,0 +1,16 @@ +<?php + +declare(strict_types=1); + +namespace Nsfisis\Waddiwasi\Execution\StackEntries; + +use Nsfisis\Waddiwasi\Execution\StackEntry; +use Nsfisis\Waddiwasi\Execution\Val; + +final readonly class Value extends StackEntry +{ + public function __construct( + public Val $inner, + ) { + } +} |
