9 [repeat java_lang_stmt]
14 | [java_variable_decl]
17 | [EX] '{ [IN] [NL] [java_statements] [EX] '} [IN] [NL]
20 define java_variable_decl
21 [java_type_decl] [id] [opt union] '; [NL]
35 [java_term] [repeat java_expr_extend]
38 define java_expr_extend
39 [al_expr_op] [java_term]
44 | [id] [repeat java_dot_id]
45 | [id] [repeat java_dot_id] '( [java_args] ')
46 | 'new [java_type_decl] [union]
47 | 'new [java_type_decl] '( [java_args] ')
63 'if '( [java_expr] ') [NL] [IN]
85 redefine al_host_block
86 '{ [NL] [IN] [al_statements] [EX] '} [NL]
87 | '{ [NL] [IN] [java_statements] [EX] '} [NL]
90 function clearUnion Type [java_type_decl] Id [id]
93 import ArrayInits [java_statements]
94 Stmts [repeat java_lang_stmt]
96 Id '= 'new Type Union '; Stmts
102 replace [java_type_decl]
109 replace [al_type_decl]
115 function alStmtToJava1 AlStmt [action_lang_stmt]
117 VarDecl [al_variable_decl]
119 Type [al_type_decl] Id [id] OptUnion [opt union] ';
120 construct JavaType [java_type_decl]
122 construct Result [java_variable_decl]
123 JavaType [boolTypes] [ptrTypes] Id OptUnion [clearUnion JavaType Id] ';
124 replace [repeat java_lang_stmt]
129 function alTermToJava
136 function alExprExtendToJava AlExprExtend [repeat al_expr_extend]
137 deconstruct AlExprExtend
138 Op [al_expr_op] Term [al_term] Rest [repeat al_expr_extend]
139 construct JavaRest [repeat java_expr_extend]
140 _ [alExprExtendToJava Rest]
141 replace [repeat java_expr_extend]
143 Op Term [alTermToJava] JavaRest
146 function alExprToJava AlExpr [al_expr]
148 ALTerm [al_term] AlExprExtend [repeat al_expr_extend]
149 construct JavaExprExtend [repeat java_expr_extend]
150 _ [alExprExtendToJava AlExprExtend]
151 construct Result [opt java_expr]
152 ALTerm [alTermToJava] JavaExprExtend
153 replace [opt java_expr]
158 function alStmtToJava2 AlStmt [action_lang_stmt]
161 construct OptJavaExpr [opt java_expr]
162 _ [alExprToJava AlExpr]
163 deconstruct OptJavaExpr
165 replace [repeat java_lang_stmt]
170 function alOptElseJava AlOptElse [opt al_else]
171 deconstruct AlOptElse
173 AlSubStmt [action_lang_stmt]
174 construct AlSubStmts [repeat action_lang_stmt]
176 construct JavaSubStmts [repeat java_lang_stmt]
177 _ [alToJava AlSubStmts]
178 deconstruct JavaSubStmts
179 JavaSubStmt [java_lang_stmt]
180 replace [opt java_else]
186 function alStmtToJava3 AlStmt [action_lang_stmt]
188 'if '( AlExpr [al_expr] ')
189 AlSubStmt [action_lang_stmt]
190 AlOptElse [opt al_else]
191 construct OptJavaExpr [opt java_expr]
192 _ [alExprToJava AlExpr]
193 deconstruct OptJavaExpr
195 construct AlSubStmts [repeat action_lang_stmt]
197 construct JavaSubStmts [repeat java_lang_stmt]
198 _ [alToJava AlSubStmts]
199 deconstruct JavaSubStmts
200 JavaSubStmt [java_lang_stmt]
201 construct OptJavaElse [opt java_else]
202 _ [alOptElseJava AlOptElse]
203 replace [repeat java_lang_stmt]
210 function alStmtToJava4a AlStmt [action_lang_stmt]
213 replace [repeat java_lang_stmt]
215 'System '. 'out '. 'print '( Id ');
218 function alStmtToJava4b AlStmt [action_lang_stmt]
220 'prints String [stringlit] ';
221 replace [repeat java_lang_stmt]
223 'System '. 'out '. 'print '( String ');
226 function alStmtToJava4c AlStmt [action_lang_stmt]
229 replace [repeat java_lang_stmt]
231 '_s '= 'new 'String '( Id ', '0 ', 'pos ') ';
232 'System '. 'out '. 'print '( '_s ');
235 function alStmtToJava4d AlStmt [action_lang_stmt]
238 replace [repeat java_lang_stmt]
240 '_s '= 'new 'String '( 'data ', 'tokstart ', 'tokend '- 'tokstart ') ';
241 'System '. 'out '. 'print '( '_s ');
244 function alStmtToJava5 AlStmt [action_lang_stmt]
246 '{ AlSubStmts [repeat action_lang_stmt] '}
247 construct JavaSubStmts [repeat java_lang_stmt]
248 _ [alToJava AlSubStmts]
249 replace [repeat java_lang_stmt]
254 function alStmtToJava6 AlStmt [action_lang_stmt]
256 RagelStmt [al_ragel_stmt]
257 replace [repeat java_lang_stmt]
263 function alToJava AlStmts [repeat action_lang_stmt]
265 FirstStmt [action_lang_stmt] Rest [repeat action_lang_stmt]
266 construct JavaFirst [repeat java_lang_stmt]
268 [alStmtToJava1 FirstStmt]
269 [alStmtToJava2 FirstStmt]
270 [alStmtToJava3 FirstStmt]
271 [alStmtToJava4a FirstStmt]
272 [alStmtToJava4b FirstStmt]
273 [alStmtToJava4c FirstStmt]
274 [alStmtToJava4d FirstStmt]
275 [alStmtToJava5 FirstStmt]
276 [alStmtToJava6 FirstStmt]
277 construct JavaRest [repeat java_lang_stmt]
279 replace [repeat java_lang_stmt]
281 JavaFirst [. JavaRest]
285 replace [al_host_block]
286 '{ AlStmts [repeat action_lang_stmt] '}
287 construct JavaStmts [repeat java_lang_stmt]
294 replace $ [machine_stmt]
296 import TXLargs [repeat stringlit]
297 Arg1 [stringlit] _ [repeat stringlit]
298 construct ClassName [id]
301 'machine ClassName ';
304 function langTransJava
306 Definitions [repeat action_lang_stmt]
308 Initializations [repeat action_lang_stmt]
310 construct JavaDefinitions [repeat java_lang_stmt]
311 _ [alToJava Definitions]
312 construct JavaInitializations [repeat java_lang_stmt]
313 _ [alToJava Initializations]
314 construct NewRagelDef [ragel_def]
315 RagelDef [actionTransJava] [machineName]
316 import ArrayInits [java_statements]
317 ArrayInitStmts [repeat java_lang_stmt]
321 ArrayInitStmts [. JavaInitializations]
328 export ArrayInits [java_statements]