Skip to content

Commit 75d283f

Browse files
committed
change starter
1 parent 9377383 commit 75d283f

File tree

1 file changed

+8
-222
lines changed

1 file changed

+8
-222
lines changed

JavaFrontParser/trans/starter.str

Lines changed: 8 additions & 222 deletions
Original file line numberDiff line numberDiff line change
@@ -89,207 +89,16 @@ rules
8989
x -> $[# [x](.KList)]
9090
where <is-int> x
9191

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
25493
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
29296

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)]
293102

294103
to-kast:
295104
a#(b) -> $['[a](
@@ -302,7 +111,6 @@ rules
302111
to-kast:
303112
a#(b) -> $[[<to-kast-list> b]]
304113

305-
306114
to-kast-list:
307115
[hd | tl] -> $[[<to-kast> hd],,
308116
[[<to-kast-list> tl]]]
@@ -315,31 +123,9 @@ rules
315123
to-kast-list:
316124
[] -> $[.KList]
317125

318-
319-
320-
321-
322-
323-
324-
325126

326127
// lang -jar strategoxt.jar -i starter.str -o Ocl -la stratego-sglr --lib -I .. -p oclParser.lib --clean
327128
// lang -jar strategoxt.jar -i starter.str -o langParser -la stratego-sglr -I .. -m safecallcmd1 -p ro.uaic.info.fmse.parser
328129

329130
safecallcmd1 = ?[a, b] ; <parse-file(my-open-error, my-parse-error|<import-term(include/JavaFrontParser.tbl)>)> b ; to-kast
330131

331-
332-
333-
334-
335-
336-
337-
338-
339-
340-
341-
342-
343-
344-
345-

0 commit comments

Comments
 (0)