12 | [EX] '{ [IN] [NL] [d_statements] [EX] '} [IN] [NL]
15 define d_variable_decl
16 [d_type_decl] [id] [opt union] '; [NL]
29 [d_term] [repeat d_expr_extend]
50 'if '( [d_expr] ') [NL] [IN]
72 redefine al_host_block
73 '{ [NL] [IN] [al_statements] [EX] '} [NL]
74 | '{ [NL] [IN] [d_statements] [EX] '} [NL]
84 function alStmtToD1 AlStmt [action_lang_stmt]
86 VarDecl [al_variable_decl]
88 Type [al_type_decl] Id [id] OptUnion [opt union] ';
89 construct DType [d_type_decl]
91 construct Result [d_variable_decl]
92 DType [ptrTypes] Id OptUnion ';
93 replace [repeat d_lang_stmt]
98 function alExprExtendToD AlExprExtend [repeat al_expr_extend]
99 deconstruct AlExprExtend
100 Op [al_expr_op] Term [al_term] Rest [repeat al_expr_extend]
101 construct DRest [repeat d_expr_extend]
102 _ [alExprExtendToD Rest]
103 replace [repeat d_expr_extend]
108 function alExprToD AlExpr [al_expr]
110 ALTerm [al_term] AlExprExtend [repeat al_expr_extend]
111 construct DExprExtend [repeat d_expr_extend]
112 _ [alExprExtendToD AlExprExtend]
113 construct Result [opt d_expr]
120 function alStmtToD2 AlStmt [action_lang_stmt]
123 construct OptDExpr [opt d_expr]
127 replace [repeat d_lang_stmt]
132 function alOptElseD AlOptElse [opt al_else]
133 deconstruct AlOptElse
135 AlSubStmt [action_lang_stmt]
136 construct AlSubStmts [repeat action_lang_stmt]
138 construct DSubStmts [repeat d_lang_stmt]
140 deconstruct DSubStmts
141 DSubStmt [d_lang_stmt]
148 function alStmtToD3 AlStmt [action_lang_stmt]
150 'if '( AlExpr [al_expr] ')
151 AlSubStmt [action_lang_stmt]
152 AlOptElse [opt al_else]
153 construct OptDExpr [opt d_expr]
157 construct AlSubStmts [repeat action_lang_stmt]
159 construct DSubStmts [repeat d_lang_stmt]
161 deconstruct DSubStmts
162 DSubStmt [d_lang_stmt]
163 construct OptDElse [opt d_else]
164 _ [alOptElseD AlOptElse]
165 replace [repeat d_lang_stmt]
172 function alStmtToD4a AlStmt [action_lang_stmt]
175 replace [repeat d_lang_stmt]
177 'writef '( '"%d" ', Id ');
180 function alStmtToD4b AlStmt [action_lang_stmt]
182 'prints String [stringlit] ';
183 replace [repeat d_lang_stmt]
185 'writef '( '"%s" ', String ');
188 function alStmtToD5 AlStmt [action_lang_stmt]
190 '{ AlSubStmts [repeat action_lang_stmt] '}
191 construct DSubStmts [repeat d_lang_stmt]
193 replace [repeat d_lang_stmt]
198 function alStmtToD6 AlStmt [action_lang_stmt]
200 RagelStmt [al_ragel_stmt]
201 replace [repeat d_lang_stmt]
206 function alToD AlStmts [repeat action_lang_stmt]
208 FirstStmt [action_lang_stmt] Rest [repeat action_lang_stmt]
209 construct DFirst [repeat d_lang_stmt]
211 [alStmtToD1 FirstStmt]
212 [alStmtToD2 FirstStmt]
213 [alStmtToD3 FirstStmt]
214 [alStmtToD4a FirstStmt]
215 [alStmtToD4b FirstStmt]
216 [alStmtToD5 FirstStmt]
217 [alStmtToD6 FirstStmt]
218 construct DRest [repeat d_lang_stmt]
220 replace [repeat d_lang_stmt]
226 replace [al_host_block]
227 '{ AlStmts [repeat action_lang_stmt] '}
228 construct DStmts [repeat d_lang_stmt]
236 Definitions [repeat action_lang_stmt]
238 Initializations [repeat action_lang_stmt]
240 construct DDefinitions [repeat d_lang_stmt]
241 _ [alToD Definitions]
242 construct DInitializations [repeat d_lang_stmt]
243 _ [alToD Initializations]
248 RagelDef [actionTransD]