(************************************************************************) (* v * The Coq Proof Assistant / The Coq Development Team *) (* s)) } | _ { let c = lexeme_start lexbuf in eprintf ".coqiderc: invalid character (%d)\n@." c; token lexbuf } | eof { EOF } and string = parse | '"' { Buffer.add_char string_buffer '"' } | '\\' '"' | _ { Buffer.add_string string_buffer (lexeme lexbuf); string lexbuf } | eof { eprintf ".coqiderc: unterminated string\n@." } { let load_file f = let c = open_in f in let lb = from_channel c in let m = Config_parser.prefs token lb in close_in c; m let print_file f m = let c = open_out f in let fmt = formatter_of_out_channel c in let rec print_list fmt = function | [] -> () | s :: sl -> fprintf fmt "%S@ %a" s print_list sl in Stringmap.iter (fun k s -> fprintf fmt "@[%s = %a@]@\n" k print_list s) m; fprintf fmt "@."; close_out c }