package kkmarkdown

  1. Overview
  2. Docs

Source file SpanRuleUnicode.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
module Make (M : sig
  val re : Str.regexp
end) =
struct
  let is_safe = true
  let first_char = FirstChar.One '&'

  let construct _ ({ SpanRule.s; cur } as state) =
    if Str.string_match M.re s cur then (
      state.cur <- Str.match_end ();
      Some (Typ.UnicodeSpan (Str.matched_string s)))
    else None
end

module Hex = Make (struct
  let re =
    Str.regexp "&#x[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]?;"
end)

module Dec = Make (struct
  let re = Str.regexp "&#[0-9][0-9][0-9][0-9][0-9]?[0-9]?;"
end)
OCaml

Innovation. Community. Security.