summaryrefslogtreecommitdiff
path: root/testsuite/tests/lexing/uchar_esc.ml
blob: b288ac2561fa5ed05932adc4c919c044d16fc73d (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
31
32
33
34

(* Correct escapes and their encoding *)

let () =
  assert ("\xF0\x9F\x90\xAB" = "\u{1F42B}");
  assert ("\xF0\x9F\x90\xAB" = "\u{01F42B}");
  assert ("\x00" = "\u{0}");
  assert ("\x00" = "\u{00}");
  assert ("\x00" = "\u{000}");
  assert ("\x00" = "\u{0000}");
  assert ("\x00" = "\u{00000}");
  assert ("\x00" = "\u{000000}");
  assert ("\xC3\xA9" = "\u{E9}");
  assert ("\xC3\xA9" = "\u{0E9}");
  assert ("\xC3\xA9" = "\u{00E9}");
  assert ("\xC3\xA9" = "\u{000E9}");
  assert ("\xC3\xA9" = "\u{0000E9}");
  assert ("\xC3\xA9" = "\u{0000E9}");
  assert ("\xF4\x8F\xBF\xBF" = "\u{10FFFF}");
  ()
;;


(* Errors *)

let invalid_sv = "\u{0D800}" ;;
let invalid_sv = "\u{D800}" ;;
let invalid_sv = "\u{D900}" ;;
let invalid_sv = "\u{DFFF}" ;;
let invalid_sv = "\u{110000} ;;

let too_many_digits = "\u{01234567}" ;;
let no_hex_digits = "\u{}" ;;
let illegal_hex_digit = "\u{u}" ;;