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 <- []