-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathAbstractVisitSkeleton.cs
379 lines (260 loc) · 12 KB
/
AbstractVisitSkeleton.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
/*** BNFC-Generated Abstract Visitor Design Pattern Skeleton. ***/
/* This implements the common visitor design pattern.
Replace the R and A parameters with the desired return
and context types.*/
namespace OCL.VisitSkeleton
{
#region Classes
public abstract class AbstractOCLfileVisitor<R,A> : OCL.Absyn.OCLfile.Visitor<R,A>
{
public abstract R Visit(OCL.Absyn.OCLf oclf_, A arg);
}
public abstract class AbstractOCLPackageVisitor<R,A> : OCL.Absyn.OCLPackage.Visitor<R,A>
{
public abstract R Visit(OCL.Absyn.Pack pack_, A arg);
}
public abstract class AbstractPackageNameVisitor<R,A> : OCL.Absyn.PackageName.Visitor<R,A>
{
public abstract R Visit(OCL.Absyn.PackName packname_, A arg);
}
public abstract class AbstractOCLExpressionsVisitor<R,A> : OCL.Absyn.OCLExpressions.Visitor<R,A>
{
public abstract R Visit(OCL.Absyn.Constraints constraints_, A arg);
}
public abstract class AbstractConstrntVisitor<R,A> : OCL.Absyn.Constrnt.Visitor<R,A>
{
public abstract R Visit(OCL.Absyn.Constr constr_, A arg);
}
public abstract class AbstractConstrBodyVisitor<R,A> : OCL.Absyn.ConstrBody.Visitor<R,A>
{
public abstract R Visit(OCL.Absyn.CBDefNamed cbdefnamed_, A arg);
public abstract R Visit(OCL.Absyn.CBDef cbdef_, A arg);
public abstract R Visit(OCL.Absyn.CBNamed cbnamed_, A arg);
public abstract R Visit(OCL.Absyn.CB cb_, A arg);
}
public abstract class AbstractContextDeclarationVisitor<R,A> : OCL.Absyn.ContextDeclaration.Visitor<R,A>
{
public abstract R Visit(OCL.Absyn.CDOper cdoper_, A arg);
public abstract R Visit(OCL.Absyn.CDClassif cdclassif_, A arg);
}
public abstract class AbstractClassifierContextVisitor<R,A> : OCL.Absyn.ClassifierContext.Visitor<R,A>
{
public abstract R Visit(OCL.Absyn.CCType cctype_, A arg);
public abstract R Visit(OCL.Absyn.CC cc_, A arg);
}
public abstract class AbstractOperationContextVisitor<R,A> : OCL.Absyn.OperationContext.Visitor<R,A>
{
public abstract R Visit(OCL.Absyn.OpC opc_, A arg);
public abstract R Visit(OCL.Absyn.OpCRT opcrt_, A arg);
}
public abstract class AbstractStereotypeVisitor<R,A> : OCL.Absyn.Stereotype.Visitor<R,A>
{
public abstract R Visit(OCL.Absyn.Pre pre_, A arg);
public abstract R Visit(OCL.Absyn.Post post_, A arg);
public abstract R Visit(OCL.Absyn.Inv inv_, A arg);
}
public abstract class AbstractOperationNameVisitor<R,A> : OCL.Absyn.OperationName.Visitor<R,A>
{
public abstract R Visit(OCL.Absyn.OpName opname_, A arg);
public abstract R Visit(OCL.Absyn.Eq eq_, A arg);
public abstract R Visit(OCL.Absyn.Add add_, A arg);
public abstract R Visit(OCL.Absyn.Sub sub_, A arg);
public abstract R Visit(OCL.Absyn.LST lst_, A arg);
public abstract R Visit(OCL.Absyn.LSTE lste_, A arg);
public abstract R Visit(OCL.Absyn.GRT grt_, A arg);
public abstract R Visit(OCL.Absyn.GRTE grte_, A arg);
public abstract R Visit(OCL.Absyn.Div div_, A arg);
public abstract R Visit(OCL.Absyn.Mult mult_, A arg);
public abstract R Visit(OCL.Absyn.NEq neq_, A arg);
public abstract R Visit(OCL.Absyn.Impl impl_, A arg);
public abstract R Visit(OCL.Absyn.Not not_, A arg);
public abstract R Visit(OCL.Absyn.Or or_, A arg);
public abstract R Visit(OCL.Absyn.Xor xor_, A arg);
public abstract R Visit(OCL.Absyn.And and_, A arg);
}
public abstract class AbstractFormalParameterVisitor<R,A> : OCL.Absyn.FormalParameter.Visitor<R,A>
{
public abstract R Visit(OCL.Absyn.FP fp_, A arg);
}
public abstract class AbstractTypeSpecifierVisitor<R,A> : OCL.Absyn.TypeSpecifier.Visitor<R,A>
{
public abstract R Visit(OCL.Absyn.TSsimple tssimple_, A arg);
public abstract R Visit(OCL.Absyn.TScoll tscoll_, A arg);
}
public abstract class AbstractCollectionTypeVisitor<R,A> : OCL.Absyn.CollectionType.Visitor<R,A>
{
public abstract R Visit(OCL.Absyn.CT ct_, A arg);
}
public abstract class AbstractReturnTypeVisitor<R,A> : OCL.Absyn.ReturnType.Visitor<R,A>
{
public abstract R Visit(OCL.Absyn.RT rt_, A arg);
}
public abstract class AbstractOCLExpressionVisitor<R,A> : OCL.Absyn.OCLExpression.Visitor<R,A>
{
public abstract R Visit(OCL.Absyn.OCLExp oclexp_, A arg);
public abstract R Visit(OCL.Absyn.OCLExpLet oclexplet_, A arg);
}
public abstract class AbstractLetExpressionVisitor<R,A> : OCL.Absyn.LetExpression.Visitor<R,A>
{
public abstract R Visit(OCL.Absyn.LENoParam lenoparam_, A arg);
public abstract R Visit(OCL.Absyn.LENoParamType lenoparamtype_, A arg);
public abstract R Visit(OCL.Absyn.LE le_, A arg);
public abstract R Visit(OCL.Absyn.LEType letype_, A arg);
}
public abstract class AbstractIfExpressionVisitor<R,A> : OCL.Absyn.IfExpression.Visitor<R,A>
{
public abstract R Visit(OCL.Absyn.IfExp ifexp_, A arg);
}
public abstract class AbstractExpressionVisitor<R,A> : OCL.Absyn.Expression.Visitor<R,A>
{
public abstract R Visit(OCL.Absyn.EOpImpl eopimpl_, A arg);
public abstract R Visit(OCL.Absyn.EOpLog eoplog_, A arg);
public abstract R Visit(OCL.Absyn.EOpEq eopeq_, A arg);
public abstract R Visit(OCL.Absyn.EOpRel eoprel_, A arg);
public abstract R Visit(OCL.Absyn.EOpAdd eopadd_, A arg);
public abstract R Visit(OCL.Absyn.EOpMul eopmul_, A arg);
public abstract R Visit(OCL.Absyn.EOpUn eopun_, A arg);
public abstract R Visit(OCL.Absyn.EExplPropCall eexplpropcall_, A arg);
public abstract R Visit(OCL.Absyn.EMessage emessage_, A arg);
public abstract R Visit(OCL.Absyn.EImplPropCall eimplpropcall_, A arg);
public abstract R Visit(OCL.Absyn.ELitColl elitcoll_, A arg);
public abstract R Visit(OCL.Absyn.ELit elit_, A arg);
public abstract R Visit(OCL.Absyn.EIfExp eifexp_, A arg);
public abstract R Visit(OCL.Absyn.ENull enull_, A arg);
}
public abstract class AbstractMessageArgVisitor<R,A> : OCL.Absyn.MessageArg.Visitor<R,A>
{
public abstract R Visit(OCL.Absyn.MAExpr maexpr_, A arg);
public abstract R Visit(OCL.Absyn.MAUnspec maunspec_, A arg);
public abstract R Visit(OCL.Absyn.MAUnspecTyped maunspectyped_, A arg);
}
public abstract class AbstractPropertyCallVisitor<R,A> : OCL.Absyn.PropertyCall.Visitor<R,A>
{
public abstract R Visit(OCL.Absyn.PCall pcall_, A arg);
}
public abstract class AbstractPathNameVisitor<R,A> : OCL.Absyn.PathName.Visitor<R,A>
{
public abstract R Visit(OCL.Absyn.PathN pathn_, A arg);
}
public abstract class AbstractPNameVisitor<R,A> : OCL.Absyn.PName.Visitor<R,A>
{
public abstract R Visit(OCL.Absyn.PN pn_, A arg);
}
public abstract class AbstractPossQualifiersVisitor<R,A> : OCL.Absyn.PossQualifiers.Visitor<R,A>
{
public abstract R Visit(OCL.Absyn.NoQual noqual_, A arg);
public abstract R Visit(OCL.Absyn.Qual qual_, A arg);
}
public abstract class AbstractQualifiersVisitor<R,A> : OCL.Absyn.Qualifiers.Visitor<R,A>
{
public abstract R Visit(OCL.Absyn.Quals quals_, A arg);
}
public abstract class AbstractPossTimeExpressionVisitor<R,A> : OCL.Absyn.PossTimeExpression.Visitor<R,A>
{
public abstract R Visit(OCL.Absyn.NoTE note_, A arg);
public abstract R Visit(OCL.Absyn.AtPre atpre_, A arg);
}
public abstract class AbstractPossPropCallParamVisitor<R,A> : OCL.Absyn.PossPropCallParam.Visitor<R,A>
{
public abstract R Visit(OCL.Absyn.NoPCP nopcp_, A arg);
public abstract R Visit(OCL.Absyn.PCPs pcps_, A arg);
}
public abstract class AbstractDeclaratorVisitor<R,A> : OCL.Absyn.Declarator.Visitor<R,A>
{
public abstract R Visit(OCL.Absyn.Decl decl_, A arg);
public abstract R Visit(OCL.Absyn.DeclAcc declacc_, A arg);
}
public abstract class AbstractDeclaratorVarListVisitor<R,A> : OCL.Absyn.DeclaratorVarList.Visitor<R,A>
{
public abstract R Visit(OCL.Absyn.DVL dvl_, A arg);
public abstract R Visit(OCL.Absyn.DVLType dvltype_, A arg);
}
public abstract class AbstractPropertyCallParametersVisitor<R,A> : OCL.Absyn.PropertyCallParameters.Visitor<R,A>
{
public abstract R Visit(OCL.Absyn.PCPDecl pcpdecl_, A arg);
public abstract R Visit(OCL.Absyn.PCP pcp_, A arg);
public abstract R Visit(OCL.Absyn.PCPNoDeclNoParam pcpnodeclnoparam_, A arg);
public abstract R Visit(OCL.Absyn.PCPConcrete pcpconcrete_, A arg);
}
public abstract class AbstractPCPHelperVisitor<R,A> : OCL.Absyn.PCPHelper.Visitor<R,A>
{
public abstract R Visit(OCL.Absyn.PCPComma pcpcomma_, A arg);
public abstract R Visit(OCL.Absyn.PCPColon pcpcolon_, A arg);
public abstract R Visit(OCL.Absyn.PCPIterate pcpiterate_, A arg);
public abstract R Visit(OCL.Absyn.PCPBar pcpbar_, A arg);
}
public abstract class AbstractOCLLiteralVisitor<R,A> : OCL.Absyn.OCLLiteral.Visitor<R,A>
{
public abstract R Visit(OCL.Absyn.LitStr litstr_, A arg);
public abstract R Visit(OCL.Absyn.LitNum litnum_, A arg);
public abstract R Visit(OCL.Absyn.LitBoolTrue litbooltrue_, A arg);
public abstract R Visit(OCL.Absyn.LitBoolFalse litboolfalse_, A arg);
}
public abstract class AbstractSimpleTypeSpecifierVisitor<R,A> : OCL.Absyn.SimpleTypeSpecifier.Visitor<R,A>
{
public abstract R Visit(OCL.Absyn.STSpec stspec_, A arg);
}
public abstract class AbstractLiteralCollectionVisitor<R,A> : OCL.Absyn.LiteralCollection.Visitor<R,A>
{
public abstract R Visit(OCL.Absyn.LCollection lcollection_, A arg);
public abstract R Visit(OCL.Absyn.LCollectionEmpty lcollectionempty_, A arg);
}
public abstract class AbstractCollectionItemVisitor<R,A> : OCL.Absyn.CollectionItem.Visitor<R,A>
{
public abstract R Visit(OCL.Absyn.CI ci_, A arg);
public abstract R Visit(OCL.Absyn.CIRange cirange_, A arg);
}
public abstract class AbstractOCLNumberVisitor<R,A> : OCL.Absyn.OCLNumber.Visitor<R,A>
{
public abstract R Visit(OCL.Absyn.NumInt numint_, A arg);
public abstract R Visit(OCL.Absyn.NumDouble numdouble_, A arg);
}
public abstract class AbstractLogicalOperatorVisitor<R,A> : OCL.Absyn.LogicalOperator.Visitor<R,A>
{
public abstract R Visit(OCL.Absyn.LAnd land_, A arg);
public abstract R Visit(OCL.Absyn.LOr lor_, A arg);
public abstract R Visit(OCL.Absyn.LXor lxor_, A arg);
}
public abstract class AbstractCollectionKindVisitor<R,A> : OCL.Absyn.CollectionKind.Visitor<R,A>
{
public abstract R Visit(OCL.Absyn.Set set_, A arg);
public abstract R Visit(OCL.Absyn.Bag bag_, A arg);
public abstract R Visit(OCL.Absyn.Sequence sequence_, A arg);
public abstract R Visit(OCL.Absyn.Collection collection_, A arg);
}
public abstract class AbstractEqualityOperatorVisitor<R,A> : OCL.Absyn.EqualityOperator.Visitor<R,A>
{
public abstract R Visit(OCL.Absyn.EEq eeq_, A arg);
public abstract R Visit(OCL.Absyn.ENEq eneq_, A arg);
}
public abstract class AbstractRelationalOperatorVisitor<R,A> : OCL.Absyn.RelationalOperator.Visitor<R,A>
{
public abstract R Visit(OCL.Absyn.RGT rgt_, A arg);
public abstract R Visit(OCL.Absyn.RGTE rgte_, A arg);
public abstract R Visit(OCL.Absyn.RLT rlt_, A arg);
public abstract R Visit(OCL.Absyn.RLTE rlte_, A arg);
}
public abstract class AbstractAddOperatorVisitor<R,A> : OCL.Absyn.AddOperator.Visitor<R,A>
{
public abstract R Visit(OCL.Absyn.AAdd aadd_, A arg);
public abstract R Visit(OCL.Absyn.ASub asub_, A arg);
}
public abstract class AbstractMultiplyOperatorVisitor<R,A> : OCL.Absyn.MultiplyOperator.Visitor<R,A>
{
public abstract R Visit(OCL.Absyn.MMult mmult_, A arg);
public abstract R Visit(OCL.Absyn.MDiv mdiv_, A arg);
}
public abstract class AbstractUnaryOperatorVisitor<R,A> : OCL.Absyn.UnaryOperator.Visitor<R,A>
{
public abstract R Visit(OCL.Absyn.UMin umin_, A arg);
public abstract R Visit(OCL.Absyn.UNot unot_, A arg);
}
public abstract class AbstractPostfixOperatorVisitor<R,A> : OCL.Absyn.PostfixOperator.Visitor<R,A>
{
public abstract R Visit(OCL.Absyn.PDot pdot_, A arg);
public abstract R Visit(OCL.Absyn.PArrow parrow_, A arg);
}
#endregion
#region Token types
#endregion
}