Source file AllBlockRules.ml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
(** List of all block rules in descending order *)
let all : (module BlockRule.S) list =
[
(module BlockRuleHr);
(module BlockRuleHeader.Sharp);
(module BlockRuleHeader.H1);
(module BlockRuleHeader.H2);
(module BlockRuleList.Ol);
(module BlockRuleList.Ul);
(module BlockRuleCode.Backquote);
(module BlockRuleCode.Tilde);
(module BlockRuleCode.UnsafeBackquote);
(module BlockRuleCode.UnsafeTilde);
(module BlockRuleCode.Indent);
(module BlockRuleQuote);
(module BlockRuleInlineHTML.Div);
(module BlockRuleInlineHTML.Script);
(module BlockRuleImg);
(module BlockRuleP);
]
module Map = FirstChar.Map (struct
module type Rule = BlockRule.S
let first_char rule =
let module Rule = (val rule : BlockRule.S) in
Rule.first_char
end)
let first_char_map, any = Map.init all
let find c = Map.find c first_char_map