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 alExprExtendToJava AlExprExtend [repeat al_expr_extend]
130 deconstruct AlExprExtend
131 Op [al_expr_op] Term [al_term] Rest [repeat al_expr_extend]
132 construct JavaRest [repeat java_expr_extend]
133 _ [alExprExtendToJava Rest]
134 replace [repeat java_expr_extend]
139 function alExprToJava AlExpr [al_expr]
141 ALTerm [al_term] AlExprExtend [repeat al_expr_extend]
142 construct JavaExprExtend [repeat java_expr_extend]
143 _ [alExprExtendToJava AlExprExtend]
144 construct Result [opt java_expr]
145 ALTerm JavaExprExtend
146 replace [opt java_expr]
151 function alStmtToJava2 AlStmt [action_lang_stmt]
154 construct OptJavaExpr [opt java_expr]
155 _ [alExprToJava AlExpr]
156 deconstruct OptJavaExpr
158 replace [repeat java_lang_stmt]
163 function alOptElseJava AlOptElse [opt al_else]
164 deconstruct AlOptElse
166 AlSubStmt [action_lang_stmt]
167 construct AlSubStmts [repeat action_lang_stmt]
169 construct JavaSubStmts [repeat java_lang_stmt]
170 _ [alToJava AlSubStmts]
171 deconstruct JavaSubStmts
172 JavaSubStmt [java_lang_stmt]
173 replace [opt java_else]
179 function alStmtToJava3 AlStmt [action_lang_stmt]
181 'if '( AlExpr [al_expr] ')
182 AlSubStmt [action_lang_stmt]
183 AlOptElse [opt al_else]
184 construct OptJavaExpr [opt java_expr]
185 _ [alExprToJava AlExpr]
186 deconstruct OptJavaExpr
188 construct AlSubStmts [repeat action_lang_stmt]
190 construct JavaSubStmts [repeat java_lang_stmt]
191 _ [alToJava AlSubStmts]
192 deconstruct JavaSubStmts
193 JavaSubStmt [java_lang_stmt]
194 construct OptJavaElse [opt java_else]
195 _ [alOptElseJava AlOptElse]
196 replace [repeat java_lang_stmt]
203 function alStmtToJava4a AlStmt [action_lang_stmt]
206 replace [repeat java_lang_stmt]
208 'System '. 'out '. 'print '( Id ');
211 function alStmtToJava4b AlStmt [action_lang_stmt]
213 'prints String [stringlit] ';
214 replace [repeat java_lang_stmt]
216 'System '. 'out '. 'print '( String ');
219 function alStmtToJava4c AlStmt [action_lang_stmt]
222 replace [repeat java_lang_stmt]
224 '_s '= 'new 'String '( Id ', '0 ', 'pos ') ';
225 'System '. 'out '. 'print '( '_s ');
228 function alStmtToJava5 AlStmt [action_lang_stmt]
230 '{ AlSubStmts [repeat action_lang_stmt] '}
231 construct JavaSubStmts [repeat java_lang_stmt]
232 _ [alToJava AlSubStmts]
233 replace [repeat java_lang_stmt]
238 function alStmtToJava6 AlStmt [action_lang_stmt]
240 RagelStmt [al_ragel_stmt]
241 replace [repeat java_lang_stmt]
247 function alToJava AlStmts [repeat action_lang_stmt]
249 FirstStmt [action_lang_stmt] Rest [repeat action_lang_stmt]
250 construct JavaFirst [repeat java_lang_stmt]
252 [alStmtToJava1 FirstStmt]
253 [alStmtToJava2 FirstStmt]
254 [alStmtToJava3 FirstStmt]
255 [alStmtToJava4a FirstStmt]
256 [alStmtToJava4b FirstStmt]
257 [alStmtToJava4c FirstStmt]
258 [alStmtToJava5 FirstStmt]
259 [alStmtToJava6 FirstStmt]
260 construct JavaRest [repeat java_lang_stmt]
262 replace [repeat java_lang_stmt]
264 JavaFirst [. JavaRest]
268 replace [al_host_block]
269 '{ AlStmts [repeat action_lang_stmt] '}
270 construct JavaStmts [repeat java_lang_stmt]
277 replace $ [machine_stmt]
279 import TXLargs [repeat stringlit]
280 Arg1 [stringlit] _ [repeat stringlit]
281 construct ClassName [id]
284 'machine ClassName ';
287 function langTransJava
289 Definitions [repeat action_lang_stmt]
291 Initializations [repeat action_lang_stmt]
293 construct JavaDefinitions [repeat java_lang_stmt]
294 _ [alToJava Definitions]
295 construct JavaInitializations [repeat java_lang_stmt]
296 _ [alToJava Initializations]
297 construct NewRagelDef [ragel_def]
298 RagelDef [actionTransJava] [machineName]
299 import ArrayInits [java_statements]
300 ArrayInitStmts [repeat java_lang_stmt]
304 ArrayInitStmts [. JavaInitializations]
311 export ArrayInits [java_statements]