b64cc7a71fe55e7394a5e14d8b94bbb305ca29a8
[charm.git] / src / langs / charj / src / charj / translator / Charj.stg
1 group Charj;
2
3 charjSource_ci(pd, ids, tds) ::= 
4 //<pd>
5 //<ids>
6 <<
7 <tds>
8 >>
9
10
11 charjSource_h(pd, ids, tds, cb) ::= 
12 <<
13 /**************************************************************************
14  * WARNING                                                                *
15  **************************************************************************
16  * This is a machine generated header file.                               *
17  * It is not meant to be edited by hand and may be overwritten by charjc. *
18  **************************************************************************/
19
20 <pd>
21 <ids>
22 <tds>
23 <cb>
24
25 >>
26
27
28 charjSource_cc(pd, ids, tds, cb) ::= 
29 <<
30 <pd>
31 <ids>
32 <tds>
33 <cb>
34
35 >>
36
37 packageDeclaration_cc_h(ids) ::= 
38 <<
39 namespace <ids; separator=" { namespace "> {
40 >>
41
42 importDeclaration_cc_h(inc_id, use_id) ::= 
43 <<
44 #include \<<inc_id>\>
45 //using <use_id>;
46 >>
47
48 classExtends_ci(type) ::= "<type>"
49
50
51 classExtends_cc_h(type) ::= "#include \<<type>.h\>"
52
53
54 interfaceExtends(ts) ::=
55 <<
56 : public <ts; separator=", public ">
57 >>
58
59
60 classDeclaration_ci(mod, ident, gen, ext, impl, ctls) ::=
61 <<
62 module <ident> {
63 <if(ext)>
64     extern module <ext>;
65     chare <ident> <gen>: <ext> {
66 <else>
67     chare <ident> <gen> {
68 <endif>
69         
70         <ctls>
71     }
72 }
73
74 >>
75
76
77 classDeclaration_h(mod, ident, gen, ext, impl, ctls) ::=
78 <<
79
80 #include "<ident>.decl.h"
81 <ext>
82 class <ident> <gen>: public CBase_<ident> <impl> {
83     <ctls>
84 };
85
86
87 >>
88
89 classDeclaration_cc(mod, ident, gen, ext, impl, ctls) ::=
90 <<
91
92
93 #include "<ident>.decl.h"
94 <ext>
95 class <ident> <gen>: public CBase_<ident> <impl> {
96     <ctls>
97 };
98 #include "<ident>.def.h"
99
100
101 >>
102
103
104 classTopLevelScope(classScopeDeclarations) ::= 
105 <<
106 <classScopeDeclarations; separator="\n">
107 >>
108
109
110 funcMethodDecl_h(modl, gtpl, ty, id, fpl, adl, tc, block) ::=
111 <<
112 <modl>: <ty> <gtpl> <id><fpl> <adl> <tc>;
113 >>
114
115
116 funcMethodDecl_ci(modl, gtpl, ty, id, fpl, adl, tc, block) ::=
117 <<
118 entry <ty> <gtpl> <id><fpl> <adl> <tc>;
119 >>
120
121
122 funcMethodDecl_cc(modl, gtpl, ty, id, fpl, adl, tc, block) ::=
123 <<
124 <modl>: <ty> <gtpl> <id><fpl> <adl> <tc> <block>
125 >>
126
127
128 voidMethodDecl_ci(modl, gtpl, id, fpl, tc, block) ::=
129 <<
130 entry void<gtpl> <id><fpl> <tc>;
131 >>
132
133
134 voidMethodDecl_h(modl, gtpl, id, fpl, tc, block) ::=
135 <<
136 <modl>: void<gtpl> <id><fpl> <tc>;
137 >>
138
139
140 voidMethodDecl_cc(modl, gtpl, id, fpl, tc, block) ::=
141 <<
142 <modl>: void<gtpl> <id><fpl> <tc> <block>
143 >>
144
145
146 ctorDecl_ci(modl, gtpl, id, fpl, tc, block) ::=
147 <<
148 entry void<gtpl> <id><fpl> <tc>;
149 >>
150
151
152 ctorDecl_h(modl, gtpl, id, fpl, tc, block) ::=
153 <<
154 <modl>:<gtpl> <id><fpl> <tc>;
155 >>
156
157
158 ctorDecl_cc(modl, gtpl, id, fpl, tc, block) ::=
159 <<
160 <modl>:<gtpl> <id><fpl> <tc> <block>
161 >>
162
163
164 block_cc(bsl) ::=
165 <<
166 {
167     <bsl; separator="\n">
168 }
169 >>
170
171
172 embed_cc(str, blk) ::=
173 <<
174 // begin embedded block: <str>
175 <blk>
176 // end embedded block: <str>
177 >>
178
179
180 primitive_var_decl(modList, type, declList) ::=
181 <<
182 <if(modList)>
183 <modList>: <type> <declList>;
184 <else>
185 <type> <declList>;
186 <endif>
187 >>
188
189
190 object_var_decl(modList, type, declList) ::=
191 <<
192 <if(modList)>
193 <modList>: <type>* <declList>;
194 <else>
195 <type>* <declList>;
196 <endif>
197 >>
198
199
200 type(typeID, arrDeclList) ::=
201 <<
202 <typeID><arrDeclList>
203 >>
204
205 /*
206 object_type(typeID, arrDeclList) ::=
207 <<
208 <typeID>*<arrDeclList>
209 >>
210
211
212 chare_type(typeID, arrDeclList) ::=
213 <<
214 CProxy_<typeID><arrDeclList>
215 >>*/
216
217
218 formal_param_list(sdecl, vdecl) ::=
219 <<
220 <if(vdecl)>
221 (<sdecl; separator=", ">, <vdecl>)
222 <else>
223 (<sdecl; separator=", ">)
224 <endif>
225 >>
226
227
228 formal_param_decl(modList, type, declID) ::=
229 <<
230     <modList> <type> <declID>
231 >>