diff options
Diffstat (limited to 'src/expr-visitor.h')
-rw-r--r-- | src/expr-visitor.h | 149 |
1 files changed, 73 insertions, 76 deletions
diff --git a/src/expr-visitor.h b/src/expr-visitor.h index 99a74ec1..3c8b6b5f 100644 --- a/src/expr-visitor.h +++ b/src/expr-visitor.h @@ -18,13 +18,10 @@ #define WABT_EXPR_VISITOR_H_ #include "common.h" +#include "ir.h" namespace wabt { -struct Catch; -struct Expr; -struct Func; - class ExprVisitor { public: class Delegate; @@ -44,82 +41,82 @@ class ExprVisitor::Delegate { public: virtual ~Delegate() {} - virtual Result OnBinaryExpr(Expr*) = 0; - virtual Result BeginBlockExpr(Expr*) = 0; - virtual Result EndBlockExpr(Expr*) = 0; - virtual Result OnBrExpr(Expr*) = 0; - virtual Result OnBrIfExpr(Expr*) = 0; - virtual Result OnBrTableExpr(Expr*) = 0; - virtual Result OnCallExpr(Expr*) = 0; - virtual Result OnCallIndirectExpr(Expr*) = 0; - virtual Result OnCompareExpr(Expr*) = 0; - virtual Result OnConstExpr(Expr*) = 0; - virtual Result OnConvertExpr(Expr*) = 0; - virtual Result OnCurrentMemoryExpr(Expr*) = 0; - virtual Result OnDropExpr(Expr*) = 0; - virtual Result OnGetGlobalExpr(Expr*) = 0; - virtual Result OnGetLocalExpr(Expr*) = 0; - virtual Result OnGrowMemoryExpr(Expr*) = 0; - virtual Result BeginIfExpr(Expr*) = 0; - virtual Result AfterIfTrueExpr(Expr*) = 0; - virtual Result EndIfExpr(Expr*) = 0; - virtual Result OnLoadExpr(Expr*) = 0; - virtual Result BeginLoopExpr(Expr*) = 0; - virtual Result EndLoopExpr(Expr*) = 0; - virtual Result OnNopExpr(Expr*) = 0; - virtual Result OnReturnExpr(Expr*) = 0; - virtual Result OnSelectExpr(Expr*) = 0; - virtual Result OnSetGlobalExpr(Expr*) = 0; - virtual Result OnSetLocalExpr(Expr*) = 0; - virtual Result OnStoreExpr(Expr*) = 0; - virtual Result OnTeeLocalExpr(Expr*) = 0; - virtual Result OnUnaryExpr(Expr*) = 0; - virtual Result OnUnreachableExpr(Expr*) = 0; - virtual Result BeginTryExpr(Expr*) = 0; - virtual Result EndTryExpr(Expr*) = 0; - virtual Result OnCatchExpr(Expr*, Catch*) = 0; - virtual Result OnThrowExpr(Expr*) = 0; - virtual Result OnRethrowExpr(Expr*) = 0; + virtual Result OnBinaryExpr(BinaryExpr*) = 0; + virtual Result BeginBlockExpr(BlockExpr*) = 0; + virtual Result EndBlockExpr(BlockExpr*) = 0; + virtual Result OnBrExpr(BrExpr*) = 0; + virtual Result OnBrIfExpr(BrIfExpr*) = 0; + virtual Result OnBrTableExpr(BrTableExpr*) = 0; + virtual Result OnCallExpr(CallExpr*) = 0; + virtual Result OnCallIndirectExpr(CallIndirectExpr*) = 0; + virtual Result OnCompareExpr(CompareExpr*) = 0; + virtual Result OnConstExpr(ConstExpr*) = 0; + virtual Result OnConvertExpr(ConvertExpr*) = 0; + virtual Result OnCurrentMemoryExpr(CurrentMemoryExpr*) = 0; + virtual Result OnDropExpr(DropExpr*) = 0; + virtual Result OnGetGlobalExpr(GetGlobalExpr*) = 0; + virtual Result OnGetLocalExpr(GetLocalExpr*) = 0; + virtual Result OnGrowMemoryExpr(GrowMemoryExpr*) = 0; + virtual Result BeginIfExpr(IfExpr*) = 0; + virtual Result AfterIfTrueExpr(IfExpr*) = 0; + virtual Result EndIfExpr(IfExpr*) = 0; + virtual Result OnLoadExpr(LoadExpr*) = 0; + virtual Result BeginLoopExpr(LoopExpr*) = 0; + virtual Result EndLoopExpr(LoopExpr*) = 0; + virtual Result OnNopExpr(NopExpr*) = 0; + virtual Result OnReturnExpr(ReturnExpr*) = 0; + virtual Result OnSelectExpr(SelectExpr*) = 0; + virtual Result OnSetGlobalExpr(SetGlobalExpr*) = 0; + virtual Result OnSetLocalExpr(SetLocalExpr*) = 0; + virtual Result OnStoreExpr(StoreExpr*) = 0; + virtual Result OnTeeLocalExpr(TeeLocalExpr*) = 0; + virtual Result OnUnaryExpr(UnaryExpr*) = 0; + virtual Result OnUnreachableExpr(UnreachableExpr*) = 0; + virtual Result BeginTryExpr(TryExpr*) = 0; + virtual Result EndTryExpr(TryExpr*) = 0; + virtual Result OnCatchExpr(TryExpr*, Catch*) = 0; + virtual Result OnThrowExpr(ThrowExpr*) = 0; + virtual Result OnRethrowExpr(RethrowExpr*) = 0; }; class ExprVisitor::DelegateNop : public ExprVisitor::Delegate { public: - Result OnBinaryExpr(Expr*) override { return Result::Ok; } - Result BeginBlockExpr(Expr*) override { return Result::Ok; } - Result EndBlockExpr(Expr*) override { return Result::Ok; } - Result OnBrExpr(Expr*) override { return Result::Ok; } - Result OnBrIfExpr(Expr*) override { return Result::Ok; } - Result OnBrTableExpr(Expr*) override { return Result::Ok; } - Result OnCallExpr(Expr*) override { return Result::Ok; } - Result OnCallIndirectExpr(Expr*) override { return Result::Ok; } - Result OnCompareExpr(Expr*) override { return Result::Ok; } - Result OnConstExpr(Expr*) override { return Result::Ok; } - Result OnConvertExpr(Expr*) override { return Result::Ok; } - Result OnCurrentMemoryExpr(Expr*) override { return Result::Ok; } - Result OnDropExpr(Expr*) override { return Result::Ok; } - Result OnGetGlobalExpr(Expr*) override { return Result::Ok; } - Result OnGetLocalExpr(Expr*) override { return Result::Ok; } - Result OnGrowMemoryExpr(Expr*) override { return Result::Ok; } - Result BeginIfExpr(Expr*) override { return Result::Ok; } - Result AfterIfTrueExpr(Expr*) override { return Result::Ok; } - Result EndIfExpr(Expr*) override { return Result::Ok; } - Result OnLoadExpr(Expr*) override { return Result::Ok; } - Result BeginLoopExpr(Expr*) override { return Result::Ok; } - Result EndLoopExpr(Expr*) override { return Result::Ok; } - Result OnNopExpr(Expr*) override { return Result::Ok; } - Result OnReturnExpr(Expr*) override { return Result::Ok; } - Result OnSelectExpr(Expr*) override { return Result::Ok; } - Result OnSetGlobalExpr(Expr*) override { return Result::Ok; } - Result OnSetLocalExpr(Expr*) override { return Result::Ok; } - Result OnStoreExpr(Expr*) override { return Result::Ok; } - Result OnTeeLocalExpr(Expr*) override { return Result::Ok; } - Result OnUnaryExpr(Expr*) override { return Result::Ok; } - Result OnUnreachableExpr(Expr*) override { return Result::Ok; } - Result BeginTryExpr(Expr*) override { return Result::Ok; } - Result EndTryExpr(Expr*) override { return Result::Ok; } - Result OnCatchExpr(Expr*, Catch*) override { return Result::Ok; } - Result OnThrowExpr(Expr*) override { return Result::Ok; } - Result OnRethrowExpr(Expr*) override { return Result::Ok; } + Result OnBinaryExpr(BinaryExpr*) override { return Result::Ok; } + Result BeginBlockExpr(BlockExpr*) override { return Result::Ok; } + Result EndBlockExpr(BlockExpr*) override { return Result::Ok; } + Result OnBrExpr(BrExpr*) override { return Result::Ok; } + Result OnBrIfExpr(BrIfExpr*) override { return Result::Ok; } + Result OnBrTableExpr(BrTableExpr*) override { return Result::Ok; } + Result OnCallExpr(CallExpr*) override { return Result::Ok; } + Result OnCallIndirectExpr(CallIndirectExpr*) override { return Result::Ok; } + Result OnCompareExpr(CompareExpr*) override { return Result::Ok; } + Result OnConstExpr(ConstExpr*) override { return Result::Ok; } + Result OnConvertExpr(ConvertExpr*) override { return Result::Ok; } + Result OnCurrentMemoryExpr(CurrentMemoryExpr*) override { return Result::Ok; } + Result OnDropExpr(DropExpr*) override { return Result::Ok; } + Result OnGetGlobalExpr(GetGlobalExpr*) override { return Result::Ok; } + Result OnGetLocalExpr(GetLocalExpr*) override { return Result::Ok; } + Result OnGrowMemoryExpr(GrowMemoryExpr*) override { return Result::Ok; } + Result BeginIfExpr(IfExpr*) override { return Result::Ok; } + Result AfterIfTrueExpr(IfExpr*) override { return Result::Ok; } + Result EndIfExpr(IfExpr*) override { return Result::Ok; } + Result OnLoadExpr(LoadExpr*) override { return Result::Ok; } + Result BeginLoopExpr(LoopExpr*) override { return Result::Ok; } + Result EndLoopExpr(LoopExpr*) override { return Result::Ok; } + Result OnNopExpr(NopExpr*) override { return Result::Ok; } + Result OnReturnExpr(ReturnExpr*) override { return Result::Ok; } + Result OnSelectExpr(SelectExpr*) override { return Result::Ok; } + Result OnSetGlobalExpr(SetGlobalExpr*) override { return Result::Ok; } + Result OnSetLocalExpr(SetLocalExpr*) override { return Result::Ok; } + Result OnStoreExpr(StoreExpr*) override { return Result::Ok; } + Result OnTeeLocalExpr(TeeLocalExpr*) override { return Result::Ok; } + Result OnUnaryExpr(UnaryExpr*) override { return Result::Ok; } + Result OnUnreachableExpr(UnreachableExpr*) override { return Result::Ok; } + Result BeginTryExpr(TryExpr*) override { return Result::Ok; } + Result EndTryExpr(TryExpr*) override { return Result::Ok; } + Result OnCatchExpr(TryExpr*, Catch*) override { return Result::Ok; } + Result OnThrowExpr(ThrowExpr*) override { return Result::Ok; } + Result OnRethrowExpr(RethrowExpr*) override { return Result::Ok; } }; } // namespace wabt |