(************************************************************************) (* * The Coq Proof Assistant / The Coq Development Team *) (* v * Copyright INRIA, CNRS and contributors *) (* Pp.str "!" | SelectAll -> Pp.str "all" | SelectNth i -> Pp.int i | SelectList l -> Pp.(str "[" ++ prlist_with_sep pr_comma pr_range_selector l ++ str "]") | SelectId id -> Names.Id.print id let parse_goal_selector = function | "!" -> SelectAlreadyFocused | "all" -> SelectAll | i -> let err_msg = "The default selector must be \"all\", \"!\" or a natural number." in begin try let i = int_of_string i in if i < 0 then CErrors.user_err Pp.(str err_msg); SelectNth i with Failure _ -> CErrors.user_err Pp.(str err_msg) end (* Default goal selector: selector chosen when a tactic is applied without an explicit selector. *) let get_default_goal_selector = Goptions.declare_interpreted_string_option_and_ref ~depr:false ~key:["Default";"Goal";"Selector"] ~value:(SelectNth 1) parse_goal_selector (fun v -> Pp.string_of_ppcmds @@ pr_goal_selector v)