blob: e27d72edb12aaa30b796e07a99f7df4e494363c5 (
plain)
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
|
let cCAMLtoTKtextMark x = TkToken x
let cTKtoCAMLtextMark x = x
let cCAMLtoTKtextTag x = TkToken x
let cTKtoCAMLtextTag x = x
(* TextModifiers are never returned by Tk *)
let cCAMLtoTKtextIndex (i : textIndex) =
let ppTextModifier = function
| `Char n ->
if n > 0 then "+" ^ (string_of_int n) ^ "chars"
else if n = 0 then ""
else (string_of_int n) ^ "chars"
| `Line n ->
if n > 0 then "+" ^ (string_of_int n) ^ "lines"
else if n = 0 then ""
else (string_of_int n) ^ "lines"
| `Linestart -> " linestart"
| `Lineend -> " lineend"
| `Wordstart -> " wordstart"
| `Wordend -> " wordend"
in
let ppTextIndex (base, ml : textIndex) =
match cCAMLtoTKtext_index base with
TkToken ppbase ->
String.concat ~sep:"" (ppbase :: List.map ~f:ppTextModifier ml)
| _ -> assert false
in
TkToken (ppTextIndex i)
|