@@ -89,207 +89,16 @@ rules
89
89
x -> $[# [x](.KList)]
90
90
where <is-int> x
91
91
92
-
93
- to-kast:
94
- ExprList(b) -> $[ [<to-kast-commalist> b]]
95
-
96
-
97
- to-kast-commalist:
98
- [hd | tl] -> $['_`,_([<to-kast> hd],,
99
- [<to-kast-commalist> tl])]
100
-
101
- to-kast-commalist:
102
- [] -> $['.List`{"`,"`}(.KList)]
103
-
104
-
105
- to-kast:
106
- DimExprList(b) -> $[ [<to-kast-tablist> b] ]
107
-
108
-
109
- to-kast-tablist:
110
- [hd | tl] -> $['__([<to-kast> hd],,
111
- [<to-kast-tablist> tl])]
112
-
113
- to-kast-tablist:
114
- [] -> $['.List`{""`}(.KList)]
115
-
116
-
117
-
118
- to-kast:
119
- DimList(b) -> $[ [<to-kast-tablist> b] ]
120
-
121
-
122
- to-kast:
123
- CatchClauseList(b) -> $[ [<to-kast-tablist> b] ]
124
-
125
-
126
- to-kast:
127
- FormalParamList(b) -> $[ [<to-kast-commalist> b] ]
128
-
129
-
130
- to-kast:
131
- VarInitList(b) -> $[ [<to-kast-commalist> b] ]
132
-
133
-
134
- to-kast:
135
- a#(b) -> $[[<to-kast-dotuserlist> (a,b)]]
136
- where (!a => "IdList")
137
-
138
- to-kast:
139
- a#(b) -> $[[<to-kast-commauserlist> (a,b)]]
140
- where (!a => "InterfaceTypeList")
141
-
142
- to-kast:
143
- a#(b) -> $[[<to-kast-commauserlist> (a,b)]]
144
- where (!a => "ExceptionTypeList")
145
-
146
- to-kast:
147
- a#(b) -> $[[<to-kast-userlist> (a,b)]]
148
- where (!a => "TypeDecList")
149
-
150
- to-kast:
151
- a#(b) -> $[[<to-kast-commauserlist> (a,b)]]
152
- where (!a => "VarDecList")
153
-
154
- to-kast:
155
- a#(b) -> $[[<to-kast-userlist> (a,b)]]
156
- where (!a => "ImportDecList")
157
-
158
- to-kast:
159
- a#(b) -> $[[<to-kast-commauserlist> (a,b)]]
160
- where (!a => "ActualTypeArgList")
161
-
162
- to-kast:
163
- a#(b) -> $[[<to-kast-anduserlist> (a,b)]]
164
- where (!a => "ClassOrInterfaceTypeList")
165
-
166
- to-kast:
167
- a#(b) -> $[[<to-kast-commauserlist> (a,b)]]
168
- where (!a => "TypeParamList")
169
-
170
- to-kast:
171
- a#(b) -> $[[<to-kast-userlist> (a,b)]]
172
- where (!a => "AbstractMethodModList")
173
-
174
- to-kast:
175
- a#(b) -> $[[<to-kast-userlist> (a,b)]]
176
- where (!a => "AnnoAbstractMethodModList")
177
-
178
- to-kast:
179
- a#(b) -> $[[<to-kast-userlist> (a,b)]]
180
- where (!a => "AnnoMethodModList")
181
-
182
- to-kast:
183
- a#(b) -> $[[<to-kast-userlist> (a,b)]]
184
- where (!a => "AnnoVarModList")
185
-
186
- to-kast:
187
- a#(b) -> $[[<to-kast-userlist> (a,b)]]
188
- where (!a => "AnnoClassModList")
189
-
190
- to-kast:
191
- a#(b) -> $[[<to-kast-userlist> (a,b)]]
192
- where (!a => "AnnoConstantModList")
193
-
194
- to-kast:
195
- a#(b) -> $[[<to-kast-userlist> (a,b)]]
196
- where (!a => "AnnoConstrModList")
197
-
198
- to-kast:
199
- a#(b) -> $[[<to-kast-userlist> (a,b)]]
200
- where (!a => "AnnoFieldModList")
201
-
202
- to-kast:
203
- a#(b) -> $[[<to-kast-userlist> (a,b)]]
204
- where (!a => "AnnoInterfaceModList")
205
-
206
- to-kast:
207
- a#(b) -> $[[<to-kast-userlist> (a,b)]]
208
- where (!a => "AnnoList")
209
-
210
- to-kast:
211
- a#(b) -> $[[<to-kast-userlist> (a,b)]]
212
- where (!a => "AnnoElemDecList")
213
-
214
- to-kast:
215
- a#(b) -> $[[<to-kast-userlist> (a,b)]]
216
- where (!a => "InterfaceMemberDecList")
217
-
218
- to-kast:
219
- a#(b) -> $[[<to-kast-commauserlist> (a,b)]]
220
- where (!a => "ElemValPairList")
221
-
222
- to-kast:
223
- a#(b) -> $[[<to-kast-commauserlist> (a,b)]]
224
- where (!a => "ElemValList")
225
-
226
- to-kast:
227
- a#(b) -> $[[<to-kast-commauserlist> (a,b)]]
228
- where (!a => "EnumConstList")
229
-
230
- to-kast:
231
- a#(b) -> $[[<to-kast-userlist> (a,b)]]
232
- where (!a => "StringPartList")
233
-
234
- to-kast:
235
- a#(b) -> $[[<to-kast-userlist> (a,b)]]
236
- where (!a => "ClassBodyDecList")
237
-
238
- to-kast:
239
- a#(b) -> $[[<to-kast-userlist> (a,b)]]
240
- where (!a => "BlockStmList")
241
-
242
- to-kast:
243
- a#(b) -> $[[<to-kast-userlist> (a,b)]]
244
- where (!a => "SwitchGroupList")
245
-
246
- to-kast:
247
- a#(b) -> $[[<to-kast-userlist> (a,b)]]
248
- where (!a => "SwitchLabelList")
249
-
250
- to-kast:
251
- a#(b) -> $[[<to-kast-userlist> (a,b)]]
252
- where (!a => "VarInitList")
253
-
92
+ // match on a list of some sort
254
93
to-kast:
255
- a#(b) -> $[[<to-kast-userlist> (a,b)]]
256
- where (!a => "FormalParamList")
257
-
258
- to-kast:
259
- a#(b) -> $[[<to-kast-userlist> (a,b)]]
260
- where (!a => "CatchClauseList")
261
-
262
-
263
- to-kast-commauserlist:
264
- (a,[[hd | tl]]) -> $['[a]([<to-kast> hd],,
265
- [<to-kast-commauserlist> (a, [tl])])]
266
-
267
- to-kast-commauserlist:
268
- (a,[[]]) -> $['.List`{"`,"`}(.KList)]
269
-
270
- to-kast-userlist:
271
- (a,[[hd | tl]]) -> $['[a]([<to-kast> hd],,
272
- [<to-kast-userlist> (a, [tl])])]
273
-
274
- to-kast-userlist:
275
- (a,[[]]) -> $['.List`{""`}(.KList)]
276
-
277
- to-kast-dotuserlist:
278
- (a,[[hd | tl]]) -> $['[a]([<to-kast> hd],,
279
- [<to-kast-dotuserlist> (a, [tl])])]
280
-
281
- to-kast-dotuserlist:
282
- (a,[[]]) -> $['.List`{"."`}(.KList)]
283
-
284
- to-kast-anduserlist:
285
- (a,[[hd | tl]]) -> $['[a]([<to-kast> hd],,
286
- [<to-kast-anduserlist> (a, [tl])])]
287
-
288
- to-kast-anduserlist:
289
- (a,[[]]) -> $['.List`{"&"`}(.KList)]
290
-
291
-
94
+ a#(b) -> $[[<to-kast-userlist(|a)> b]]
95
+ where <string-ends-with(|"List")> a
292
96
97
+ // print the elements of the list
98
+ to-kast-userlist(|tag):
99
+ [hd, tl] -> $['[tag]([<to-kast> hd],, [<to-kast-userlist(|tag)> tl])]
100
+ to-kast-userlist(|tag):
101
+ [] -> $['.List{"'[tag]"}(.KList)]
293
102
294
103
to-kast:
295
104
a#(b) -> $['[a](
@@ -302,7 +111,6 @@ rules
302
111
to-kast:
303
112
a#(b) -> $[[<to-kast-list> b]]
304
113
305
-
306
114
to-kast-list:
307
115
[hd | tl] -> $[[<to-kast> hd],,
308
116
[[<to-kast-list> tl]]]
@@ -315,31 +123,9 @@ rules
315
123
to-kast-list:
316
124
[] -> $[.KList]
317
125
318
-
319
-
320
-
321
-
322
-
323
-
324
-
325
126
326
127
// lang -jar strategoxt.jar -i starter.str -o Ocl -la stratego-sglr --lib -I .. -p oclParser.lib --clean
327
128
// lang -jar strategoxt.jar -i starter.str -o langParser -la stratego-sglr -I .. -m safecallcmd1 -p ro.uaic.info.fmse.parser
328
129
329
130
safecallcmd1 = ?[a, b] ; <parse-file(my-open-error, my-parse-error|<import-term(include/JavaFrontParser.tbl)>)> b ; to-kast
330
131
331
-
332
-
333
-
334
-
335
-
336
-
337
-
338
-
339
-
340
-
341
-
342
-
343
-
344
-
345
-
0 commit comments