diff options
| author | Sébastien Dailly <sebastien@dailly.me> | 2026-06-21 09:29:20 +0200 |
|---|---|---|
| committer | Sébastien Dailly <sebastien@dailly.me> | 2026-06-21 09:29:20 +0200 |
| commit | e455d580ab4d837122a4186627ec109c4000d7c5 (patch) | |
| tree | 37e6292ae1d6a31f57e6b7cdbedf8e11e257aa5c /motus/js/state.ml | |
| parent | 5709ce369f815ca26d555a05e84cfd0b8dc311cf (diff) | |
Diffstat (limited to 'motus/js/state.ml')
| -rw-r--r-- | motus/js/state.ml | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/motus/js/state.ml b/motus/js/state.ml index e2e531d..41a5875 100644 --- a/motus/js/state.ml +++ b/motus/js/state.ml @@ -3,18 +3,19 @@ open Motus_lib type proposition = (Jstr.t * Validity.t) option list -type state = - { analysis : Wordlist.t +type state = { + candidates : Wordlist.t ; catalog : Wordlist.t ; rules : Criteria.t list ; length : int ; propositions : proposition list ; current_prop : proposition ; fields : Brr.El.t list - } +} let init () = - { analysis = Wordlist.empty_data () + { + candidates = Wordlist.empty_data () ; catalog = Wordlist.empty_data () ; rules = [] ; length = 0 @@ -23,7 +24,6 @@ let init () = ; fields = [] } - module App = Application.Make (struct type t = state end) @@ -35,17 +35,15 @@ let get_current_rules : proposition -> Criteria.t list = List.iteri prop ~f:(fun i prop -> Option.iter (fun (letter, validity) -> - if Jstr.equal Jstr.empty letter - then () + if Jstr.equal Jstr.empty letter then () else let char = String.get (Jstr.to_string letter) 0 in - rules := Validity.to_criteria char i validity !rules ) - prop ); + rules := Validity.to_criteria char i validity !rules) + prop); List.rev !rules - (** Compare two states *) let eq : state -> state -> bool = fun s1 s2 -> - (s1.length, s1.rules, s1.current_prop, s1.propositions, s1.analysis) - = (s2.length, s2.rules, s2.current_prop, s2.propositions, s2.analysis) + (s1.length, s1.rules, s1.current_prop, s1.propositions, s1.candidates) + = (s2.length, s2.rules, s2.current_prop, s2.propositions, s2.candidates) |
