summaryrefslogtreecommitdiff
path: root/include/wabt/expr-visitor.h
diff options
context:
space:
mode:
authorSoni L. <EnderMoneyMod@gmail.com>2024-11-20 14:51:48 -0300
committerGitHub <noreply@github.com>2024-11-20 09:51:48 -0800
commita0b7abef00b59eeafed58c774195189425d020b0 (patch)
tree6f7b0747d3a3ef435bda9ac14ca22d417877796b /include/wabt/expr-visitor.h
parent958d0a72030227bf3133c8b99c7c670bcdbc7636 (diff)
downloadwabt-a0b7abef00b59eeafed58c774195189425d020b0.tar.gz
wabt-a0b7abef00b59eeafed58c774195189425d020b0.tar.bz2
wabt-a0b7abef00b59eeafed58c774195189425d020b0.zip
binary/wat: Implement EHv4 (#2470)
This pull request implements EHv4. Binary is mostly untested until interp is working.
Diffstat (limited to 'include/wabt/expr-visitor.h')
-rw-r--r--include/wabt/expr-visitor.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/include/wabt/expr-visitor.h b/include/wabt/expr-visitor.h
index cbc317cd..5be78793 100644
--- a/include/wabt/expr-visitor.h
+++ b/include/wabt/expr-visitor.h
@@ -41,6 +41,7 @@ class ExprVisitor {
IfFalse,
Loop,
Try,
+ TryTable,
Catch,
};
@@ -73,6 +74,8 @@ class ExprVisitor::Delegate {
virtual Result OnBrExpr(BrExpr*) = 0;
virtual Result OnBrIfExpr(BrIfExpr*) = 0;
virtual Result OnBrTableExpr(BrTableExpr*) = 0;
+ virtual Result BeginTryTableExpr(TryTableExpr*) = 0;
+ virtual Result EndTryTableExpr(TryTableExpr*) = 0;
virtual Result OnCallExpr(CallExpr*) = 0;
virtual Result OnCallIndirectExpr(CallIndirectExpr*) = 0;
virtual Result OnCallRefExpr(CallRefExpr*) = 0;
@@ -122,6 +125,7 @@ class ExprVisitor::Delegate {
virtual Result OnDelegateExpr(TryExpr*) = 0;
virtual Result EndTryExpr(TryExpr*) = 0;
virtual Result OnThrowExpr(ThrowExpr*) = 0;
+ virtual Result OnThrowRefExpr(ThrowRefExpr*) = 0;
virtual Result OnRethrowExpr(RethrowExpr*) = 0;
virtual Result OnAtomicWaitExpr(AtomicWaitExpr*) = 0;
virtual Result OnAtomicFenceExpr(AtomicFenceExpr*) = 0;
@@ -147,6 +151,8 @@ class ExprVisitor::DelegateNop : public ExprVisitor::Delegate {
Result OnBrExpr(BrExpr*) override { return Result::Ok; }
Result OnBrIfExpr(BrIfExpr*) override { return Result::Ok; }
Result OnBrTableExpr(BrTableExpr*) override { return Result::Ok; }
+ Result BeginTryTableExpr(TryTableExpr*) override { return Result::Ok; }
+ Result EndTryTableExpr(TryTableExpr*) override { return Result::Ok; }
Result OnCallExpr(CallExpr*) override { return Result::Ok; }
Result OnCallIndirectExpr(CallIndirectExpr*) override { return Result::Ok; }
Result OnCallRefExpr(CallRefExpr*) override { return Result::Ok; }
@@ -198,6 +204,7 @@ class ExprVisitor::DelegateNop : public ExprVisitor::Delegate {
Result OnDelegateExpr(TryExpr*) override { return Result::Ok; }
Result EndTryExpr(TryExpr*) override { return Result::Ok; }
Result OnThrowExpr(ThrowExpr*) override { return Result::Ok; }
+ Result OnThrowRefExpr(ThrowRefExpr*) override { return Result::Ok; }
Result OnRethrowExpr(RethrowExpr*) override { return Result::Ok; }
Result OnAtomicWaitExpr(AtomicWaitExpr*) override { return Result::Ok; }
Result OnAtomicFenceExpr(AtomicFenceExpr*) override { return Result::Ok; }