diff --git a/lib/sasacore/sasaState.ml b/lib/sasacore/sasaState.ml index af3582a84b47b621351ef4f443e1e45bf2ac7d2c..371cde9d158509220647ea82d7bde7c54d2b55ff 100644 --- a/lib/sasacore/sasaState.ml +++ b/lib/sasacore/sasaState.ml @@ -27,9 +27,19 @@ let (string_to_data : string -> data_or_name) = let (to_list : 'v -> data_or_name list) = fun v -> let str = Register.to_string v in - let lstr = Str.split (Str.regexp "[ \t=]+") str in - let l = List.map string_to_data lstr in - l + let lstr = Str.split (Str.regexp "[ \t]+") str in + let lstr = List.map + (fun str -> + match Str.split (Str.regexp "[=]") str with + | [v] -> [string_to_data v] + | [n;v] -> [Name n; string_to_data v] + | _ -> + let msg = Printf.sprintf "Bad format '%s' for printing state values" str in + failwith msg + ) + lstr + in + List.flatten lstr (* remove var name hints *) let (to_rif_data : 'v -> string) =