233e21a77966f5c32286400e385fac12916ff75e
[charm.git] / src / langs / charj / src / charj / translator / Charj.stg
1 group Charj;
2
3 charjSource_ci(pd, ids, tds, debug) ::= 
4 //<pd>
5 //<ids>
6 <<
7 <if(debug)>/* \<charjSource_ci> */<endif>
8 /*
9  * packageDeclaration disabled...
10  * end packageDeclaration
11  */
12
13 /*
14  * importDeclarations disabled...
15 <ids>
16  * end importDeclarations
17  */
18
19 <tds>
20 <if(debug)>/* \</charjSource_ci> */<endif>
21
22 >>
23
24
25 charjSource_h(pd, ids, tds, debug) ::=
26 <<
27 <if(debug)>/* \<CHARJ_SOURCE> */<endif>
28 /**************************************************************************
29  * WARNING                                                                *
30  **************************************************************************
31  * This is a machine generated header file.                               *
32  * It is not meant to be edited by hand and may be overwritten by charjc. *
33  **************************************************************************/
34
35 <ids>
36 <tds>
37
38 <if(debug)>/* \</CHARJ_SOURCE> */<endif>
39
40 >>
41
42
43 charjSource_cc(pd, ids, tds, debug) ::=
44 <<
45 <if(debug)>/* \<CHARJ_SOURCE> */<endif>
46 <ids>
47 <tds>
48 <if(debug)>/* \</CHARJ_SOURCE> */<endif>
49 >>
50
51 importDeclaration_cc_h(inc_id, use_id) ::= 
52 <<
53 <if(debug)>/* \<importDeclaration> */<endif>
54 #include \<<inc_id>\>
55 using <use_id>;
56 <if(debug)>/* \</importDeclaration> */<endif>
57 >>
58
59 classExtends_ci(type) ::= "<type>"
60
61
62 classExtends_cc_h(type) ::= "#include \<<type>.h\>"
63
64
65 interfaceExtends(ts) ::=
66 <<
67 : public <ts; separator=", public ">
68 >>
69
70 classDeclaration_h(sym, ident, ext, csds) ::=
71 <<
72 <sym.IncludeString>
73 <classDeclaration_h_cont(pds = sym.packageNames, sym = sym, ident = ident, ext = ext, csds = csds)>
74 >>
75
76 classDeclaration_h_cont(pds, sym, ident, ext, csds) ::=
77 <<
78 <if(first(pds))>namespace <first(pds)>
79 {
80     <classDeclaration_h_cont(pds = rest(pds), sym = sym, ident = ident, ext = ext, csds = csds)>
81 };
82 <else>
83 <if(ext)>
84 class <ident> : public <ext> {
85 <else>
86 class <ident> {
87 <endif>
88
89     <csds; separator="\n">
90 };
91 <endif>
92 >>
93
94
95 classDeclaration_cc(sym, ident, ext, csds) ::=
96 <<
97 <sym.IncludeString>
98 <classDeclaration_cc_cont(pds = sym.packageNames, sym = sym, ident = ident, ext = ext, csds = csds)>
99 >>
100
101 classDeclaration_cc_cont(pds, sym, ident, ext, csds) ::=
102 <<
103 <if(first(pds))>namespace <first(pds)>
104 {
105     <classDeclaration_cc_cont(pds = rest(pds), sym = sym, ident = ident, ext = ext, csds = csds)>
106 };
107 <else>
108 <if(ext)>
109 class <ident>: public <ext> {
110 <else>
111 class <ident> {
112 <endif>
113
114     <csds; separator="\n">
115 };
116 <endif>
117 >>
118
119
120 chareDeclaration_cc(sym, ident, ext, csds) ::=
121 <<
122 #include "<ident>.decl.h"
123 <chareDeclaration_cc_cont(pds = sym.packageNames, sym = sym, ident = ident, ext = ext, csds = csds)>
124 #include "<ident>.def.h"
125 >>
126
127 chareDeclaration_cc_cont(pds, sym, ident, ext, csds) ::=
128 <<
129 <if(first(pds))>namespace <first(pds)>
130 {
131     <chareDeclaration_cc_cont(pds = rest(pds), sym = sym, ident = ident, ext = ext, csds = csds)>
132 };
133 <else><if(ext)>/* superclass: <ext> */<endif>
134 class <ident>: public CBase_<ident> {
135     <csds; separator="\n">
136 };
137 <endif>
138 >>
139
140 chareDeclaration_h(sym, ident, ext, csds) ::=
141 <<
142 #include "<ident>.decl.h"
143 <chareDeclaration_h_cont(pds = sym.packageNames, sym = sym, ident = ident, ext = ext, csds = csds)>
144 >>
145
146 chareDeclaration_h_cont(pds, sym, ident, ext, csds) ::=
147 <<
148 <if(first(pds))>namespace <first(pds)>
149 {
150     <chareDeclaration_h_cont(pds = rest(pds), sym = sym, ident = ident, ext = ext, csds = csds)>
151 };
152 <else>
153 <if(ext)>/* superclass: <ext> */<endif>
154 class <ident>: public CBase_<ident> {
155     <csds; separator="\n">
156 };
157 <endif>
158 >>
159
160 chareDeclaration_ci(sym, chareType, arrayDim, ident, ext, csds) ::=
161 <<
162 <if(debug)>/* \<typeDeclaration> */<endif>
163 module <ident> {
164 <if(ext)>
165     extern module <ext>;
166 <endif>
167 };
168     <chareDeclaration_ci_cont(pds = sym.packageNames, chareType = chareType, arrayDim = arrayDim, ident = ident, ext = ext, csds = csds)>
169
170 <if(debug)>/* \</typeDeclaration> */<endif>
171
172 >>
173
174
175 chareDeclaration_ci_cont(pds, sym, chareType, arrayDim, ident, ext, csds) ::=
176 <<
177 <if(first(pds))>namespace <first(pds)>
178 {
179     <chareDeclaration_ci_cont(pds = rest(pds), sym = sym, chareType = chareType, arrayDim = arrayDim, ident = ident, ext = ext, csds = csds)>
180 };
181 <else>
182     <chareType><if(arrayDim)> [<arrayDim>]<endif> <ident><if(ext)> : <ext><endif> {
183         <csds; separator="\n">
184     };
185 }<endif>
186 >>
187
188 funcMethodDecl_h(modl, gtpl, ty, id, fpl, adl, block) ::=
189 <<
190 <if(modl)><modl>: <endif><ty> <gtpl> <id><fpl> <adl>;
191 >>
192
193
194 funcMethodDecl_ci(modl, gtpl, ty, id, fpl, adl, block) ::=
195 <<
196 entry <ty> <gtpl> <id><fpl> <adl>;
197 >>
198
199
200 funcMethodDecl_cc(modl, gtpl, ty, id, fpl, adl, block) ::=
201 <<
202 <if(modl)><modl>: <endif><ty> <gtpl> <id><fpl> <adl> {
203     <block>
204 }
205 >>
206
207
208 ctorDecl_ci(modl, gtpl, id, fpl, block) ::=
209 <<
210 entry void<gtpl> <id><fpl>;
211 >>
212
213
214 ctorDecl_h(modl, gtpl, id, fpl, block) ::=
215 <<
216 <if(modl)><modl>:<endif><gtpl> <id><fpl>;
217 >>
218
219
220 ctorDecl_cc(modl, gtpl, id, fpl, block) ::=
221 <<
222 <if(modl)><modl>:<endif><gtpl> <id><fpl> {
223     <block>
224 }
225 >>
226
227
228 block_cc(bsl) ::=
229 <<
230 <bsl:{s| <s><\n>}>
231 >>
232
233
234 embed_cc(str, blk) ::=
235 <<
236 // begin embedded block: <str>
237 <blk>
238 // end embedded block: <str>
239 >>
240
241
242 class_var_decl(modl, type, declList) ::=
243 <<
244 <if(modl)><modl>:<else>public:<endif> <type> <declList>;
245 >>
246
247
248 var_decl_list(var_decls) ::=
249 <<
250 <var_decls; separator=", ">
251 >>
252
253
254 var_decl(id, initializer) ::=
255 <<
256 <id><if(initializer)> = <initializer><endif>
257 >>
258
259
260 var_decl_id(id, array_decl_list) ::=
261 <<
262 <id><if(array_decl_list)> <array_decl_list><endif>
263 >>
264
265
266 var_id_decl(id, adl) ::=
267 <<
268 <id><if(adl)> <adl><endif>
269 >>
270
271
272 mod_list(mods) ::=
273 <<
274 <if(mods)><mods; separator=" "><endif>
275 >>
276
277
278 local_mod_list(mods) ::=
279 <<
280 <if(mods)><mods; separator=" "><endif>
281 >>
282  
283
284 local_var_decl(modList, type, declList) ::=
285 <<
286 <if(modList)>
287 <modList> <type> <declList>;
288 <else>
289 <type> <declList>;
290 <endif>
291 >>
292
293
294 type(typeID, arrDeclList) ::=
295 <<
296 <typeID><arrDeclList>
297 >>
298
299
300 typeIdent(typeID, generics) ::=
301 <<
302 <typeID><generics>
303 >>
304
305
306 generic_arg_list(types) ::=
307 <<
308 \<<types>\>
309 >>
310
311
312 formal_param_list(sdecl, vdecl) ::=
313 <<
314 <if(vdecl)>
315 (<sdecl; separator=", ">, <vdecl>)
316 <else>
317 (<sdecl; separator=", ">)
318 <endif>
319 >>
320
321
322 formal_param_decl(modList, type, declID) ::=
323 <<
324 <if(modList)><modList> <endif><type> <declID>
325 >>
326
327
328 assert(cond, msg) ::=
329 <<
330 <if(msg)>
331 CkAssert(<cond> && <msg>);
332 <else>
333 CkAssert(<cond>);
334 <endif>
335 >>
336
337
338 if(cond, then, else_) ::=
339 <<
340 if <cond> {
341     <then>
342 }<if(else_)> else {
343     <else_>
344 }<endif>
345 >>
346
347
348 for(initializer, cond, update, body) ::=
349 <<
350 for (<if(initializer)><initializer><else>;<endif> <cond>; <update; separator=", ">) {
351     <body>
352 }
353 >>
354
355 while(cond, body) ::=
356 <<
357 while <cond> {
358     <body>
359
360 >>
361
362 dowhile(cond, body) ::=
363 <<
364 do {
365     <body>
366 } while <cond>;
367 >>
368
369
370 switch(expr, labels) ::=
371 <<
372 switch <expr> {
373     <labels>
374 }
375 >>
376
377 return(val) ::=
378 <<
379 return<if(val)> <val><endif>;
380 >>
381
382 label(text, stmt) ::=
383 <<
384 <text>: <stmt>
385 >>
386
387 case(expr, block) ::=
388 <<
389 case <expr>: <block>
390 >>
391
392 method_call(primary, generic_types, args) ::=
393 <<
394 <if(generic_types)>
395 <primary>\<<generic_types>\>(<args>)
396 <else>
397 <primary>(<args>)
398 <endif>
399 >>
400
401
402 array_construction_with_init(array_decls, initializer) ::=
403 <<
404 <array_decls> = {<initializer>};
405 >>
406
407
408 array_construction(exprs, array_decls) ::=
409 <<
410 [<exprs; separator="][">]<array_decls>
411 >> 
412
413
414 arguments(exprs) ::=
415 <<
416 <exprs; separator=", ">
417 >>
418
419