@@ -41,6 +41,7 @@ class ExprVisitor {
41
41
IfFalse,
42
42
Loop,
43
43
Try,
44
+ TryTable,
44
45
Catch,
45
46
};
46
47
@@ -72,7 +73,12 @@ class ExprVisitor::Delegate {
72
73
virtual Result EndBlockExpr (BlockExpr*) = 0;
73
74
virtual Result OnBrExpr (BrExpr*) = 0;
74
75
virtual Result OnBrIfExpr (BrIfExpr*) = 0;
76
+ virtual Result OnBrOnCastExpr (BrOnCastExpr*) = 0;
77
+ virtual Result OnBrOnNonNullExpr (BrOnNonNullExpr*) = 0;
78
+ virtual Result OnBrOnNullExpr (BrOnNullExpr*) = 0;
75
79
virtual Result OnBrTableExpr (BrTableExpr*) = 0;
80
+ virtual Result BeginTryTableExpr (TryTableExpr*) = 0;
81
+ virtual Result EndTryTableExpr (TryTableExpr*) = 0;
76
82
virtual Result OnCallExpr (CallExpr*) = 0;
77
83
virtual Result OnCallIndirectExpr (CallIndirectExpr*) = 0;
78
84
virtual Result OnCallRefExpr (CallRefExpr*) = 0;
@@ -106,13 +112,15 @@ class ExprVisitor::Delegate {
106
112
virtual Result OnTableGrowExpr (TableGrowExpr*) = 0;
107
113
virtual Result OnTableSizeExpr (TableSizeExpr*) = 0;
108
114
virtual Result OnTableFillExpr (TableFillExpr*) = 0;
115
+ virtual Result OnRefAsNonNullExpr (RefAsNonNullExpr*) = 0;
109
116
virtual Result OnRefFuncExpr (RefFuncExpr*) = 0;
110
117
virtual Result OnRefNullExpr (RefNullExpr*) = 0;
111
118
virtual Result OnRefIsNullExpr (RefIsNullExpr*) = 0;
112
119
virtual Result OnNopExpr (NopExpr*) = 0;
113
120
virtual Result OnReturnExpr (ReturnExpr*) = 0;
114
121
virtual Result OnReturnCallExpr (ReturnCallExpr*) = 0;
115
122
virtual Result OnReturnCallIndirectExpr (ReturnCallIndirectExpr*) = 0;
123
+ virtual Result OnReturnCallRefExpr (ReturnCallRefExpr*) = 0;
116
124
virtual Result OnSelectExpr (SelectExpr*) = 0;
117
125
virtual Result OnStoreExpr (StoreExpr*) = 0;
118
126
virtual Result OnUnaryExpr (UnaryExpr*) = 0;
@@ -122,6 +130,7 @@ class ExprVisitor::Delegate {
122
130
virtual Result OnDelegateExpr (TryExpr*) = 0;
123
131
virtual Result EndTryExpr (TryExpr*) = 0;
124
132
virtual Result OnThrowExpr (ThrowExpr*) = 0;
133
+ virtual Result OnThrowRefExpr (ThrowRefExpr*) = 0;
125
134
virtual Result OnRethrowExpr (RethrowExpr*) = 0;
126
135
virtual Result OnAtomicWaitExpr (AtomicWaitExpr*) = 0;
127
136
virtual Result OnAtomicFenceExpr (AtomicFenceExpr*) = 0;
@@ -137,6 +146,24 @@ class ExprVisitor::Delegate {
137
146
virtual Result OnSimdShuffleOpExpr (SimdShuffleOpExpr*) = 0;
138
147
virtual Result OnLoadSplatExpr (LoadSplatExpr*) = 0;
139
148
virtual Result OnLoadZeroExpr (LoadZeroExpr*) = 0;
149
+ virtual Result OnArrayCopyExpr (ArrayCopyExpr*) = 0;
150
+ virtual Result OnArrayFillExpr (ArrayFillExpr*) = 0;
151
+ virtual Result OnArrayGetExpr (ArrayGetExpr*) = 0;
152
+ virtual Result OnArrayInitDataExpr (ArrayInitDataExpr*) = 0;
153
+ virtual Result OnArrayInitElemExpr (ArrayInitElemExpr*) = 0;
154
+ virtual Result OnArrayNewExpr (ArrayNewExpr*) = 0;
155
+ virtual Result OnArrayNewDataExpr (ArrayNewDataExpr*) = 0;
156
+ virtual Result OnArrayNewDefaultExpr (ArrayNewDefaultExpr*) = 0;
157
+ virtual Result OnArrayNewElemExpr (ArrayNewElemExpr*) = 0;
158
+ virtual Result OnArrayNewFixedExpr (ArrayNewFixedExpr*) = 0;
159
+ virtual Result OnArraySetExpr (ArraySetExpr*) = 0;
160
+ virtual Result OnGCUnaryExpr (GCUnaryExpr*) = 0;
161
+ virtual Result OnRefCastExpr (RefCastExpr*) = 0;
162
+ virtual Result OnRefTestExpr (RefTestExpr*) = 0;
163
+ virtual Result OnStructGetExpr (StructGetExpr*) = 0;
164
+ virtual Result OnStructNewExpr (StructNewExpr*) = 0;
165
+ virtual Result OnStructNewDefaultExpr (StructNewDefaultExpr*) = 0;
166
+ virtual Result OnStructSetExpr (StructSetExpr*) = 0;
140
167
};
141
168
142
169
class ExprVisitor ::DelegateNop : public ExprVisitor::Delegate {
@@ -146,7 +173,12 @@ class ExprVisitor::DelegateNop : public ExprVisitor::Delegate {
146
173
Result EndBlockExpr (BlockExpr*) override { return Result::Ok; }
147
174
Result OnBrExpr (BrExpr*) override { return Result::Ok; }
148
175
Result OnBrIfExpr (BrIfExpr*) override { return Result::Ok; }
176
+ Result OnBrOnCastExpr (BrOnCastExpr*) override { return Result::Ok; };
177
+ Result OnBrOnNonNullExpr (BrOnNonNullExpr*) override { return Result::Ok; };
178
+ Result OnBrOnNullExpr (BrOnNullExpr*) override { return Result::Ok; };
149
179
Result OnBrTableExpr (BrTableExpr*) override { return Result::Ok; }
180
+ Result BeginTryTableExpr (TryTableExpr*) override { return Result::Ok; }
181
+ Result EndTryTableExpr (TryTableExpr*) override { return Result::Ok; }
150
182
Result OnCallExpr (CallExpr*) override { return Result::Ok; }
151
183
Result OnCallIndirectExpr (CallIndirectExpr*) override { return Result::Ok; }
152
184
Result OnCallRefExpr (CallRefExpr*) override { return Result::Ok; }
@@ -180,6 +212,7 @@ class ExprVisitor::DelegateNop : public ExprVisitor::Delegate {
180
212
Result OnTableGrowExpr (TableGrowExpr*) override { return Result::Ok; }
181
213
Result OnTableSizeExpr (TableSizeExpr*) override { return Result::Ok; }
182
214
Result OnTableFillExpr (TableFillExpr*) override { return Result::Ok; }
215
+ Result OnRefAsNonNullExpr (RefAsNonNullExpr*) override { return Result::Ok; }
183
216
Result OnRefFuncExpr (RefFuncExpr*) override { return Result::Ok; }
184
217
Result OnRefNullExpr (RefNullExpr*) override { return Result::Ok; }
185
218
Result OnRefIsNullExpr (RefIsNullExpr*) override { return Result::Ok; }
@@ -189,6 +222,7 @@ class ExprVisitor::DelegateNop : public ExprVisitor::Delegate {
189
222
Result OnReturnCallIndirectExpr (ReturnCallIndirectExpr*) override {
190
223
return Result::Ok;
191
224
}
225
+ Result OnReturnCallRefExpr (ReturnCallRefExpr*) override { return Result::Ok; }
192
226
Result OnSelectExpr (SelectExpr*) override { return Result::Ok; }
193
227
Result OnStoreExpr (StoreExpr*) override { return Result::Ok; }
194
228
Result OnUnaryExpr (UnaryExpr*) override { return Result::Ok; }
@@ -198,6 +232,7 @@ class ExprVisitor::DelegateNop : public ExprVisitor::Delegate {
198
232
Result OnDelegateExpr (TryExpr*) override { return Result::Ok; }
199
233
Result EndTryExpr (TryExpr*) override { return Result::Ok; }
200
234
Result OnThrowExpr (ThrowExpr*) override { return Result::Ok; }
235
+ Result OnThrowRefExpr (ThrowRefExpr*) override { return Result::Ok; }
201
236
Result OnRethrowExpr (RethrowExpr*) override { return Result::Ok; }
202
237
Result OnAtomicWaitExpr (AtomicWaitExpr*) override { return Result::Ok; }
203
238
Result OnAtomicFenceExpr (AtomicFenceExpr*) override { return Result::Ok; }
@@ -215,6 +250,28 @@ class ExprVisitor::DelegateNop : public ExprVisitor::Delegate {
215
250
Result OnSimdShuffleOpExpr (SimdShuffleOpExpr*) override { return Result::Ok; }
216
251
Result OnLoadSplatExpr (LoadSplatExpr*) override { return Result::Ok; }
217
252
Result OnLoadZeroExpr (LoadZeroExpr*) override { return Result::Ok; }
253
+ Result OnArrayCopyExpr (ArrayCopyExpr*) override { return Result::Ok; }
254
+ Result OnArrayFillExpr (ArrayFillExpr*) override { return Result::Ok; }
255
+ Result OnArrayGetExpr (ArrayGetExpr*) override { return Result::Ok; }
256
+ Result OnArrayInitDataExpr (ArrayInitDataExpr*) override { return Result::Ok; }
257
+ Result OnArrayInitElemExpr (ArrayInitElemExpr*) override { return Result::Ok; }
258
+ Result OnArrayNewExpr (ArrayNewExpr*) override { return Result::Ok; }
259
+ Result OnArrayNewDataExpr (ArrayNewDataExpr*) override { return Result::Ok; }
260
+ Result OnArrayNewDefaultExpr (ArrayNewDefaultExpr*) override {
261
+ return Result::Ok;
262
+ }
263
+ Result OnArrayNewElemExpr (ArrayNewElemExpr*) override { return Result::Ok; }
264
+ Result OnArrayNewFixedExpr (ArrayNewFixedExpr*) override { return Result::Ok; }
265
+ Result OnArraySetExpr (ArraySetExpr*) override { return Result::Ok; }
266
+ Result OnGCUnaryExpr (GCUnaryExpr*) override { return Result::Ok; }
267
+ Result OnRefCastExpr (RefCastExpr*) override { return Result::Ok; }
268
+ Result OnRefTestExpr (RefTestExpr*) override { return Result::Ok; }
269
+ Result OnStructGetExpr (StructGetExpr*) override { return Result::Ok; }
270
+ Result OnStructNewExpr (StructNewExpr*) override { return Result::Ok; }
271
+ Result OnStructNewDefaultExpr (StructNewDefaultExpr*) override {
272
+ return Result::Ok;
273
+ }
274
+ Result OnStructSetExpr (StructSetExpr*) override { return Result::Ok; }
218
275
};
219
276
220
277
} // namespace wabt
0 commit comments