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