OCaml HTML5 parser/serialiser based on Python's JustHTML
1type t = { mutable messages : Message.t list } 2 3let create () = { messages = [] } 4 5let add t msg = t.messages <- msg :: t.messages 6 7let add_error t ~message ?code ?location ?element ?attribute ?extract () = 8 let msg = 9 Message.error ~message ?code ?location ?element ?attribute ?extract () 10 in 11 add t msg 12 13let add_warning t ~message ?code ?location ?element ?attribute ?extract () = 14 let msg = 15 Message.warning ~message ?code ?location ?element ?attribute ?extract () 16 in 17 add t msg 18 19let add_info t ~message ?code ?location ?element ?attribute ?extract () = 20 let msg = 21 Message.info ~message ?code ?location ?element ?attribute ?extract () 22 in 23 add t msg 24 25let messages t = List.rev t.messages 26 27let errors t = 28 List.filter (fun msg -> msg.Message.severity = Message.Error) (messages t) 29 30let warnings t = 31 List.filter (fun msg -> msg.Message.severity = Message.Warning) (messages t) 32 33let infos t = 34 List.filter (fun msg -> msg.Message.severity = Message.Info) (messages t) 35 36let has_errors t = 37 List.exists (fun msg -> msg.Message.severity = Message.Error) t.messages 38 39let count t = List.length t.messages 40 41let error_count t = 42 List.fold_left 43 (fun acc msg -> 44 if msg.Message.severity = Message.Error then acc + 1 else acc) 45 0 t.messages 46 47let clear t = t.messages <- []