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