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