Skip to content

Commit c99337f

Browse files
author
Jérôme FERET
committed
Incremental version of scan_compil with logs
1 parent 5ba0cb5 commit c99337f

File tree

2 files changed

+68
-2
lines changed

2 files changed

+68
-2
lines changed

core/KaSa_rep/frontend/list_tokens.ml

Lines changed: 53 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -515,22 +515,22 @@ let reverse_agents_annotation parameters (error, remanent) =
515515

516516
error, { remanent with Cckappa_sig.agents_annotation }
517517

518-
let scan_compil parameters error compil =
518+
let scan_compil_incremental parameters error compil remanent =
519519
let parameters =
520520
Remanent_parameters.set_trace parameters
521521
(local_trace || Remanent_parameters.get_trace parameters)
522522
in
523523
let also_explore_tested_agents =
524524
Remanent_parameters.lexical_analysis_of_tested_only_patterns parameters
525525
in
526+
let remanent = error, remanent in
526527
let scan_tested_mixture =
527528
if also_explore_tested_agents then
528529
scan_mixture
529530
else
530531
fun _parameters remanent _mixture ->
531532
remanent
532533
in
533-
let remanent = empty_handler parameters error in
534534
let remanent =
535535
scan_declarations parameters remanent
536536
(compil.Ast.signatures : Ckappa_sig.agent_sig list)
@@ -548,3 +548,54 @@ let scan_compil parameters error compil =
548548
in
549549
let remanent = reverse_agents_annotation parameters (error, remanent) in
550550
remanent
551+
552+
let scan_compil parameters error compil =
553+
let error, remanent = empty_handler parameters error in
554+
scan_compil_incremental parameters error compil remanent
555+
556+
let scan_incremental_compil parameters error compil old_remanent =
557+
let error, remanent = scan_compil_incremental parameters error compil old_remanent in
558+
let () =
559+
if Remanent_parameters.get_trace parameters then
560+
let () =
561+
if remanent.Cckappa_sig.nvars > old_remanent.Cckappa_sig.nvars
562+
then
563+
let rec aux n acc =
564+
if n = old_remanent.Cckappa_sig.nvars then acc
565+
else aux (n-1) (n::acc)
566+
in
567+
let l = aux remanent.Cckappa_sig.nvars [] in
568+
Loggers.fprintf
569+
(Remanent_parameters.get_logger parameters)
570+
"New variables with id (%a)"
571+
(Format.pp_print_list Format.pp_print_int) l
572+
else ()
573+
in
574+
let doit get_field label =
575+
let () =
576+
if get_field remanent > get_field old_remanent
577+
then
578+
let rec aux n acc =
579+
if n = get_field old_remanent
580+
then acc
581+
else aux (n-1) (n::acc)
582+
in
583+
let l = aux (get_field remanent) [] in
584+
Loggers.fprintf
585+
(Remanent_parameters.get_logger parameters)
586+
"New %s with id (%a)"
587+
label
588+
(Format.pp_print_list Format.pp_print_int) l
589+
else ()
590+
in ()
591+
in
592+
let () = doit (fun x -> x.Cckappa_sig.nvars) "variables" in
593+
let () = doit (fun x -> Ckappa_sig.int_of_agent_name x.Cckappa_sig.nagents) "agent names" in
594+
let () = doit (fun x -> x.Cckappa_sig.nrules) "rules" in
595+
let () = doit (fun x -> Ckappa_sig.int_of_site_name x.Cckappa_sig.nsites) "site names" in
596+
()
597+
else
598+
()
599+
in
600+
error, remanent
601+

core/KaSa_rep/frontend/list_tokens.mli

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,21 @@ val scan_compil :
1515
Exception_without_parameter.exceptions_caught_and_uncaught
1616
* Cckappa_sig.kappa_handler
1717

18+
val scan_incremental_compil :
19+
Remanent_parameters_sig.parameters ->
20+
Exception_without_parameter.exceptions_caught_and_uncaught ->
21+
( Ckappa_sig.agent,
22+
Ckappa_sig.agent_sig,
23+
Ckappa_sig.mixture,
24+
Ckappa_sig.mixture,
25+
string,
26+
Ckappa_sig.mixture Ckappa_sig.rule )
27+
Ast.compil ->
28+
Cckappa_sig.kappa_handler ->
29+
Exception_without_parameter.exceptions_caught_and_uncaught
30+
* Cckappa_sig.kappa_handler
31+
32+
1833
val empty_handler :
1934
Remanent_parameters_sig.parameters ->
2035
Exception_without_parameter.exceptions_caught_and_uncaught ->

0 commit comments

Comments
 (0)