From 1c4e0ece041f87cc0c328c94270f2b23facc8b77 Mon Sep 17 00:00:00 2001 From: Bernhard Schommer Date: Thu, 8 Mar 2018 16:02:52 +0100 Subject: Print symbols as symbols. This allows us to replacing them by their address in valex and additionally checking them. Bug 22438 --- backend/AisAnnot.ml | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) (limited to 'backend/AisAnnot.ml') diff --git a/backend/AisAnnot.ml b/backend/AisAnnot.ml index d10dc8d4..5983f417 100644 --- a/backend/AisAnnot.ml +++ b/backend/AisAnnot.ml @@ -113,7 +113,7 @@ let loc_of_txt txt = let re_ais_annot_param = Str.regexp "%%\\|%[el][0-9]+\\|%here\\|\007" -let add_ais_annot lbl preg_string sp_reg_name txt args = +let ais_annot_txt warn lbl preg_string sp_reg_name txt args = let fragment = function | Str.Delim "%here" -> [Label lbl] @@ -138,8 +138,11 @@ let add_ais_annot lbl preg_string sp_reg_name txt args = List.concat (List.map fragment (Str.full_split re_ais_annot_param txt)) with | Bad_parameter s -> - let loc = loc_of_txt txt in - warning loc Wrong_ais_parameter "wrong ais parameter %s" s; [] + if warn then begin + let loc = loc_of_txt txt in + warning loc Wrong_ais_parameter "wrong ais parameter %s" s + end; + [] in let rec merge acc = function | [] -> List.rev acc @@ -149,10 +152,20 @@ let add_ais_annot lbl preg_string sp_reg_name txt args = merge acc (String (s1 ^ s2) :: rest) | String s:: rest -> merge ((String s)::acc) rest in - let annot = merge [] annot in + merge [] annot + +let add_ais_annot lbl preg_string sp_reg_name txt args = + let annot = ais_annot_txt true lbl preg_string sp_reg_name txt args in if annot <> [] then ais_annot_list := (annot)::!ais_annot_list +let json_ais_annot preg_string sp_reg_name txt args = + let txt = ais_annot_txt false 0 preg_string sp_reg_name txt args in + let t_to_json = function + | Label _ -> String "%here" + | s -> s in + (List.map t_to_json txt) + let validate_ais_annot env loc txt args = let used_params = Array.make (List.length args) false in let fragment arg = -- cgit