Add poc files
This commit is contained in:
parent
30da2412e3
commit
fa600b98f7
220 changed files with 45679 additions and 0 deletions
542
external/jsonwheel/json_lexer.ml
vendored
Normal file
542
external/jsonwheel/json_lexer.ml
vendored
Normal file
|
|
@ -0,0 +1,542 @@
|
|||
# 1 "json_lexer.mll"
|
||||
|
||||
open Printf
|
||||
open Lexing
|
||||
|
||||
open Json_type
|
||||
open Json_parser
|
||||
|
||||
let loc lexbuf = (lexbuf.lex_start_p, lexbuf.lex_curr_p)
|
||||
|
||||
(* Detection of the encoding from the 4 first characters of the data *)
|
||||
let detect_encoding c1 c2 c3 c4 =
|
||||
match c1, c2, c3, c4 with
|
||||
'\000', '\000', '\000', _ -> `UTF32BE
|
||||
| '\000', _, '\000', _ -> `UTF16BE
|
||||
| _, '\000', '\000', '\000' -> `UTF32LE
|
||||
| _, '\000', _, '\000' -> `UTF16LE
|
||||
| _ -> `UTF8
|
||||
|
||||
let hexval c =
|
||||
match c with
|
||||
'0'..'9' -> int_of_char c - int_of_char '0'
|
||||
| 'a'..'f' -> int_of_char c - int_of_char 'a' + 10
|
||||
| 'A'..'F' -> int_of_char c - int_of_char 'A' + 10
|
||||
| _ -> assert false
|
||||
|
||||
let make_int big_int_mode s =
|
||||
try INT (int_of_string s)
|
||||
with _ ->
|
||||
if big_int_mode then STRING s
|
||||
else json_error (s ^ " is too large for OCaml's type int, sorry")
|
||||
|
||||
let utf8_of_point i =
|
||||
Netconversion2.ustring_of_uchar `Enc_utf8 i
|
||||
|
||||
let custom_error descr lexbuf =
|
||||
json_error
|
||||
(sprintf "%s:\n%s"
|
||||
(string_of_loc (loc lexbuf))
|
||||
descr)
|
||||
|
||||
let lexer_error descr lexbuf =
|
||||
custom_error
|
||||
(sprintf "%s '%s'" descr (Lexing.lexeme lexbuf))
|
||||
lexbuf
|
||||
|
||||
let set_file_name lexbuf name =
|
||||
lexbuf.lex_curr_p <- { lexbuf.lex_curr_p with pos_fname = name }
|
||||
|
||||
let newline lexbuf =
|
||||
let pos = lexbuf.lex_curr_p in
|
||||
lexbuf.lex_curr_p <- { pos with
|
||||
pos_lnum = pos.pos_lnum + 1;
|
||||
pos_bol = pos.pos_cnum }
|
||||
|
||||
type param = {
|
||||
allow_comments : bool;
|
||||
big_int_mode : bool;
|
||||
allow_nan : bool
|
||||
}
|
||||
|
||||
# 63 "json_lexer.ml"
|
||||
let __ocaml_lex_tables = {
|
||||
Lexing.lex_base =
|
||||
"\000\000\235\255\236\255\003\000\238\255\000\000\031\000\241\255\
|
||||
\085\000\001\000\000\000\000\000\001\000\000\000\248\255\249\255\
|
||||
\250\255\251\255\252\255\253\255\017\000\254\255\001\000\001\000\
|
||||
\002\000\247\255\000\000\000\000\003\000\246\255\001\000\004\000\
|
||||
\245\255\011\000\244\255\003\000\001\000\003\000\002\000\003\000\
|
||||
\000\000\243\255\010\000\020\000\019\000\016\000\022\000\012\000\
|
||||
\008\000\242\255\100\000\111\000\121\000\143\000\153\000\163\000\
|
||||
\175\000\185\000\002\001\251\255\252\255\037\001\254\255\255\255\
|
||||
\035\001\248\255\056\001\250\255\251\255\252\255\253\255\254\255\
|
||||
\255\255\111\001\134\001\172\001\249\255\089\000\252\255\253\255\
|
||||
\254\255\013\000\255\255";
|
||||
Lexing.lex_backtrk =
|
||||
"\255\255\255\255\255\255\018\000\255\255\015\000\015\000\255\255\
|
||||
\020\000\020\000\020\000\020\000\020\000\020\000\255\255\255\255\
|
||||
\255\255\255\255\255\255\255\255\020\000\255\255\000\000\255\255\
|
||||
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
|
||||
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
|
||||
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
|
||||
\255\255\255\255\255\255\255\255\016\000\255\255\016\000\255\255\
|
||||
\016\000\255\255\255\255\255\255\255\255\002\000\255\255\255\255\
|
||||
\255\255\255\255\007\000\255\255\255\255\255\255\255\255\255\255\
|
||||
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
|
||||
\255\255\003\000\255\255";
|
||||
Lexing.lex_default =
|
||||
"\001\000\000\000\000\000\255\255\000\000\255\255\255\255\000\000\
|
||||
\255\255\255\255\255\255\255\255\255\255\255\255\000\000\000\000\
|
||||
\000\000\000\000\000\000\000\000\255\255\000\000\022\000\255\255\
|
||||
\255\255\000\000\255\255\255\255\255\255\000\000\255\255\255\255\
|
||||
\000\000\255\255\000\000\255\255\255\255\255\255\255\255\255\255\
|
||||
\255\255\000\000\255\255\255\255\255\255\255\255\255\255\255\255\
|
||||
\255\255\000\000\255\255\255\255\255\255\255\255\255\255\255\255\
|
||||
\255\255\255\255\061\000\000\000\000\000\061\000\000\000\000\000\
|
||||
\065\000\000\000\255\255\000\000\000\000\000\000\000\000\000\000\
|
||||
\000\000\255\255\255\255\255\255\000\000\078\000\000\000\000\000\
|
||||
\000\000\255\255\000\000";
|
||||
Lexing.lex_trans =
|
||||
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
|
||||
\000\000\003\000\004\000\255\255\003\000\003\000\000\000\000\000\
|
||||
\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
|
||||
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
|
||||
\003\000\000\000\007\000\003\000\000\000\000\000\000\000\000\000\
|
||||
\000\000\000\000\000\000\000\000\015\000\008\000\051\000\020\000\
|
||||
\005\000\006\000\006\000\006\000\006\000\006\000\006\000\006\000\
|
||||
\006\000\006\000\014\000\021\000\082\000\000\000\000\000\000\000\
|
||||
\022\000\000\000\000\000\000\000\000\000\050\000\000\000\000\000\
|
||||
\000\000\009\000\000\000\000\000\000\000\051\000\010\000\006\000\
|
||||
\006\000\006\000\006\000\006\000\006\000\006\000\006\000\006\000\
|
||||
\006\000\034\000\000\000\017\000\000\000\016\000\000\000\000\000\
|
||||
\000\000\033\000\026\000\079\000\050\000\050\000\012\000\025\000\
|
||||
\029\000\036\000\037\000\039\000\027\000\031\000\011\000\035\000\
|
||||
\032\000\038\000\023\000\028\000\013\000\030\000\024\000\040\000\
|
||||
\043\000\041\000\044\000\019\000\045\000\018\000\046\000\047\000\
|
||||
\048\000\049\000\000\000\081\000\050\000\005\000\006\000\006\000\
|
||||
\006\000\006\000\006\000\006\000\006\000\006\000\006\000\057\000\
|
||||
\000\000\057\000\000\000\000\000\056\000\056\000\056\000\056\000\
|
||||
\056\000\056\000\056\000\056\000\056\000\056\000\042\000\052\000\
|
||||
\052\000\052\000\052\000\052\000\052\000\052\000\052\000\052\000\
|
||||
\052\000\052\000\052\000\052\000\052\000\052\000\052\000\052\000\
|
||||
\052\000\052\000\052\000\000\000\000\000\000\000\000\000\000\000\
|
||||
\000\000\000\000\055\000\000\000\055\000\000\000\053\000\054\000\
|
||||
\054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\
|
||||
\054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\
|
||||
\054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\
|
||||
\054\000\054\000\054\000\054\000\054\000\000\000\053\000\056\000\
|
||||
\056\000\056\000\056\000\056\000\056\000\056\000\056\000\056\000\
|
||||
\056\000\056\000\056\000\056\000\056\000\056\000\056\000\056\000\
|
||||
\056\000\056\000\056\000\000\000\000\000\000\000\000\000\000\000\
|
||||
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
|
||||
\002\000\255\255\060\000\060\000\060\000\060\000\060\000\060\000\
|
||||
\060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\
|
||||
\060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\
|
||||
\060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\
|
||||
\060\000\060\000\000\000\000\000\063\000\255\255\255\255\255\255\
|
||||
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
|
||||
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
|
||||
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
|
||||
\255\255\255\255\255\255\255\255\255\255\072\000\000\000\255\255\
|
||||
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
|
||||
\000\000\000\000\072\000\000\000\000\000\000\000\000\000\000\000\
|
||||
\000\000\080\000\000\000\000\000\000\000\000\000\062\000\000\000\
|
||||
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
|
||||
\073\000\073\000\073\000\073\000\073\000\073\000\073\000\073\000\
|
||||
\073\000\073\000\000\000\000\000\000\000\000\000\000\000\000\000\
|
||||
\000\000\073\000\073\000\073\000\073\000\073\000\073\000\072\000\
|
||||
\000\000\255\255\000\000\000\000\000\000\071\000\000\000\000\000\
|
||||
\000\000\070\000\000\000\000\000\000\000\000\000\000\000\000\000\
|
||||
\000\000\069\000\000\000\000\000\000\000\068\000\000\000\067\000\
|
||||
\066\000\073\000\073\000\073\000\073\000\073\000\073\000\074\000\
|
||||
\074\000\074\000\074\000\074\000\074\000\074\000\074\000\074\000\
|
||||
\074\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
|
||||
\074\000\074\000\074\000\074\000\074\000\074\000\075\000\075\000\
|
||||
\075\000\075\000\075\000\075\000\075\000\075\000\075\000\075\000\
|
||||
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\075\000\
|
||||
\075\000\075\000\075\000\075\000\075\000\000\000\000\000\000\000\
|
||||
\074\000\074\000\074\000\074\000\074\000\074\000\000\000\000\000\
|
||||
\000\000\000\000\000\000\000\000\076\000\076\000\076\000\076\000\
|
||||
\076\000\076\000\076\000\076\000\076\000\076\000\000\000\075\000\
|
||||
\075\000\075\000\075\000\075\000\075\000\076\000\076\000\076\000\
|
||||
\076\000\076\000\076\000\000\000\000\000\000\000\000\000\000\000\
|
||||
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
|
||||
\000\000\000\000\059\000\000\000\000\000\000\000\000\000\000\000\
|
||||
\000\000\000\000\000\000\000\000\000\000\076\000\076\000\076\000\
|
||||
\076\000\076\000\076\000\000\000\000\000\000\000\000\000\000\000\
|
||||
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
|
||||
\000\000\000\000\000\000\255\255\000\000\255\255\000\000\000\000\
|
||||
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
|
||||
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
|
||||
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
|
||||
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
|
||||
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
|
||||
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
|
||||
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
|
||||
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
|
||||
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
|
||||
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
|
||||
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
|
||||
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
|
||||
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
|
||||
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
|
||||
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
|
||||
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
|
||||
\000\000\000\000\000\000\000\000\000\000";
|
||||
Lexing.lex_check =
|
||||
"\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
|
||||
\255\255\000\000\000\000\022\000\003\000\000\000\255\255\255\255\
|
||||
\003\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
|
||||
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
|
||||
\000\000\255\255\000\000\003\000\255\255\255\255\255\255\255\255\
|
||||
\255\255\255\255\255\255\255\255\000\000\000\000\005\000\000\000\
|
||||
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
|
||||
\000\000\000\000\000\000\020\000\081\000\255\255\255\255\255\255\
|
||||
\020\000\255\255\255\255\255\255\255\255\005\000\255\255\255\255\
|
||||
\255\255\000\000\255\255\255\255\255\255\006\000\000\000\006\000\
|
||||
\006\000\006\000\006\000\006\000\006\000\006\000\006\000\006\000\
|
||||
\006\000\033\000\255\255\000\000\255\255\000\000\255\255\255\255\
|
||||
\255\255\010\000\012\000\077\000\006\000\005\000\000\000\024\000\
|
||||
\028\000\035\000\036\000\038\000\026\000\030\000\000\000\009\000\
|
||||
\031\000\037\000\013\000\027\000\000\000\011\000\023\000\039\000\
|
||||
\042\000\040\000\043\000\000\000\044\000\000\000\045\000\046\000\
|
||||
\047\000\048\000\255\255\077\000\006\000\008\000\008\000\008\000\
|
||||
\008\000\008\000\008\000\008\000\008\000\008\000\008\000\050\000\
|
||||
\255\255\050\000\255\255\255\255\050\000\050\000\050\000\050\000\
|
||||
\050\000\050\000\050\000\050\000\050\000\050\000\008\000\051\000\
|
||||
\051\000\051\000\051\000\051\000\051\000\051\000\051\000\051\000\
|
||||
\051\000\052\000\052\000\052\000\052\000\052\000\052\000\052\000\
|
||||
\052\000\052\000\052\000\255\255\255\255\255\255\255\255\255\255\
|
||||
\255\255\255\255\053\000\255\255\053\000\255\255\052\000\053\000\
|
||||
\053\000\053\000\053\000\053\000\053\000\053\000\053\000\053\000\
|
||||
\053\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\
|
||||
\054\000\054\000\054\000\055\000\055\000\055\000\055\000\055\000\
|
||||
\055\000\055\000\055\000\055\000\055\000\255\255\052\000\056\000\
|
||||
\056\000\056\000\056\000\056\000\056\000\056\000\056\000\056\000\
|
||||
\056\000\057\000\057\000\057\000\057\000\057\000\057\000\057\000\
|
||||
\057\000\057\000\057\000\255\255\255\255\255\255\255\255\255\255\
|
||||
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
|
||||
\000\000\022\000\058\000\058\000\058\000\058\000\058\000\058\000\
|
||||
\058\000\058\000\058\000\058\000\058\000\058\000\058\000\058\000\
|
||||
\058\000\058\000\058\000\058\000\058\000\058\000\058\000\058\000\
|
||||
\058\000\058\000\058\000\058\000\058\000\058\000\058\000\058\000\
|
||||
\058\000\058\000\255\255\255\255\058\000\061\000\061\000\061\000\
|
||||
\061\000\061\000\061\000\061\000\061\000\061\000\061\000\061\000\
|
||||
\061\000\061\000\061\000\061\000\061\000\061\000\061\000\061\000\
|
||||
\061\000\061\000\061\000\061\000\061\000\061\000\061\000\061\000\
|
||||
\061\000\061\000\061\000\061\000\061\000\064\000\255\255\061\000\
|
||||
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
|
||||
\255\255\255\255\064\000\255\255\255\255\255\255\255\255\255\255\
|
||||
\255\255\077\000\255\255\255\255\255\255\255\255\058\000\255\255\
|
||||
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
|
||||
\066\000\066\000\066\000\066\000\066\000\066\000\066\000\066\000\
|
||||
\066\000\066\000\255\255\255\255\255\255\255\255\255\255\255\255\
|
||||
\255\255\066\000\066\000\066\000\066\000\066\000\066\000\064\000\
|
||||
\255\255\061\000\255\255\255\255\255\255\064\000\255\255\255\255\
|
||||
\255\255\064\000\255\255\255\255\255\255\255\255\255\255\255\255\
|
||||
\255\255\064\000\255\255\255\255\255\255\064\000\255\255\064\000\
|
||||
\064\000\066\000\066\000\066\000\066\000\066\000\066\000\073\000\
|
||||
\073\000\073\000\073\000\073\000\073\000\073\000\073\000\073\000\
|
||||
\073\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
|
||||
\073\000\073\000\073\000\073\000\073\000\073\000\074\000\074\000\
|
||||
\074\000\074\000\074\000\074\000\074\000\074\000\074\000\074\000\
|
||||
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\074\000\
|
||||
\074\000\074\000\074\000\074\000\074\000\255\255\255\255\255\255\
|
||||
\073\000\073\000\073\000\073\000\073\000\073\000\255\255\255\255\
|
||||
\255\255\255\255\255\255\255\255\075\000\075\000\075\000\075\000\
|
||||
\075\000\075\000\075\000\075\000\075\000\075\000\255\255\074\000\
|
||||
\074\000\074\000\074\000\074\000\074\000\075\000\075\000\075\000\
|
||||
\075\000\075\000\075\000\255\255\255\255\255\255\255\255\255\255\
|
||||
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
|
||||
\255\255\255\255\058\000\255\255\255\255\255\255\255\255\255\255\
|
||||
\255\255\255\255\255\255\255\255\255\255\075\000\075\000\075\000\
|
||||
\075\000\075\000\075\000\255\255\255\255\255\255\255\255\255\255\
|
||||
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
|
||||
\255\255\255\255\255\255\064\000\255\255\061\000\255\255\255\255\
|
||||
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
|
||||
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
|
||||
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
|
||||
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
|
||||
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
|
||||
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
|
||||
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
|
||||
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
|
||||
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
|
||||
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
|
||||
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
|
||||
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
|
||||
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
|
||||
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
|
||||
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
|
||||
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
|
||||
\255\255\255\255\255\255\255\255\255\255";
|
||||
Lexing.lex_base_code =
|
||||
"";
|
||||
Lexing.lex_backtrk_code =
|
||||
"";
|
||||
Lexing.lex_default_code =
|
||||
"";
|
||||
Lexing.lex_trans_code =
|
||||
"";
|
||||
Lexing.lex_check_code =
|
||||
"";
|
||||
Lexing.lex_code =
|
||||
"";
|
||||
}
|
||||
|
||||
let rec token p lexbuf =
|
||||
__ocaml_lex_token_rec p lexbuf 0
|
||||
and __ocaml_lex_token_rec p lexbuf __ocaml_lex_state =
|
||||
match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
|
||||
| 0 ->
|
||||
# 79 "json_lexer.mll"
|
||||
( if p.allow_comments then
|
||||
token p lexbuf
|
||||
else lexer_error "Comments are not allowed: " lexbuf )
|
||||
# 298 "json_lexer.ml"
|
||||
|
||||
| 1 ->
|
||||
# 82 "json_lexer.mll"
|
||||
( if p.allow_comments then
|
||||
(comment lexbuf;
|
||||
token p lexbuf)
|
||||
else lexer_error "Comments are not allowed: " lexbuf )
|
||||
# 306 "json_lexer.ml"
|
||||
|
||||
| 2 ->
|
||||
# 86 "json_lexer.mll"
|
||||
( OBJSTART )
|
||||
# 311 "json_lexer.ml"
|
||||
|
||||
| 3 ->
|
||||
# 87 "json_lexer.mll"
|
||||
( OBJEND )
|
||||
# 316 "json_lexer.ml"
|
||||
|
||||
| 4 ->
|
||||
# 88 "json_lexer.mll"
|
||||
( ARSTART )
|
||||
# 321 "json_lexer.ml"
|
||||
|
||||
| 5 ->
|
||||
# 89 "json_lexer.mll"
|
||||
( AREND )
|
||||
# 326 "json_lexer.ml"
|
||||
|
||||
| 6 ->
|
||||
# 90 "json_lexer.mll"
|
||||
( COMMA )
|
||||
# 331 "json_lexer.ml"
|
||||
|
||||
| 7 ->
|
||||
# 91 "json_lexer.mll"
|
||||
( COLON )
|
||||
# 336 "json_lexer.ml"
|
||||
|
||||
| 8 ->
|
||||
# 92 "json_lexer.mll"
|
||||
( BOOL true )
|
||||
# 341 "json_lexer.ml"
|
||||
|
||||
| 9 ->
|
||||
# 93 "json_lexer.mll"
|
||||
( BOOL false )
|
||||
# 346 "json_lexer.ml"
|
||||
|
||||
| 10 ->
|
||||
# 94 "json_lexer.mll"
|
||||
( NULL )
|
||||
# 351 "json_lexer.ml"
|
||||
|
||||
| 11 ->
|
||||
# 95 "json_lexer.mll"
|
||||
( if p.allow_nan then FLOAT nan
|
||||
else lexer_error "NaN values are not allowed: " lexbuf )
|
||||
# 357 "json_lexer.ml"
|
||||
|
||||
| 12 ->
|
||||
# 97 "json_lexer.mll"
|
||||
( if p.allow_nan then FLOAT infinity
|
||||
else lexer_error "Infinite values are not allowed: " lexbuf )
|
||||
# 363 "json_lexer.ml"
|
||||
|
||||
| 13 ->
|
||||
# 99 "json_lexer.mll"
|
||||
( if p.allow_nan then FLOAT neg_infinity
|
||||
else lexer_error "Infinite values are not allowed: " lexbuf )
|
||||
# 369 "json_lexer.ml"
|
||||
|
||||
| 14 ->
|
||||
# 101 "json_lexer.mll"
|
||||
( STRING (string [] lexbuf) )
|
||||
# 374 "json_lexer.ml"
|
||||
|
||||
| 15 ->
|
||||
# 102 "json_lexer.mll"
|
||||
( make_int p.big_int_mode (lexeme lexbuf) )
|
||||
# 379 "json_lexer.ml"
|
||||
|
||||
| 16 ->
|
||||
# 103 "json_lexer.mll"
|
||||
( FLOAT (float_of_string (lexeme lexbuf)) )
|
||||
# 384 "json_lexer.ml"
|
||||
|
||||
| 17 ->
|
||||
# 104 "json_lexer.mll"
|
||||
( newline lexbuf; token p lexbuf )
|
||||
# 389 "json_lexer.ml"
|
||||
|
||||
| 18 ->
|
||||
# 105 "json_lexer.mll"
|
||||
( token p lexbuf )
|
||||
# 394 "json_lexer.ml"
|
||||
|
||||
| 19 ->
|
||||
# 106 "json_lexer.mll"
|
||||
( EOF )
|
||||
# 399 "json_lexer.ml"
|
||||
|
||||
| 20 ->
|
||||
# 107 "json_lexer.mll"
|
||||
( lexer_error "Invalid token" lexbuf )
|
||||
# 404 "json_lexer.ml"
|
||||
|
||||
| __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_token_rec p lexbuf __ocaml_lex_state
|
||||
|
||||
and string l lexbuf =
|
||||
__ocaml_lex_string_rec l lexbuf 58
|
||||
and __ocaml_lex_string_rec l lexbuf __ocaml_lex_state =
|
||||
match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
|
||||
| 0 ->
|
||||
# 111 "json_lexer.mll"
|
||||
( String.concat "" (List.rev l) )
|
||||
# 415 "json_lexer.ml"
|
||||
|
||||
| 1 ->
|
||||
# 112 "json_lexer.mll"
|
||||
( let s = escaped_char lexbuf in
|
||||
string (s :: l) lexbuf )
|
||||
# 421 "json_lexer.ml"
|
||||
|
||||
| 2 ->
|
||||
# 114 "json_lexer.mll"
|
||||
( let s = lexeme lexbuf in
|
||||
string (s :: l) lexbuf )
|
||||
# 427 "json_lexer.ml"
|
||||
|
||||
| 3 ->
|
||||
let
|
||||
# 116 "json_lexer.mll"
|
||||
c
|
||||
# 433 "json_lexer.ml"
|
||||
= Lexing.sub_lexeme_char lexbuf lexbuf.Lexing.lex_start_pos in
|
||||
# 116 "json_lexer.mll"
|
||||
( custom_error
|
||||
(sprintf "Unescaped control character \\u%04X or \
|
||||
unterminated string" (int_of_char c))
|
||||
lexbuf )
|
||||
# 440 "json_lexer.ml"
|
||||
|
||||
| 4 ->
|
||||
# 120 "json_lexer.mll"
|
||||
( custom_error "Unterminated string" lexbuf )
|
||||
# 445 "json_lexer.ml"
|
||||
|
||||
| __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_string_rec l lexbuf __ocaml_lex_state
|
||||
|
||||
and escaped_char lexbuf =
|
||||
__ocaml_lex_escaped_char_rec lexbuf 64
|
||||
and __ocaml_lex_escaped_char_rec lexbuf __ocaml_lex_state =
|
||||
match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
|
||||
| 0 ->
|
||||
# 126 "json_lexer.mll"
|
||||
( lexeme lexbuf )
|
||||
# 456 "json_lexer.ml"
|
||||
|
||||
| 1 ->
|
||||
# 127 "json_lexer.mll"
|
||||
( "\b" )
|
||||
# 461 "json_lexer.ml"
|
||||
|
||||
| 2 ->
|
||||
# 128 "json_lexer.mll"
|
||||
( "\012" )
|
||||
# 466 "json_lexer.ml"
|
||||
|
||||
| 3 ->
|
||||
# 129 "json_lexer.mll"
|
||||
( "\n" )
|
||||
# 471 "json_lexer.ml"
|
||||
|
||||
| 4 ->
|
||||
# 130 "json_lexer.mll"
|
||||
( "\r" )
|
||||
# 476 "json_lexer.ml"
|
||||
|
||||
| 5 ->
|
||||
# 131 "json_lexer.mll"
|
||||
( "\t" )
|
||||
# 481 "json_lexer.ml"
|
||||
|
||||
| 6 ->
|
||||
let
|
||||
# 132 "json_lexer.mll"
|
||||
x
|
||||
# 487 "json_lexer.ml"
|
||||
= Lexing.sub_lexeme lexbuf (lexbuf.Lexing.lex_start_pos + 1) (lexbuf.Lexing.lex_start_pos + 5) in
|
||||
# 132 "json_lexer.mll"
|
||||
( let i = 0x1000 * hexval x.[0] +
|
||||
0x100 * hexval x.[1] +
|
||||
0x10 * hexval x.[2] +
|
||||
hexval x.[3] in
|
||||
utf8_of_point i )
|
||||
# 495 "json_lexer.ml"
|
||||
|
||||
| 7 ->
|
||||
# 137 "json_lexer.mll"
|
||||
( lexer_error "Invalid escape sequence" lexbuf )
|
||||
# 500 "json_lexer.ml"
|
||||
|
||||
| __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_escaped_char_rec lexbuf __ocaml_lex_state
|
||||
|
||||
and comment lexbuf =
|
||||
__ocaml_lex_comment_rec lexbuf 77
|
||||
and __ocaml_lex_comment_rec lexbuf __ocaml_lex_state =
|
||||
match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
|
||||
| 0 ->
|
||||
# 140 "json_lexer.mll"
|
||||
( () )
|
||||
# 511 "json_lexer.ml"
|
||||
|
||||
| 1 ->
|
||||
# 141 "json_lexer.mll"
|
||||
( lexer_error "Unterminated comment" lexbuf )
|
||||
# 516 "json_lexer.ml"
|
||||
|
||||
| 2 ->
|
||||
# 142 "json_lexer.mll"
|
||||
( newline lexbuf; comment lexbuf )
|
||||
# 521 "json_lexer.ml"
|
||||
|
||||
| 3 ->
|
||||
# 143 "json_lexer.mll"
|
||||
( comment lexbuf )
|
||||
# 526 "json_lexer.ml"
|
||||
|
||||
| __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_comment_rec lexbuf __ocaml_lex_state
|
||||
|
||||
;;
|
||||
|
||||
# 145 "json_lexer.mll"
|
||||
|
||||
let make_param
|
||||
?(allow_comments = false)
|
||||
?(allow_nan = false)
|
||||
?(big_int_mode = false)
|
||||
() =
|
||||
{ allow_comments = allow_comments;
|
||||
big_int_mode = big_int_mode;
|
||||
allow_nan = allow_nan }
|
||||
|
||||
# 543 "json_lexer.ml"
|
||||
Loading…
Add table
Add a link
Reference in a new issue