Revision 7a19992d
Added by Pierre-Loïc Garoche almost 11 years ago
src/machine_code.ml | ||
---|---|---|
291 | 291 |
| Expr_access (t, i) -> Access (translate_expr node args t, translate_expr node args (expr_of_dimension i)) |
292 | 292 |
| Expr_power (e, n) -> Power (translate_expr node args e, translate_expr node args (expr_of_dimension n)) |
293 | 293 |
| Expr_tuple _ |
294 |
| Expr_ite _ |
|
295 | 294 |
| Expr_arrow _ |
296 | 295 |
| Expr_fby _ |
297 | 296 |
| Expr_pre _ -> (Printers.pp_expr Format.err_formatter expr; Format.pp_print_flush Format.err_formatter (); raise NormalizationError) |
... | ... | |
302 | 301 |
(match e.expr_desc with |
303 | 302 |
| Expr_tuple el -> Fun (node_name nd, List.map (translate_expr node args) el) |
304 | 303 |
| _ -> Fun (node_name nd, [translate_expr node args e])) |
304 |
| Expr_ite (g,t,e) -> Fun ("ite", [translate_expr node args g; translate_expr node args t; translate_expr node args e]) |
|
305 |
|
|
305 | 306 |
| _ -> raise NormalizationError |
306 | 307 |
|
307 | 308 |
let translate_guard node args expr = |
... | ... | |
367 | 368 |
d, |
368 | 369 |
reset_instance node args o r eq.eq_rhs.expr_clock @ |
369 | 370 |
(control_on_clock node args eq.eq_rhs.expr_clock (MStep (var_p, o, vl))) :: s) |
371 |
| [x], Expr_ite (c, t, e) -> |
|
372 |
let var_x = node_var x node in |
|
373 |
(m, |
|
374 |
si, |
|
375 |
j, |
|
376 |
d, |
|
377 |
(control_on_clock node args eq.eq_rhs.expr_clock |
|
378 |
(MLocalAssign (var_x, translate_expr node args eq.eq_rhs))::s) |
|
379 |
) |
|
370 | 380 |
| [x], _ -> |
371 | 381 |
let var_x = node_var x node in |
372 | 382 |
(m, si, j, d, |
... | ... | |
425 | 435 |
step_outputs = nd.node_outputs; |
426 | 436 |
step_locals = ISet.elements (ISet.diff locals m); |
427 | 437 |
step_checks = List.map (fun d -> d.Dimension.dim_loc, translate_expr nd init_args (expr_of_dimension d)) nd.node_checks; |
428 |
step_instrs = join_guards_list s;
|
|
438 |
step_instrs = (* join_guards_list *) s;
|
|
429 | 439 |
}; |
430 | 440 |
mspec = nd.node_spec; |
431 | 441 |
mannot = nd.node_annot; |
Also available in: Unified diff
In the middle of the coding process. Just pushing thinks
git-svn-id: https://cavale.enseeiht.fr/svn/lustrec/lustre_compiler/branches/horn_encoding@143 041b043f-8d7c-46b2-b46e-ef0dd855326e