Revision 1ad092fb
Added by Pierre-Loïc Garoche over 9 years ago
src/machine_code.ml | ||
---|---|---|
374 | 374 |
j, |
375 | 375 |
d, |
376 | 376 |
control_on_clock node args eq.eq_rhs.expr_clock (MStateAssign (var_x, translate_expr node args e2)) :: s) |
377 |
| p , Expr_appl (f, arg, r) -> |
|
377 |
|
|
378 |
| p , Expr_appl (f, arg, r) when not (Basic_library.is_internal_fun f) -> |
|
378 | 379 |
let var_p = List.map (fun v -> node_var v node) p in |
379 | 380 |
let el = |
380 | 381 |
match arg.expr_desc with |
... | ... | |
390 | 391 |
Clock_calculus.unify_imported_clock (Some call_ck) eq.eq_rhs.expr_clock; |
391 | 392 |
(m, |
392 | 393 |
(if Stateless.check_node node_f then si else MReset o :: si), |
393 |
(if Basic_library.is_internal_fun f then j else Utils.IMap.add o call_f j),
|
|
394 |
Utils.IMap.add o call_f j,
|
|
394 | 395 |
d, |
395 | 396 |
reset_instance node args o r eq.eq_rhs.expr_clock @ |
396 | 397 |
(control_on_clock node args call_ck (MStep (var_p, o, vl))) :: s) |
... | ... | |
413 | 414 |
| [x], _ -> ( |
414 | 415 |
let var_x = node_var x node in |
415 | 416 |
(m, si, j, d, |
416 |
control_on_clock node args eq.eq_rhs.expr_clock (translate_act node args (var_x, eq.eq_rhs)) :: s) |
|
417 |
control_on_clock |
|
418 |
node |
|
419 |
args |
|
420 |
eq.eq_rhs.expr_clock |
|
421 |
(translate_act node args (var_x, eq.eq_rhs)) :: s |
|
422 |
) |
|
417 | 423 |
) |
418 | 424 |
| _ -> |
419 | 425 |
begin |
Also available in: Unified diff
Create a Step call only for functions that are not in basic lib