# 17 "ocaml-parser/lexer.mll" open Misc open Parser type error = | Illegal_character of char | Illegal_escape of string | Unterminated_comment | Unterminated_string | Unterminated_string_in_comment | Keyword_as_label of string ;; exception Error of error * int * int (* The table of keywords *) let keyword_table = create_hashtable 149 [ "and", AND; "as", AS; "assert", ASSERT; "begin", BEGIN; "class", CLASS; "constraint", CONSTRAINT; "do", DO; "done", DONE; "downto", DOWNTO; "else", ELSE; "end", END; "exception", EXCEPTION; "external", EXTERNAL; "false", FALSE; "for", FOR; "fun", FUN; "function", FUNCTION; "functor", FUNCTOR; "if", IF; "in", IN; "include", INCLUDE; "inherit", INHERIT; "initializer", INITIALIZER; "lazy", LAZY; "let", LET; "match", MATCH; "method", METHOD; "module", MODULE; "mutable", MUTABLE; "new", NEW; "object", OBJECT; "of", OF; "open", OPEN; "or", OR; "private", PRIVATE; "rec", REC; "sig", SIG; "struct", STRUCT; "then", THEN; "to", TO; "true", TRUE; "try", TRY; "type", TYPE; "val", VAL; "virtual", VIRTUAL; "when", WHEN; "while", WHILE; "with", WITH; "mod", INFIXOP3("mod"); "land", INFIXOP3("land"); "lor", INFIXOP3("lor"); "lxor", INFIXOP3("lxor"); "lsl", INFIXOP4("lsl"); "lsr", INFIXOP4("lsr"); "asr", INFIXOP4("asr") ] (* To buffer string literals *) let initial_string_buffer = String.create 256 let string_buff = ref initial_string_buffer let string_index = ref 0 let reset_string_buffer () = string_buff := initial_string_buffer; string_index := 0 let store_string_char c = if !string_index >= String.length (!string_buff) then begin let new_buff = String.create (String.length (!string_buff) * 2) in String.blit (!string_buff) 0 new_buff 0 (String.length (!string_buff)); string_buff := new_buff end; String.unsafe_set (!string_buff) (!string_index) c; incr string_index let get_stored_string () = let s = String.sub (!string_buff) 0 (!string_index) in string_buff := initial_string_buffer; s (* To translate escape sequences *) let char_for_backslash = match Sys.os_type with | "Unix" | "Win32" | "Cygwin" -> begin function | 'n' -> '\010' | 'r' -> '\013' | 'b' -> '\008' | 't' -> '\009' | c -> c end | "MacOS" -> begin function | 'n' -> '\013' | 'r' -> '\010' | 'b' -> '\008' | 't' -> '\009' | c -> c end | x -> fatal_error "Lexer: unknown system type" let char_for_decimal_code lexbuf i = let c = 100 * (Char.code(Lexing.lexeme_char lexbuf i) - 48) + 10 * (Char.code(Lexing.lexeme_char lexbuf (i+1)) - 48) + (Char.code(Lexing.lexeme_char lexbuf (i+2)) - 48) in if c < 0 || c > 255 then raise (Error(Illegal_escape (Lexing.lexeme lexbuf), Lexing.lexeme_start lexbuf, Lexing.lexeme_end lexbuf)) else Char.chr c (* To store the position of the beginning of a string and comment *) let string_start_pos = ref 0;; let comment_start_pos = ref [];; let in_comment () = !comment_start_pos <> [];; (* Error report *) open Format let report_error ppf = function | Illegal_character c -> fprintf ppf "Illegal character (%s)" (Char.escaped c) | Illegal_escape s -> fprintf ppf "Illegal escape (%s)" s | Unterminated_comment -> fprintf ppf "Comment not terminated" | Unterminated_string -> fprintf ppf "String literal not terminated" | Unterminated_string_in_comment -> fprintf ppf "This comment contains an unterminated string literal" | Keyword_as_label kwd -> fprintf ppf "`%s' is a keyword, it cannot be used as label name" kwd ;; # 160 "ocaml-parser/lexer.ml" let __ocaml_lex_tables = { Lexing.lex_base = "\000\000\190\255\191\255\224\000\003\001\038\001\073\001\108\001\ \204\255\143\001\180\001\032\000\212\255\067\000\217\001\252\001\ \069\000\071\000\084\000\031\002\228\255\230\255\233\255\066\002\ \122\000\101\002\092\000\123\000\245\255\089\000\120\002\193\002\ \145\003\112\004\204\004\156\005\151\000\123\006\153\006\252\255\ \105\007\250\255\017\003\224\000\099\000\003\001\220\003\064\005\ \130\002\101\000\027\003\037\003\147\004\097\000\244\255\112\000\ \056\003\113\000\243\255\241\255\066\003\114\000\242\255\114\000\ \239\255\072\008\238\255\020\006\019\004\001\000\237\255\007\000\ \107\008\142\008\177\008\212\008\225\255\221\255\222\255\223\255\ \219\255\247\008\213\255\214\255\210\255\207\255\026\009\203\255\ \205\255\061\009\096\009\147\000\247\255\248\255\208\000\253\255\ \115\000\115\000\255\255\254\255\114\009\120\000\251\255\243\003\ \126\000\112\004\127\000\249\255\224\000\127\009\221\004\063\001\ \003\001\231\004\132\000\135\000\008\000\009\000\136\000\174\000\ \145\000\004\000"; Lexing.lex_backtrk = "\255\255\255\255\255\255\063\000\060\000\059\000\054\000\057\000\ \255\255\049\000\046\000\044\000\255\255\040\000\039\000\037\000\ \035\000\031\000\029\000\055\000\255\255\255\255\255\255\020\000\ \019\000\026\000\024\000\023\000\255\255\008\000\008\000\007\000\ \006\000\004\000\002\000\001\000\000\000\058\000\255\255\255\255\ \255\255\255\255\255\255\009\000\255\255\255\255\255\255\008\000\ \008\000\008\000\009\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\015\000\ \255\255\062\000\255\255\255\255\255\255\018\000\255\255\255\255\ \021\000\061\000\056\000\028\000\255\255\255\255\255\255\255\255\ \255\255\038\000\255\255\255\255\255\255\255\255\047\000\255\255\ \255\255\057\000\053\000\255\255\255\255\255\255\008\000\255\255\ \008\000\008\000\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\005\000\255\255\001\000\ \001\000\255\255\000\000\255\255\255\255\000\000\255\255\255\255\ \255\255\255\255"; Lexing.lex_default = "\001\000\000\000\000\000\255\255\255\255\255\255\255\255\255\255\ \000\000\255\255\255\255\255\255\000\000\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\000\000\000\000\000\000\255\255\ \255\255\255\255\255\255\053\000\000\000\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\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\055\000\255\255\000\000\255\255\ \255\255\255\255\000\000\000\000\255\255\255\255\000\000\255\255\ \000\000\255\255\000\000\071\000\255\255\255\255\000\000\071\000\ \255\255\255\255\255\255\255\255\000\000\000\000\000\000\000\000\ \000\000\255\255\000\000\000\000\000\000\000\000\255\255\000\000\ \000\000\255\255\255\255\092\000\000\000\000\000\101\000\000\000\ \255\255\255\255\000\000\000\000\255\255\255\255\000\000\255\255\ \255\255\255\255\255\255\000\000\041\000\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\116\000\119\000\255\255\119\000\ \255\255\255\255"; Lexing.lex_trans = "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\036\000\036\000\070\000\036\000\036\000\098\000\000\000\ \000\000\070\000\117\000\118\000\069\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \036\000\007\000\028\000\024\000\005\000\003\000\023\000\027\000\ \026\000\021\000\025\000\006\000\020\000\019\000\018\000\003\000\ \030\000\029\000\029\000\029\000\029\000\029\000\029\000\029\000\ \029\000\029\000\017\000\016\000\015\000\014\000\009\000\033\000\ \004\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\ \031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\ \031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\ \031\000\031\000\031\000\013\000\084\000\012\000\004\000\035\000\ \022\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ \032\000\032\000\032\000\011\000\010\000\008\000\034\000\082\000\ \080\000\079\000\076\000\068\000\078\000\077\000\063\000\043\000\ \054\000\029\000\029\000\029\000\029\000\029\000\029\000\029\000\ \029\000\029\000\029\000\049\000\049\000\049\000\049\000\059\000\ \058\000\062\000\068\000\064\000\099\000\098\000\042\000\102\000\ \036\000\036\000\255\255\036\000\036\000\041\000\107\000\115\000\ \116\000\120\000\067\000\067\000\067\000\067\000\067\000\067\000\ \067\000\067\000\067\000\067\000\121\000\095\000\000\000\036\000\ \118\000\000\000\094\000\097\000\000\000\096\000\042\000\083\000\ \031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\ \031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\ \031\000\031\000\031\000\031\000\031\000\031\000\031\000\052\000\ \031\000\031\000\031\000\031\000\031\000\031\000\031\000\032\000\ \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ \032\000\032\000\032\000\032\000\032\000\032\000\032\000\039\000\ \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ \002\000\003\000\098\000\000\000\003\000\003\000\003\000\255\255\ \255\255\255\255\003\000\003\000\112\000\003\000\003\000\003\000\ \043\000\043\000\043\000\043\000\043\000\043\000\043\000\043\000\ \043\000\043\000\003\000\000\000\003\000\003\000\003\000\003\000\ \003\000\000\000\000\000\112\000\004\000\042\000\000\000\004\000\ \004\000\004\000\000\000\000\000\100\000\004\000\004\000\000\000\ \004\000\004\000\004\000\048\000\048\000\048\000\048\000\048\000\ \048\000\048\000\048\000\000\000\109\000\004\000\003\000\004\000\ \004\000\004\000\004\000\004\000\000\000\042\000\000\000\005\000\ \112\000\112\000\005\000\005\000\005\000\000\000\000\000\000\000\ \005\000\005\000\000\000\005\000\005\000\005\000\000\000\000\000\ \000\000\000\000\000\000\000\000\003\000\000\000\003\000\112\000\ \005\000\004\000\005\000\005\000\005\000\005\000\005\000\000\000\ \000\000\000\000\073\000\000\000\000\000\073\000\073\000\073\000\ \000\000\000\000\000\000\073\000\073\000\000\000\073\000\073\000\ \073\000\000\000\000\000\255\255\000\000\000\000\000\000\004\000\ \000\000\004\000\000\000\073\000\005\000\073\000\073\000\073\000\ \073\000\073\000\000\000\000\000\000\000\089\000\000\000\000\000\ \089\000\089\000\089\000\093\000\000\000\000\000\089\000\089\000\ \000\000\089\000\089\000\089\000\000\000\000\000\000\000\000\000\ \000\000\000\000\005\000\000\000\005\000\000\000\089\000\073\000\ \089\000\090\000\089\000\089\000\089\000\000\000\255\255\000\000\ \005\000\000\000\000\000\005\000\005\000\005\000\000\000\000\000\ \000\000\005\000\005\000\000\000\005\000\005\000\005\000\000\000\ \000\000\000\000\000\000\000\000\000\000\073\000\000\000\073\000\ \000\000\005\000\089\000\005\000\005\000\005\000\005\000\005\000\ \255\255\000\000\000\000\000\000\000\000\005\000\000\000\000\000\ \005\000\005\000\005\000\000\000\000\000\000\000\005\000\005\000\ \102\000\005\000\005\000\005\000\000\000\000\000\000\000\000\000\ \089\000\000\000\089\000\000\000\088\000\005\000\005\000\000\000\ \005\000\005\000\005\000\005\000\005\000\000\000\000\000\000\000\ \000\000\000\000\005\000\000\000\000\000\005\000\005\000\005\000\ \000\000\000\000\000\000\005\000\005\000\000\000\005\000\005\000\ \005\000\000\000\000\000\005\000\087\000\005\000\000\000\000\000\ \000\000\085\000\005\000\005\000\000\000\005\000\005\000\005\000\ \005\000\005\000\000\000\000\000\000\000\005\000\000\000\000\000\ \005\000\005\000\005\000\000\000\000\000\000\000\005\000\005\000\ \000\000\081\000\005\000\005\000\000\000\000\000\000\000\000\000\ \086\000\000\000\005\000\000\000\000\000\000\000\005\000\005\000\ \005\000\005\000\005\000\005\000\005\000\000\000\000\000\000\000\ \073\000\000\000\000\000\073\000\073\000\073\000\000\000\000\000\ \000\000\073\000\073\000\000\000\073\000\074\000\073\000\000\000\ \000\000\000\000\000\000\000\000\000\000\005\000\000\000\005\000\ \000\000\073\000\005\000\073\000\073\000\075\000\073\000\073\000\ \000\000\000\000\000\000\005\000\000\000\000\000\005\000\005\000\ \072\000\000\000\000\000\000\000\005\000\005\000\000\000\005\000\ \005\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\ \005\000\000\000\005\000\000\000\005\000\073\000\005\000\005\000\ \005\000\005\000\005\000\000\000\000\000\000\000\003\000\000\000\ \000\000\003\000\003\000\003\000\000\000\000\000\066\000\065\000\ \003\000\000\000\003\000\003\000\003\000\000\000\000\000\000\000\ \000\000\000\000\000\000\073\000\000\000\073\000\000\000\003\000\ \005\000\003\000\003\000\003\000\003\000\003\000\043\000\000\000\ \029\000\029\000\029\000\029\000\029\000\029\000\029\000\029\000\ \029\000\029\000\048\000\048\000\048\000\048\000\048\000\048\000\ \048\000\048\000\044\000\000\000\000\000\042\000\005\000\000\000\ \005\000\000\000\000\000\003\000\000\000\000\000\000\000\045\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \046\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\044\000\000\000\000\000\042\000\000\000\000\000\ \000\000\003\000\000\000\003\000\000\000\000\000\000\000\045\000\ \031\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \046\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\ \031\000\031\000\031\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\031\000\031\000\031\000\031\000\031\000\031\000\ \031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\ \031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\ \031\000\031\000\031\000\031\000\000\000\000\000\000\000\000\000\ \031\000\000\000\031\000\031\000\031\000\031\000\031\000\031\000\ \031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\ \031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\ \031\000\031\000\031\000\031\000\051\000\000\000\051\000\000\000\ \000\000\050\000\050\000\050\000\050\000\050\000\050\000\050\000\ \050\000\050\000\050\000\050\000\050\000\050\000\050\000\050\000\ \050\000\050\000\050\000\050\000\050\000\050\000\050\000\050\000\ \050\000\050\000\050\000\050\000\050\000\050\000\050\000\059\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\061\000\061\000\061\000\061\000\061\000\061\000\ \061\000\061\000\061\000\061\000\000\000\000\000\000\000\000\000\ \000\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\ \031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\ \031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\ \000\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\ \031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\ \031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\ \031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\ \032\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\ \031\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ \032\000\032\000\032\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\032\000\032\000\032\000\032\000\032\000\032\000\ \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ \032\000\032\000\032\000\032\000\000\000\000\000\000\000\000\000\ \032\000\000\000\032\000\032\000\032\000\032\000\032\000\032\000\ \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ \032\000\032\000\032\000\032\000\047\000\047\000\047\000\047\000\ \047\000\047\000\047\000\047\000\047\000\047\000\000\000\000\000\ \000\000\000\000\000\000\000\000\068\000\047\000\047\000\047\000\ \047\000\047\000\047\000\105\000\105\000\105\000\105\000\105\000\ \105\000\105\000\105\000\105\000\105\000\000\000\000\000\000\000\ \000\000\000\000\000\000\068\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\047\000\047\000\047\000\ \047\000\047\000\047\000\067\000\067\000\067\000\067\000\067\000\ \067\000\067\000\067\000\067\000\067\000\000\000\000\000\000\000\ \000\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ \000\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ \000\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ \032\000\037\000\000\000\000\000\037\000\037\000\037\000\000\000\ \000\000\000\000\037\000\037\000\000\000\037\000\037\000\037\000\ \106\000\106\000\106\000\106\000\106\000\106\000\106\000\106\000\ \106\000\106\000\037\000\000\000\037\000\037\000\037\000\037\000\ \037\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\057\000\000\000\000\000\000\000\000\000\000\000\ \000\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\000\000\037\000\040\000\ \000\000\040\000\040\000\040\000\040\000\040\000\040\000\040\000\ \040\000\040\000\040\000\040\000\040\000\040\000\040\000\040\000\ \040\000\040\000\040\000\040\000\040\000\040\000\040\000\040\000\ \040\000\040\000\040\000\000\000\037\000\037\000\037\000\057\000\ \037\000\037\000\037\000\000\000\000\000\057\000\037\000\037\000\ \000\000\037\000\037\000\037\000\000\000\000\000\000\000\000\000\ \000\000\057\000\000\000\000\000\000\000\057\000\037\000\057\000\ \037\000\037\000\037\000\037\000\037\000\113\000\113\000\113\000\ \113\000\113\000\113\000\113\000\113\000\113\000\113\000\039\000\ \039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\ \039\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\037\000\038\000\000\000\038\000\038\000\038\000\ \038\000\038\000\038\000\038\000\038\000\038\000\038\000\038\000\ \038\000\038\000\038\000\038\000\038\000\038\000\038\000\038\000\ \038\000\038\000\038\000\038\000\038\000\038\000\038\000\000\000\ \037\000\000\000\037\000\000\000\000\000\000\000\000\000\040\000\ \040\000\040\000\040\000\040\000\040\000\040\000\040\000\040\000\ \040\000\040\000\040\000\040\000\040\000\040\000\040\000\040\000\ \040\000\040\000\040\000\040\000\040\000\040\000\040\000\000\000\ \040\000\040\000\040\000\040\000\040\000\040\000\040\000\040\000\ \047\000\047\000\047\000\047\000\047\000\047\000\047\000\047\000\ \047\000\047\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\047\000\047\000\047\000\047\000\047\000\047\000\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\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\047\000\047\000\047\000\047\000\047\000\047\000\000\000\ \000\000\000\000\000\000\038\000\038\000\038\000\038\000\038\000\ \038\000\038\000\038\000\038\000\038\000\038\000\038\000\038\000\ \038\000\038\000\038\000\038\000\038\000\038\000\038\000\038\000\ \038\000\038\000\038\000\032\000\038\000\038\000\038\000\038\000\ \038\000\038\000\038\000\038\000\032\000\032\000\032\000\032\000\ \032\000\032\000\032\000\032\000\032\000\032\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\032\000\032\000\032\000\ \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ \032\000\032\000\032\000\032\000\032\000\032\000\032\000\000\000\ \000\000\000\000\000\000\032\000\000\000\032\000\032\000\032\000\ \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ \032\000\032\000\032\000\032\000\032\000\032\000\032\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\070\000\000\000\ \000\000\069\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\067\000\067\000\067\000\067\000\ \067\000\067\000\067\000\067\000\067\000\067\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\032\000\032\000\032\000\032\000\ \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ \032\000\032\000\032\000\000\000\032\000\032\000\032\000\032\000\ \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ \032\000\032\000\032\000\000\000\032\000\032\000\032\000\032\000\ \032\000\032\000\032\000\032\000\037\000\000\000\000\000\037\000\ \037\000\037\000\000\000\000\000\000\000\037\000\037\000\000\000\ \037\000\037\000\037\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\037\000\000\000\037\000\ \037\000\037\000\037\000\037\000\000\000\000\000\000\000\000\000\ \038\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\038\000\038\000\038\000\038\000\038\000\038\000\038\000\ \038\000\038\000\038\000\039\000\000\000\000\000\000\000\000\000\ \000\000\037\000\038\000\038\000\038\000\038\000\038\000\038\000\ \038\000\038\000\038\000\038\000\038\000\038\000\038\000\038\000\ \038\000\038\000\038\000\038\000\038\000\038\000\038\000\038\000\ \038\000\038\000\038\000\038\000\000\000\000\000\000\000\037\000\ \038\000\037\000\038\000\038\000\038\000\038\000\038\000\038\000\ \038\000\038\000\038\000\038\000\038\000\038\000\038\000\038\000\ \038\000\038\000\038\000\038\000\038\000\038\000\038\000\038\000\ \038\000\038\000\038\000\038\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\038\000\038\000\038\000\038\000\038\000\038\000\038\000\ \038\000\038\000\038\000\038\000\038\000\038\000\038\000\038\000\ \038\000\038\000\038\000\038\000\038\000\038\000\038\000\038\000\ \000\000\038\000\038\000\038\000\038\000\038\000\038\000\038\000\ \038\000\038\000\038\000\038\000\038\000\038\000\038\000\038\000\ \038\000\038\000\038\000\038\000\038\000\038\000\038\000\038\000\ \038\000\038\000\038\000\038\000\038\000\038\000\038\000\038\000\ \040\000\038\000\038\000\038\000\038\000\038\000\038\000\038\000\ \038\000\040\000\040\000\040\000\040\000\040\000\040\000\040\000\ \040\000\040\000\040\000\041\000\000\000\000\000\000\000\000\000\ \000\000\000\000\040\000\040\000\040\000\040\000\040\000\040\000\ \040\000\040\000\040\000\040\000\040\000\040\000\040\000\040\000\ \040\000\040\000\040\000\040\000\040\000\040\000\040\000\040\000\ \040\000\040\000\040\000\040\000\000\000\000\000\000\000\000\000\ \040\000\000\000\040\000\040\000\040\000\040\000\040\000\040\000\ \040\000\040\000\040\000\040\000\040\000\040\000\040\000\040\000\ \040\000\040\000\040\000\040\000\040\000\040\000\040\000\040\000\ \040\000\040\000\040\000\040\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\040\000\040\000\040\000\040\000\040\000\040\000\040\000\ \040\000\040\000\040\000\040\000\040\000\040\000\040\000\040\000\ \040\000\040\000\040\000\040\000\040\000\040\000\040\000\040\000\ \000\000\040\000\040\000\040\000\040\000\040\000\040\000\040\000\ \040\000\040\000\040\000\040\000\040\000\040\000\040\000\040\000\ \040\000\040\000\040\000\040\000\040\000\040\000\040\000\040\000\ \040\000\040\000\040\000\040\000\040\000\040\000\040\000\040\000\ \000\000\040\000\040\000\040\000\040\000\040\000\040\000\040\000\ \040\000\065\000\000\000\000\000\065\000\065\000\065\000\000\000\ \000\000\000\000\065\000\065\000\000\000\065\000\065\000\065\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\065\000\000\000\065\000\065\000\065\000\065\000\ \065\000\000\000\000\000\000\000\005\000\000\000\000\000\005\000\ \005\000\005\000\000\000\000\000\000\000\005\000\005\000\000\000\ \005\000\005\000\005\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\005\000\065\000\005\000\ \005\000\005\000\005\000\005\000\000\000\000\000\000\000\073\000\ \000\000\000\000\073\000\073\000\073\000\000\000\000\000\000\000\ \073\000\073\000\000\000\073\000\073\000\073\000\000\000\000\000\ \000\000\000\000\000\000\000\000\065\000\000\000\065\000\000\000\ \073\000\005\000\073\000\073\000\073\000\073\000\073\000\000\000\ \000\000\000\000\073\000\000\000\000\000\073\000\073\000\073\000\ \000\000\000\000\000\000\073\000\073\000\000\000\073\000\073\000\ \073\000\000\000\000\000\000\000\000\000\000\000\000\000\005\000\ \000\000\005\000\000\000\073\000\073\000\073\000\073\000\073\000\ \073\000\073\000\000\000\000\000\000\000\073\000\000\000\000\000\ \073\000\073\000\073\000\000\000\000\000\000\000\073\000\073\000\ \000\000\073\000\073\000\073\000\000\000\000\000\000\000\000\000\ \000\000\000\000\073\000\000\000\073\000\000\000\073\000\073\000\ \073\000\073\000\073\000\073\000\073\000\000\000\000\000\000\000\ \005\000\000\000\000\000\005\000\005\000\005\000\000\000\000\000\ \000\000\005\000\005\000\000\000\005\000\005\000\005\000\000\000\ \000\000\000\000\000\000\000\000\000\000\073\000\000\000\073\000\ \000\000\005\000\073\000\005\000\005\000\005\000\005\000\005\000\ \000\000\000\000\000\000\005\000\000\000\000\000\005\000\005\000\ \005\000\000\000\000\000\000\000\005\000\005\000\000\000\005\000\ \005\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\ \073\000\000\000\073\000\000\000\005\000\005\000\005\000\005\000\ \005\000\005\000\005\000\000\000\000\000\000\000\089\000\000\000\ \000\000\089\000\089\000\089\000\000\000\000\000\000\000\089\000\ \089\000\000\000\089\000\089\000\089\000\000\000\000\000\000\000\ \000\000\000\000\000\000\005\000\000\000\005\000\000\000\089\000\ \005\000\089\000\089\000\089\000\089\000\089\000\000\000\000\000\ \000\000\089\000\000\000\000\000\089\000\089\000\089\000\000\000\ \000\000\112\000\089\000\089\000\111\000\089\000\089\000\089\000\ \000\000\000\000\000\000\000\000\000\000\000\000\005\000\000\000\ \005\000\104\000\089\000\089\000\089\000\089\000\089\000\089\000\ \089\000\095\000\103\000\103\000\103\000\103\000\103\000\103\000\ \103\000\103\000\103\000\103\000\000\000\000\000\000\000\110\000\ \110\000\110\000\110\000\110\000\110\000\110\000\110\000\110\000\ \110\000\089\000\000\000\089\000\000\000\000\000\089\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\104\000\000\000\ \000\000\000\000\000\000\000\000\104\000\000\000\000\000\000\000\ \000\000\000\000\000\000\095\000\089\000\000\000\089\000\000\000\ \104\000\095\000\000\000\000\000\104\000\000\000\104\000\000\000\ \000\000\000\000\000\000\000\000\000\000\095\000\000\000\000\000\ \000\000\095\000\000\000\095\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\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\069\000\000\000\000\000\121\000\255\255\ \255\255\071\000\116\000\117\000\071\000\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\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\011\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\013\000\ \016\000\017\000\018\000\024\000\017\000\017\000\026\000\029\000\ \053\000\029\000\029\000\029\000\029\000\029\000\029\000\029\000\ \029\000\029\000\029\000\044\000\044\000\049\000\049\000\055\000\ \057\000\061\000\024\000\063\000\096\000\097\000\029\000\101\000\ \036\000\036\000\027\000\036\000\036\000\104\000\106\000\114\000\ \115\000\118\000\024\000\024\000\024\000\024\000\024\000\024\000\ \024\000\024\000\024\000\024\000\120\000\091\000\255\255\036\000\ \119\000\255\255\091\000\091\000\255\255\091\000\029\000\013\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\027\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\094\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\003\000\108\000\255\255\003\000\003\000\003\000\071\000\ \116\000\117\000\003\000\003\000\112\000\003\000\003\000\003\000\ \043\000\043\000\043\000\043\000\043\000\043\000\043\000\043\000\ \043\000\043\000\003\000\255\255\003\000\003\000\003\000\003\000\ \003\000\255\255\255\255\112\000\004\000\043\000\255\255\004\000\ \004\000\004\000\255\255\255\255\094\000\004\000\004\000\255\255\ \004\000\004\000\004\000\045\000\045\000\045\000\045\000\045\000\ \045\000\045\000\045\000\255\255\108\000\004\000\003\000\004\000\ \004\000\004\000\004\000\004\000\255\255\043\000\255\255\005\000\ \111\000\111\000\005\000\005\000\005\000\255\255\255\255\255\255\ \005\000\005\000\255\255\005\000\005\000\005\000\255\255\255\255\ \255\255\255\255\255\255\255\255\003\000\255\255\003\000\111\000\ \005\000\004\000\005\000\005\000\005\000\005\000\005\000\255\255\ \255\255\255\255\006\000\255\255\255\255\006\000\006\000\006\000\ \255\255\255\255\255\255\006\000\006\000\255\255\006\000\006\000\ \006\000\255\255\255\255\027\000\255\255\255\255\255\255\004\000\ \255\255\004\000\255\255\006\000\005\000\006\000\006\000\006\000\ \006\000\006\000\255\255\255\255\255\255\007\000\255\255\255\255\ \007\000\007\000\007\000\091\000\255\255\255\255\007\000\007\000\ \255\255\007\000\007\000\007\000\255\255\255\255\255\255\255\255\ \255\255\255\255\005\000\255\255\005\000\255\255\007\000\006\000\ \007\000\007\000\007\000\007\000\007\000\255\255\119\000\255\255\ \009\000\255\255\255\255\009\000\009\000\009\000\255\255\255\255\ \255\255\009\000\009\000\255\255\009\000\009\000\009\000\255\255\ \255\255\255\255\255\255\255\255\255\255\006\000\255\255\006\000\ \255\255\009\000\007\000\009\000\009\000\009\000\009\000\009\000\ \094\000\255\255\255\255\255\255\255\255\010\000\255\255\255\255\ \010\000\010\000\010\000\255\255\255\255\255\255\010\000\010\000\ \108\000\010\000\010\000\010\000\255\255\255\255\255\255\255\255\ \007\000\255\255\007\000\255\255\009\000\009\000\010\000\255\255\ \010\000\010\000\010\000\010\000\010\000\255\255\255\255\255\255\ \255\255\255\255\014\000\255\255\255\255\014\000\014\000\014\000\ \255\255\255\255\255\255\014\000\014\000\255\255\014\000\014\000\ \014\000\255\255\255\255\009\000\009\000\009\000\255\255\255\255\ \255\255\010\000\010\000\014\000\255\255\014\000\014\000\014\000\ \014\000\014\000\255\255\255\255\255\255\015\000\255\255\255\255\ \015\000\015\000\015\000\255\255\255\255\255\255\015\000\015\000\ \255\255\015\000\015\000\015\000\255\255\255\255\255\255\255\255\ \010\000\255\255\010\000\255\255\255\255\255\255\015\000\014\000\ \015\000\015\000\015\000\015\000\015\000\255\255\255\255\255\255\ \019\000\255\255\255\255\019\000\019\000\019\000\255\255\255\255\ \255\255\019\000\019\000\255\255\019\000\019\000\019\000\255\255\ \255\255\255\255\255\255\255\255\255\255\014\000\255\255\014\000\ \255\255\019\000\015\000\019\000\019\000\019\000\019\000\019\000\ \255\255\255\255\255\255\023\000\255\255\255\255\023\000\023\000\ \023\000\255\255\255\255\255\255\023\000\023\000\255\255\023\000\ \023\000\023\000\255\255\255\255\255\255\255\255\255\255\255\255\ \015\000\255\255\015\000\255\255\023\000\019\000\023\000\023\000\ \023\000\023\000\023\000\255\255\255\255\255\255\025\000\255\255\ \255\255\025\000\025\000\025\000\255\255\255\255\025\000\025\000\ \025\000\255\255\025\000\025\000\025\000\255\255\255\255\255\255\ \255\255\255\255\255\255\019\000\255\255\019\000\255\255\025\000\ \023\000\025\000\025\000\025\000\025\000\025\000\030\000\255\255\ \030\000\030\000\030\000\030\000\030\000\030\000\030\000\030\000\ \030\000\030\000\048\000\048\000\048\000\048\000\048\000\048\000\ \048\000\048\000\030\000\255\255\255\255\030\000\023\000\255\255\ \023\000\255\255\255\255\025\000\255\255\255\255\255\255\030\000\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \030\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\030\000\255\255\255\255\030\000\255\255\255\255\ \255\255\025\000\255\255\025\000\255\255\255\255\255\255\030\000\ \031\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \030\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\ \031\000\031\000\031\000\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\031\000\031\000\031\000\031\000\031\000\031\000\ \031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\ \031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\ \031\000\031\000\031\000\031\000\255\255\255\255\255\255\255\255\ \031\000\255\255\031\000\031\000\031\000\031\000\031\000\031\000\ \031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\ \031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\ \031\000\031\000\031\000\031\000\042\000\255\255\042\000\255\255\ \255\255\042\000\042\000\042\000\042\000\042\000\042\000\042\000\ \042\000\042\000\042\000\050\000\050\000\050\000\050\000\050\000\ \050\000\050\000\050\000\050\000\050\000\051\000\051\000\051\000\ \051\000\051\000\051\000\051\000\051\000\051\000\051\000\056\000\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \056\000\056\000\056\000\056\000\056\000\056\000\056\000\056\000\ \056\000\056\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\255\255\255\255\255\255\255\255\ \255\255\031\000\031\000\031\000\031\000\031\000\031\000\031\000\ \031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\ \031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\ \255\255\031\000\031\000\031\000\031\000\031\000\031\000\031\000\ \031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\ \031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\ \031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\ \032\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\ \031\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ \032\000\032\000\032\000\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\032\000\032\000\032\000\032\000\032\000\032\000\ \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ \032\000\032\000\032\000\032\000\255\255\255\255\255\255\255\255\ \032\000\255\255\032\000\032\000\032\000\032\000\032\000\032\000\ \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ \032\000\032\000\032\000\032\000\046\000\046\000\046\000\046\000\ \046\000\046\000\046\000\046\000\046\000\046\000\255\255\255\255\ \255\255\255\255\255\255\255\255\068\000\046\000\046\000\046\000\ \046\000\046\000\046\000\103\000\103\000\103\000\103\000\103\000\ \103\000\103\000\103\000\103\000\103\000\255\255\255\255\255\255\ \255\255\255\255\255\255\068\000\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\046\000\046\000\046\000\ \046\000\046\000\046\000\068\000\068\000\068\000\068\000\068\000\ \068\000\068\000\068\000\068\000\068\000\255\255\255\255\255\255\ \255\255\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ \255\255\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ \255\255\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ \032\000\033\000\255\255\255\255\033\000\033\000\033\000\255\255\ \255\255\255\255\033\000\033\000\255\255\033\000\033\000\033\000\ \105\000\105\000\105\000\105\000\105\000\105\000\105\000\105\000\ \105\000\105\000\033\000\255\255\033\000\033\000\033\000\033\000\ \033\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\052\000\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\052\000\052\000\052\000\052\000\052\000\ \052\000\052\000\052\000\052\000\052\000\255\255\033\000\033\000\ \255\255\033\000\033\000\033\000\033\000\033\000\033\000\033\000\ \033\000\033\000\033\000\033\000\033\000\033\000\033\000\033\000\ \033\000\033\000\033\000\033\000\033\000\033\000\033\000\033\000\ \033\000\033\000\033\000\255\255\033\000\034\000\033\000\052\000\ \034\000\034\000\034\000\255\255\255\255\052\000\034\000\034\000\ \255\255\034\000\034\000\034\000\255\255\255\255\255\255\255\255\ \255\255\052\000\255\255\255\255\255\255\052\000\034\000\052\000\ \034\000\034\000\034\000\034\000\034\000\110\000\110\000\110\000\ \110\000\110\000\110\000\110\000\110\000\110\000\110\000\113\000\ \113\000\113\000\113\000\113\000\113\000\113\000\113\000\113\000\ \113\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\034\000\034\000\255\255\034\000\034\000\034\000\ \034\000\034\000\034\000\034\000\034\000\034\000\034\000\034\000\ \034\000\034\000\034\000\034\000\034\000\034\000\034\000\034\000\ \034\000\034\000\034\000\034\000\034\000\034\000\034\000\255\255\ \034\000\255\255\034\000\255\255\255\255\255\255\255\255\033\000\ \033\000\033\000\033\000\033\000\033\000\033\000\033\000\033\000\ \033\000\033\000\033\000\033\000\033\000\033\000\033\000\033\000\ \033\000\033\000\033\000\033\000\033\000\033\000\033\000\255\255\ \033\000\033\000\033\000\033\000\033\000\033\000\033\000\033\000\ \047\000\047\000\047\000\047\000\047\000\047\000\047\000\047\000\ \047\000\047\000\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\047\000\047\000\047\000\047\000\047\000\047\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\052\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\047\000\047\000\047\000\047\000\047\000\047\000\255\255\ \255\255\255\255\255\255\034\000\034\000\034\000\034\000\034\000\ \034\000\034\000\034\000\034\000\034\000\034\000\034\000\034\000\ \034\000\034\000\034\000\034\000\034\000\034\000\034\000\034\000\ \034\000\034\000\034\000\035\000\034\000\034\000\034\000\034\000\ \034\000\034\000\034\000\034\000\035\000\035\000\035\000\035\000\ \035\000\035\000\035\000\035\000\035\000\035\000\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\035\000\035\000\035\000\ \035\000\035\000\035\000\035\000\035\000\035\000\035\000\035\000\ \035\000\035\000\035\000\035\000\035\000\035\000\035\000\035\000\ \035\000\035\000\035\000\035\000\035\000\035\000\035\000\255\255\ \255\255\255\255\255\255\035\000\255\255\035\000\035\000\035\000\ \035\000\035\000\035\000\035\000\035\000\035\000\035\000\035\000\ \035\000\035\000\035\000\035\000\035\000\035\000\035\000\035\000\ \035\000\035\000\035\000\035\000\035\000\035\000\035\000\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\067\000\255\255\ \255\255\067\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\067\000\067\000\067\000\067\000\ \067\000\067\000\067\000\067\000\067\000\067\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\035\000\035\000\035\000\035\000\ \035\000\035\000\035\000\035\000\035\000\035\000\035\000\035\000\ \035\000\035\000\035\000\035\000\035\000\035\000\035\000\035\000\ \035\000\035\000\035\000\255\255\035\000\035\000\035\000\035\000\ \035\000\035\000\035\000\035\000\035\000\035\000\035\000\035\000\ \035\000\035\000\035\000\035\000\035\000\035\000\035\000\035\000\ \035\000\035\000\035\000\035\000\035\000\035\000\035\000\035\000\ \035\000\035\000\035\000\255\255\035\000\035\000\035\000\035\000\ \035\000\035\000\035\000\035\000\037\000\255\255\255\255\037\000\ \037\000\037\000\255\255\255\255\255\255\037\000\037\000\255\255\ \037\000\037\000\037\000\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\037\000\255\255\037\000\ \037\000\037\000\037\000\037\000\255\255\255\255\255\255\255\255\ \038\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\038\000\038\000\038\000\038\000\038\000\038\000\038\000\ \038\000\038\000\038\000\038\000\255\255\255\255\255\255\255\255\ \255\255\037\000\038\000\038\000\038\000\038\000\038\000\038\000\ \038\000\038\000\038\000\038\000\038\000\038\000\038\000\038\000\ \038\000\038\000\038\000\038\000\038\000\038\000\038\000\038\000\ \038\000\038\000\038\000\038\000\255\255\255\255\255\255\037\000\ \038\000\037\000\038\000\038\000\038\000\038\000\038\000\038\000\ \038\000\038\000\038\000\038\000\038\000\038\000\038\000\038\000\ \038\000\038\000\038\000\038\000\038\000\038\000\038\000\038\000\ \038\000\038\000\038\000\038\000\067\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\038\000\038\000\038\000\038\000\038\000\038\000\038\000\ \038\000\038\000\038\000\038\000\038\000\038\000\038\000\038\000\ \038\000\038\000\038\000\038\000\038\000\038\000\038\000\038\000\ \255\255\038\000\038\000\038\000\038\000\038\000\038\000\038\000\ \038\000\038\000\038\000\038\000\038\000\038\000\038\000\038\000\ \038\000\038\000\038\000\038\000\038\000\038\000\038\000\038\000\ \038\000\038\000\038\000\038\000\038\000\038\000\038\000\038\000\ \040\000\038\000\038\000\038\000\038\000\038\000\038\000\038\000\ \038\000\040\000\040\000\040\000\040\000\040\000\040\000\040\000\ \040\000\040\000\040\000\040\000\255\255\255\255\255\255\255\255\ \255\255\255\255\040\000\040\000\040\000\040\000\040\000\040\000\ \040\000\040\000\040\000\040\000\040\000\040\000\040\000\040\000\ \040\000\040\000\040\000\040\000\040\000\040\000\040\000\040\000\ \040\000\040\000\040\000\040\000\255\255\255\255\255\255\255\255\ \040\000\255\255\040\000\040\000\040\000\040\000\040\000\040\000\ \040\000\040\000\040\000\040\000\040\000\040\000\040\000\040\000\ \040\000\040\000\040\000\040\000\040\000\040\000\040\000\040\000\ \040\000\040\000\040\000\040\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\040\000\040\000\040\000\040\000\040\000\040\000\040\000\ \040\000\040\000\040\000\040\000\040\000\040\000\040\000\040\000\ \040\000\040\000\040\000\040\000\040\000\040\000\040\000\040\000\ \255\255\040\000\040\000\040\000\040\000\040\000\040\000\040\000\ \040\000\040\000\040\000\040\000\040\000\040\000\040\000\040\000\ \040\000\040\000\040\000\040\000\040\000\040\000\040\000\040\000\ \040\000\040\000\040\000\040\000\040\000\040\000\040\000\040\000\ \255\255\040\000\040\000\040\000\040\000\040\000\040\000\040\000\ \040\000\065\000\255\255\255\255\065\000\065\000\065\000\255\255\ \255\255\255\255\065\000\065\000\255\255\065\000\065\000\065\000\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\065\000\255\255\065\000\065\000\065\000\065\000\ \065\000\255\255\255\255\255\255\072\000\255\255\255\255\072\000\ \072\000\072\000\255\255\255\255\255\255\072\000\072\000\255\255\ \072\000\072\000\072\000\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\072\000\065\000\072\000\ \072\000\072\000\072\000\072\000\255\255\255\255\255\255\073\000\ \255\255\255\255\073\000\073\000\073\000\255\255\255\255\255\255\ \073\000\073\000\255\255\073\000\073\000\073\000\255\255\255\255\ \255\255\255\255\255\255\255\255\065\000\255\255\065\000\255\255\ \073\000\072\000\073\000\073\000\073\000\073\000\073\000\255\255\ \255\255\255\255\074\000\255\255\255\255\074\000\074\000\074\000\ \255\255\255\255\255\255\074\000\074\000\255\255\074\000\074\000\ \074\000\255\255\255\255\255\255\255\255\255\255\255\255\072\000\ \255\255\072\000\255\255\074\000\073\000\074\000\074\000\074\000\ \074\000\074\000\255\255\255\255\255\255\075\000\255\255\255\255\ \075\000\075\000\075\000\255\255\255\255\255\255\075\000\075\000\ \255\255\075\000\075\000\075\000\255\255\255\255\255\255\255\255\ \255\255\255\255\073\000\255\255\073\000\255\255\075\000\074\000\ \075\000\075\000\075\000\075\000\075\000\255\255\255\255\255\255\ \081\000\255\255\255\255\081\000\081\000\081\000\255\255\255\255\ \255\255\081\000\081\000\255\255\081\000\081\000\081\000\255\255\ \255\255\255\255\255\255\255\255\255\255\074\000\255\255\074\000\ \255\255\081\000\075\000\081\000\081\000\081\000\081\000\081\000\ \255\255\255\255\255\255\086\000\255\255\255\255\086\000\086\000\ \086\000\255\255\255\255\255\255\086\000\086\000\255\255\086\000\ \086\000\086\000\255\255\255\255\255\255\255\255\255\255\255\255\ \075\000\255\255\075\000\255\255\086\000\081\000\086\000\086\000\ \086\000\086\000\086\000\255\255\255\255\255\255\089\000\255\255\ \255\255\089\000\089\000\089\000\255\255\255\255\255\255\089\000\ \089\000\255\255\089\000\089\000\089\000\255\255\255\255\255\255\ \255\255\255\255\255\255\081\000\255\255\081\000\255\255\089\000\ \086\000\089\000\089\000\089\000\089\000\089\000\255\255\255\255\ \255\255\090\000\255\255\255\255\090\000\090\000\090\000\255\255\ \255\255\109\000\090\000\090\000\109\000\090\000\090\000\090\000\ \255\255\255\255\255\255\255\255\255\255\255\255\086\000\255\255\ \086\000\100\000\090\000\089\000\090\000\090\000\090\000\090\000\ \090\000\109\000\100\000\100\000\100\000\100\000\100\000\100\000\ \100\000\100\000\100\000\100\000\255\255\255\255\255\255\109\000\ \109\000\109\000\109\000\109\000\109\000\109\000\109\000\109\000\ \109\000\089\000\255\255\089\000\255\255\255\255\090\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\100\000\255\255\ \255\255\255\255\255\255\255\255\100\000\255\255\255\255\255\255\ \255\255\255\255\255\255\109\000\090\000\255\255\090\000\255\255\ \100\000\109\000\255\255\255\255\100\000\255\255\100\000\255\255\ \255\255\255\255\255\255\255\255\255\255\109\000\255\255\255\255\ \255\255\109\000\255\255\109\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\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 lexbuf = __ocaml_lex_token_rec lexbuf 0 and __ocaml_lex_token_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 191 "ocaml-parser/lexer.mll" ( token lexbuf ) # 910 "ocaml-parser/lexer.ml" | 1 -> # 193 "ocaml-parser/lexer.mll" ( UNDERSCORE ) # 915 "ocaml-parser/lexer.ml" | 2 -> # 194 "ocaml-parser/lexer.mll" ( TILDE ) # 920 "ocaml-parser/lexer.ml" | 3 -> # 196 "ocaml-parser/lexer.mll" ( let s = Lexing.lexeme lexbuf in let name = String.sub s 1 (String.length s - 2) in if Hashtbl.mem keyword_table name then raise (Error(Keyword_as_label name, Lexing.lexeme_start lexbuf, Lexing.lexeme_end lexbuf)); LABEL name ) # 930 "ocaml-parser/lexer.ml" | 4 -> # 202 "ocaml-parser/lexer.mll" ( QUESTION ) # 935 "ocaml-parser/lexer.ml" | 5 -> # 204 "ocaml-parser/lexer.mll" ( let s = Lexing.lexeme lexbuf in let name = String.sub s 1 (String.length s - 2) in if Hashtbl.mem keyword_table name then raise (Error(Keyword_as_label name, Lexing.lexeme_start lexbuf, Lexing.lexeme_end lexbuf)); OPTLABEL name ) # 945 "ocaml-parser/lexer.ml" | 6 -> # 211 "ocaml-parser/lexer.mll" ( let s = Lexing.lexeme lexbuf in try Hashtbl.find keyword_table s with Not_found -> LIDENT s ) # 954 "ocaml-parser/lexer.ml" | 7 -> # 217 "ocaml-parser/lexer.mll" ( UIDENT(Lexing.lexeme lexbuf) ) # 959 "ocaml-parser/lexer.ml" | 8 -> # 219 "ocaml-parser/lexer.mll" ( INT (int_of_string(Lexing.lexeme lexbuf)) ) # 964 "ocaml-parser/lexer.ml" | 9 -> # 221 "ocaml-parser/lexer.mll" ( FLOAT (Lexing.lexeme lexbuf) ) # 969 "ocaml-parser/lexer.ml" | 10 -> # 223 "ocaml-parser/lexer.mll" ( reset_string_buffer(); let string_start = Lexing.lexeme_start lexbuf in string_start_pos := string_start; string lexbuf; lexbuf.Lexing.lex_start_pos <- string_start - lexbuf.Lexing.lex_abs_pos; STRING (get_stored_string()) ) # 980 "ocaml-parser/lexer.ml" | 11 -> # 231 "ocaml-parser/lexer.mll" ( CHAR(Lexing.lexeme_char lexbuf 1) ) # 985 "ocaml-parser/lexer.ml" | 12 -> # 233 "ocaml-parser/lexer.mll" ( CHAR(char_for_backslash (Lexing.lexeme_char lexbuf 2)) ) # 990 "ocaml-parser/lexer.ml" | 13 -> # 235 "ocaml-parser/lexer.mll" ( CHAR(char_for_decimal_code lexbuf 2) ) # 995 "ocaml-parser/lexer.ml" | 14 -> # 237 "ocaml-parser/lexer.mll" ( raise (Error(Illegal_escape (Lexing.lexeme lexbuf), Lexing.lexeme_start lexbuf, Lexing.lexeme_end lexbuf))) # 1001 "ocaml-parser/lexer.ml" | 15 -> # 240 "ocaml-parser/lexer.mll" ( comment_start_pos := [Lexing.lexeme_start lexbuf]; comment lexbuf; token lexbuf ) # 1008 "ocaml-parser/lexer.ml" | 16 -> # 244 "ocaml-parser/lexer.mll" ( let loc = { Location.loc_start = Lexing.lexeme_start lexbuf; Location.loc_end = Lexing.lexeme_end lexbuf - 1; Location.loc_ghost = false } and warn = Warnings.Comment "the start of a comment" in Location.prerr_warning loc warn; comment_start_pos := [Lexing.lexeme_start lexbuf]; comment lexbuf; token lexbuf ) # 1022 "ocaml-parser/lexer.ml" | 17 -> # 255 "ocaml-parser/lexer.mll" ( let loc = { Location.loc_start = Lexing.lexeme_start lexbuf; Location.loc_end = Lexing.lexeme_end lexbuf; Location.loc_ghost = false } and warn = Warnings.Comment "not the end of a comment" in Location.prerr_warning loc warn; lexbuf.Lexing.lex_curr_pos <- lexbuf.Lexing.lex_curr_pos - 1; STAR ) # 1035 "ocaml-parser/lexer.ml" | 18 -> # 266 "ocaml-parser/lexer.mll" ( token lexbuf ) # 1040 "ocaml-parser/lexer.ml" | 19 -> # 267 "ocaml-parser/lexer.mll" ( SHARP ) # 1045 "ocaml-parser/lexer.ml" | 20 -> # 268 "ocaml-parser/lexer.mll" ( AMPERSAND ) # 1050 "ocaml-parser/lexer.ml" | 21 -> # 269 "ocaml-parser/lexer.mll" ( AMPERAMPER ) # 1055 "ocaml-parser/lexer.ml" | 22 -> # 270 "ocaml-parser/lexer.mll" ( BACKQUOTE ) # 1060 "ocaml-parser/lexer.ml" | 23 -> # 271 "ocaml-parser/lexer.mll" ( QUOTE ) # 1065 "ocaml-parser/lexer.ml" | 24 -> # 272 "ocaml-parser/lexer.mll" ( LPAREN ) # 1070 "ocaml-parser/lexer.ml" | 25 -> # 273 "ocaml-parser/lexer.mll" ( RPAREN ) # 1075 "ocaml-parser/lexer.ml" | 26 -> # 274 "ocaml-parser/lexer.mll" ( STAR ) # 1080 "ocaml-parser/lexer.ml" | 27 -> # 275 "ocaml-parser/lexer.mll" ( COMMA ) # 1085 "ocaml-parser/lexer.ml" | 28 -> # 276 "ocaml-parser/lexer.mll" ( MINUSGREATER ) # 1090 "ocaml-parser/lexer.ml" | 29 -> # 277 "ocaml-parser/lexer.mll" ( DOT ) # 1095 "ocaml-parser/lexer.ml" | 30 -> # 278 "ocaml-parser/lexer.mll" ( DOTDOT ) # 1100 "ocaml-parser/lexer.ml" | 31 -> # 279 "ocaml-parser/lexer.mll" ( COLON ) # 1105 "ocaml-parser/lexer.ml" | 32 -> # 280 "ocaml-parser/lexer.mll" ( COLONCOLON ) # 1110 "ocaml-parser/lexer.ml" | 33 -> # 281 "ocaml-parser/lexer.mll" ( COLONEQUAL ) # 1115 "ocaml-parser/lexer.ml" | 34 -> # 282 "ocaml-parser/lexer.mll" ( COLONGREATER ) # 1120 "ocaml-parser/lexer.ml" | 35 -> # 283 "ocaml-parser/lexer.mll" ( SEMI ) # 1125 "ocaml-parser/lexer.ml" | 36 -> # 284 "ocaml-parser/lexer.mll" ( SEMISEMI ) # 1130 "ocaml-parser/lexer.ml" | 37 -> # 285 "ocaml-parser/lexer.mll" ( LESS ) # 1135 "ocaml-parser/lexer.ml" | 38 -> # 286 "ocaml-parser/lexer.mll" ( LESSMINUS ) # 1140 "ocaml-parser/lexer.ml" | 39 -> # 287 "ocaml-parser/lexer.mll" ( EQUAL ) # 1145 "ocaml-parser/lexer.ml" | 40 -> # 288 "ocaml-parser/lexer.mll" ( LBRACKET ) # 1150 "ocaml-parser/lexer.ml" | 41 -> # 289 "ocaml-parser/lexer.mll" ( LBRACKETBAR ) # 1155 "ocaml-parser/lexer.ml" | 42 -> # 290 "ocaml-parser/lexer.mll" ( LBRACKETLESS ) # 1160 "ocaml-parser/lexer.ml" | 43 -> # 291 "ocaml-parser/lexer.mll" ( RBRACKET ) # 1165 "ocaml-parser/lexer.ml" | 44 -> # 292 "ocaml-parser/lexer.mll" ( LBRACE ) # 1170 "ocaml-parser/lexer.ml" | 45 -> # 293 "ocaml-parser/lexer.mll" ( LBRACELESS ) # 1175 "ocaml-parser/lexer.ml" | 46 -> # 294 "ocaml-parser/lexer.mll" ( BAR ) # 1180 "ocaml-parser/lexer.ml" | 47 -> # 295 "ocaml-parser/lexer.mll" ( BARBAR ) # 1185 "ocaml-parser/lexer.ml" | 48 -> # 296 "ocaml-parser/lexer.mll" ( BARRBRACKET ) # 1190 "ocaml-parser/lexer.ml" | 49 -> # 297 "ocaml-parser/lexer.mll" ( GREATER ) # 1195 "ocaml-parser/lexer.ml" | 50 -> # 298 "ocaml-parser/lexer.mll" ( GREATERRBRACKET ) # 1200 "ocaml-parser/lexer.ml" | 51 -> # 299 "ocaml-parser/lexer.mll" ( RBRACE ) # 1205 "ocaml-parser/lexer.ml" | 52 -> # 300 "ocaml-parser/lexer.mll" ( GREATERRBRACE ) # 1210 "ocaml-parser/lexer.ml" | 53 -> # 302 "ocaml-parser/lexer.mll" ( INFIXOP0 "!=" ) # 1215 "ocaml-parser/lexer.ml" | 54 -> # 303 "ocaml-parser/lexer.mll" ( PLUS ) # 1220 "ocaml-parser/lexer.ml" | 55 -> # 304 "ocaml-parser/lexer.mll" ( MINUS ) # 1225 "ocaml-parser/lexer.ml" | 56 -> # 305 "ocaml-parser/lexer.mll" ( MINUSDOT ) # 1230 "ocaml-parser/lexer.ml" | 57 -> # 308 "ocaml-parser/lexer.mll" ( PREFIXOP(Lexing.lexeme lexbuf) ) # 1235 "ocaml-parser/lexer.ml" | 58 -> # 310 "ocaml-parser/lexer.mll" ( PREFIXOP(Lexing.lexeme lexbuf) ) # 1240 "ocaml-parser/lexer.ml" | 59 -> # 312 "ocaml-parser/lexer.mll" ( INFIXOP0(Lexing.lexeme lexbuf) ) # 1245 "ocaml-parser/lexer.ml" | 60 -> # 314 "ocaml-parser/lexer.mll" ( INFIXOP1(Lexing.lexeme lexbuf) ) # 1250 "ocaml-parser/lexer.ml" | 61 -> # 316 "ocaml-parser/lexer.mll" ( INFIXOP2(Lexing.lexeme lexbuf) ) # 1255 "ocaml-parser/lexer.ml" | 62 -> # 318 "ocaml-parser/lexer.mll" ( INFIXOP4(Lexing.lexeme lexbuf) ) # 1260 "ocaml-parser/lexer.ml" | 63 -> # 320 "ocaml-parser/lexer.mll" ( INFIXOP3(Lexing.lexeme lexbuf) ) # 1265 "ocaml-parser/lexer.ml" | 64 -> # 321 "ocaml-parser/lexer.mll" ( EOF ) # 1270 "ocaml-parser/lexer.ml" | 65 -> # 323 "ocaml-parser/lexer.mll" ( raise (Error(Illegal_character ((Lexing.lexeme lexbuf).[0]), Lexing.lexeme_start lexbuf, Lexing.lexeme_end lexbuf)) ) # 1276 "ocaml-parser/lexer.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_token_rec lexbuf __ocaml_lex_state and comment lexbuf = __ocaml_lex_comment_rec lexbuf 91 and __ocaml_lex_comment_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 328 "ocaml-parser/lexer.mll" ( comment_start_pos := Lexing.lexeme_start lexbuf :: !comment_start_pos; comment lexbuf; ) # 1289 "ocaml-parser/lexer.ml" | 1 -> # 332 "ocaml-parser/lexer.mll" ( match !comment_start_pos with | [] -> assert false | [x] -> comment_start_pos := []; | _ :: l -> comment_start_pos := l; comment lexbuf; ) # 1299 "ocaml-parser/lexer.ml" | 2 -> # 339 "ocaml-parser/lexer.mll" ( reset_string_buffer(); string_start_pos := Lexing.lexeme_start lexbuf; begin try string lexbuf with Error (Unterminated_string, _, _) -> let st = List.hd !comment_start_pos in raise (Error (Unterminated_string_in_comment, st, st + 2)) end; string_buff := initial_string_buffer; comment lexbuf ) # 1312 "ocaml-parser/lexer.ml" | 3 -> # 349 "ocaml-parser/lexer.mll" ( comment lexbuf ) # 1317 "ocaml-parser/lexer.ml" | 4 -> # 351 "ocaml-parser/lexer.mll" ( comment lexbuf ) # 1322 "ocaml-parser/lexer.ml" | 5 -> # 353 "ocaml-parser/lexer.mll" ( comment lexbuf ) # 1327 "ocaml-parser/lexer.ml" | 6 -> # 355 "ocaml-parser/lexer.mll" ( comment lexbuf ) # 1332 "ocaml-parser/lexer.ml" | 7 -> # 357 "ocaml-parser/lexer.mll" ( let st = List.hd !comment_start_pos in raise (Error (Unterminated_comment, st, st + 2)); ) # 1339 "ocaml-parser/lexer.ml" | 8 -> # 361 "ocaml-parser/lexer.mll" ( comment lexbuf ) # 1344 "ocaml-parser/lexer.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_comment_rec lexbuf __ocaml_lex_state and string lexbuf = __ocaml_lex_string_rec lexbuf 108 and __ocaml_lex_string_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 365 "ocaml-parser/lexer.mll" ( () ) # 1355 "ocaml-parser/lexer.ml" | 1 -> # 367 "ocaml-parser/lexer.mll" ( string lexbuf ) # 1360 "ocaml-parser/lexer.ml" | 2 -> # 369 "ocaml-parser/lexer.mll" ( store_string_char(char_for_backslash(Lexing.lexeme_char lexbuf 1)); string lexbuf ) # 1366 "ocaml-parser/lexer.ml" | 3 -> # 372 "ocaml-parser/lexer.mll" ( store_string_char(char_for_decimal_code lexbuf 1); string lexbuf ) # 1372 "ocaml-parser/lexer.ml" | 4 -> # 375 "ocaml-parser/lexer.mll" ( raise (Error (Unterminated_string, !string_start_pos, !string_start_pos+1)) ) # 1378 "ocaml-parser/lexer.ml" | 5 -> # 378 "ocaml-parser/lexer.mll" ( store_string_char(Lexing.lexeme_char lexbuf 0); string lexbuf ) # 1384 "ocaml-parser/lexer.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_string_rec lexbuf __ocaml_lex_state and skip_sharp_bang lexbuf = __ocaml_lex_skip_sharp_bang_rec lexbuf 114 and __ocaml_lex_skip_sharp_bang_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 384 "ocaml-parser/lexer.mll" () # 1395 "ocaml-parser/lexer.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_skip_sharp_bang_rec lexbuf __ocaml_lex_state ;;