From 741f88ab405995003eb6e9f301d3b065c1e84a4a Mon Sep 17 00:00:00 2001 From: Sébastien Dailly Date: Fri, 28 Jan 2022 14:44:57 +0100 Subject: Added a motus solver --- motus/js/reload.ml | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 motus/js/reload.ml (limited to 'motus/js/reload.ml') diff --git a/motus/js/reload.ml b/motus/js/reload.ml new file mode 100644 index 0000000..3a461ee --- /dev/null +++ b/motus/js/reload.ml @@ -0,0 +1,31 @@ +open StdLabels + +type t = unit + +let process : t -> State.state -> State.state = + fun () state -> + (* Get the word corresponding to the proposition *) + let word = + state.State.current_prop + |> List.to_seq + |> Seq.map (fun opt -> + match opt with + | None -> ' ' + | Some (letter, _) -> String.get (Jstr.to_string letter) 0 ) + |> String.of_seq + in + + let element = + List.filter + ~f:(fun w -> not (String.equal w word)) + state.State.analysis.element + in + let analysis = { state.analysis with element } in + let new_state = { state with analysis } in + (* Get the new proposition if any *) + let current_prop = Initialize.get_proposition analysis state.rules in + match current_prop with + | None -> new_state + | Some prop -> + FieldList.set_with_props prop state.fields new_state.rules; + State.{ new_state with current_prop = prop } -- cgit v1.2.3