# 17 "parsing/lexer.mll" open Lexing 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 | Literal_overflow of string ;; exception Error of error * Location.t;; (* 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; (* "parser", PARSER; *) "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 store the position of the beginning of a string and comment *) let string_start_loc = ref Location.none;; let comment_start_loc = ref [];; let in_comment () = !comment_start_loc <> [];; (* To translate escape sequences *) let char_for_backslash = function | 'n' -> '\010' | 'r' -> '\013' | 'b' -> '\008' | 't' -> '\009' | c -> c 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) && not (in_comment ()) then raise (Error(Illegal_escape (Lexing.lexeme lexbuf), Location.curr lexbuf)) else Char.chr c let char_for_hexadecimal_code lexbuf i = let d1 = Char.code (Lexing.lexeme_char lexbuf i) in let val1 = if d1 >= 97 then d1 - 87 else if d1 >= 65 then d1 - 55 else d1 - 48 in let d2 = Char.code (Lexing.lexeme_char lexbuf (i+1)) in let val2 = if d2 >= 97 then d2 - 87 else if d2 >= 65 then d2 - 55 else d2 - 48 in Char.chr (val1 * 16 + val2) (* Remove underscores from float literals *) let remove_underscores s = let l = String.length s in let rec remove src dst = if src >= l then if dst >= l then s else String.sub s 0 dst else match s.[src] with '_' -> remove (src + 1) dst | c -> s.[dst] <- c; remove (src + 1) (dst + 1) in remove 0 0 (* Update the current location with file name and line number. *) let update_loc lexbuf file line absolute chars = let pos = lexbuf.lex_curr_p in let new_file = match file with | None -> pos.pos_fname | Some s -> s in lexbuf.lex_curr_p <- { pos with pos_fname = new_file; pos_lnum = if absolute then line else pos.pos_lnum + line; pos_bol = pos.pos_cnum - chars; } ;; (* 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 backslash escape in string or character (%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 | Literal_overflow ty -> fprintf ppf "Integer literal exceeds the range of representable integers of type %s" ty ;; # 193 "parsing/lexer.ml" let __ocaml_lex_tables = { Lexing.lex_base = "\000\000\182\255\183\255\224\000\003\001\038\001\073\001\108\001\ \196\255\143\001\180\001\032\000\204\255\067\000\217\001\252\001\ \069\000\072\000\085\000\031\002\221\255\223\255\226\255\066\002\ \123\000\101\002\093\000\047\001\240\255\120\002\153\002\226\002\ \178\003\145\004\237\004\189\005\127\000\001\000\255\255\156\006\ \186\006\251\255\138\007\105\008\248\255\241\255\242\255\243\255\ \095\000\045\003\093\000\112\000\055\003\253\003\008\006\103\002\ \173\004\133\000\122\008\098\000\237\000\114\000\239\255\238\255\ \234\255\097\005\078\003\115\000\237\255\026\004\117\000\236\255\ \022\006\118\000\235\255\117\000\232\255\147\008\231\255\044\007\ \016\005\004\000\230\255\007\000\009\001\045\001\008\000\005\000\ \230\255\214\008\249\008\030\009\065\009\218\255\214\255\215\255\ \216\255\212\255\100\009\205\255\206\255\207\255\202\255\199\255\ \135\009\195\255\197\255\170\009\205\009\103\003\244\255\006\000\ \245\255\246\255\062\002\253\255\127\000\127\000\254\255\223\009\ \131\000\255\000\176\000\252\255\250\255\014\007\145\004\219\000\ \249\255\162\004\220\000\213\007\229\000\247\255\077\004\009\000\ \040\010\074\010\237\004\015\001\012\001\001\005\113\010\237\000\ \240\000\018\000\027\001\246\000\046\001\248\000\012\000"; Lexing.lex_backtrk = "\255\255\255\255\255\255\071\000\068\000\067\000\062\000\065\000\ \255\255\057\000\054\000\052\000\255\255\047\000\046\000\044\000\ \042\000\038\000\036\000\063\000\255\255\255\255\255\255\027\000\ \026\000\033\000\031\000\030\000\255\255\010\000\010\000\009\000\ \008\000\005\000\003\000\002\000\001\000\000\000\255\255\066\000\ \255\255\255\255\255\255\006\000\255\255\255\255\255\255\255\255\ \255\255\011\000\255\255\255\255\255\255\010\000\010\000\010\000\ \011\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\021\000\021\000\021\000\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\022\000\255\255\070\000\255\255\255\255\ \255\255\025\000\255\255\255\255\255\255\255\255\255\255\025\000\ \255\255\028\000\069\000\064\000\035\000\255\255\255\255\255\255\ \255\255\255\255\045\000\255\255\255\255\255\255\255\255\255\255\ \055\000\255\255\255\255\065\000\061\000\255\255\255\255\010\000\ \255\255\255\255\011\000\255\255\011\000\011\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\006\000\ \008\000\005\000\005\000\001\000\001\000\255\255\255\255\002\000\ \255\255\255\255\001\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\059\000\000\000\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\000\000\255\255\ \255\255\000\000\255\255\255\255\000\000\000\000\000\000\000\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\000\000\000\000\ \000\000\255\255\255\255\255\255\000\000\255\255\255\255\000\000\ \255\255\255\255\000\000\255\255\000\000\255\255\000\000\083\000\ \255\255\255\255\000\000\083\000\084\000\083\000\086\000\255\255\ \000\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\000\000\ \255\255\000\000\000\000\255\255\255\255\110\000\000\000\255\255\ \000\000\000\000\120\000\000\000\255\255\255\255\000\000\255\255\ \255\255\255\255\255\255\000\000\000\000\255\255\255\255\255\255\ \000\000\255\255\255\255\255\255\255\255\000\000\133\000\255\255\ \124\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\145\000\148\000\255\255\148\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\038\000\038\000\036\000\037\000\082\000\088\000\ \112\000\082\000\088\000\128\000\081\000\087\000\038\000\000\000\ \000\000\000\000\000\000\000\000\146\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\102\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\100\000\ \097\000\099\000\096\000\093\000\080\000\095\000\094\000\075\000\ \036\000\063\000\057\000\036\000\057\000\055\000\055\000\056\000\ \056\000\056\000\056\000\056\000\056\000\056\000\056\000\056\000\ \056\000\062\000\068\000\080\000\071\000\074\000\076\000\036\000\ \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\ \118\000\038\000\124\000\079\000\079\000\079\000\079\000\079\000\ \079\000\079\000\079\000\079\000\079\000\056\000\056\000\056\000\ \056\000\056\000\056\000\056\000\056\000\056\000\056\000\101\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\041\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\061\000\ \032\000\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ \002\000\003\000\128\000\044\000\003\000\003\000\003\000\255\255\ \255\255\122\000\003\000\003\000\133\000\003\000\003\000\003\000\ \144\000\145\000\255\255\082\000\062\000\140\000\081\000\149\000\ \140\000\140\000\003\000\150\000\003\000\003\000\003\000\003\000\ \003\000\000\000\000\000\000\000\004\000\147\000\041\000\004\000\ \004\000\004\000\000\000\086\000\140\000\004\000\004\000\140\000\ \004\000\004\000\004\000\000\000\000\000\000\000\085\000\082\000\ \147\000\061\000\081\000\000\000\060\000\004\000\003\000\004\000\ \004\000\004\000\004\000\004\000\000\000\000\000\000\000\005\000\ \000\000\000\000\005\000\005\000\005\000\085\000\000\000\084\000\ \005\000\005\000\000\000\005\000\005\000\005\000\255\255\000\000\ \000\000\000\000\000\000\000\000\003\000\000\000\003\000\000\000\ \005\000\004\000\005\000\005\000\005\000\005\000\005\000\000\000\ \000\000\000\000\090\000\000\000\000\000\090\000\090\000\090\000\ \000\000\000\000\000\000\090\000\090\000\000\000\090\000\090\000\ \090\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\ \000\000\004\000\000\000\090\000\005\000\090\000\090\000\090\000\ \090\000\090\000\000\000\058\000\000\000\107\000\000\000\000\000\ \107\000\107\000\107\000\000\000\000\000\000\000\107\000\107\000\ \000\000\107\000\107\000\107\000\000\000\000\000\000\000\000\000\ \000\000\000\000\005\000\000\000\005\000\000\000\107\000\090\000\ \107\000\108\000\107\000\107\000\107\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\090\000\000\000\090\000\ \000\000\005\000\107\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\000\000\000\000\ \107\000\000\000\107\000\000\000\106\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\255\255\000\000\005\000\105\000\005\000\000\000\000\000\ \000\000\103\000\005\000\005\000\000\000\005\000\005\000\005\000\ \005\000\005\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\098\000\005\000\005\000\000\000\255\255\255\255\255\255\ \104\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\ \090\000\000\000\000\000\090\000\090\000\090\000\000\000\000\000\ \122\000\090\000\090\000\121\000\090\000\091\000\090\000\000\000\ \000\000\000\000\000\000\000\000\000\000\005\000\000\000\005\000\ \000\000\090\000\005\000\090\000\090\000\092\000\090\000\090\000\ \000\000\000\000\000\000\005\000\000\000\123\000\005\000\005\000\ \089\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\090\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\078\000\077\000\ \003\000\000\000\003\000\003\000\003\000\000\000\000\000\055\000\ \055\000\000\000\119\000\090\000\000\000\090\000\000\000\003\000\ \005\000\003\000\003\000\003\000\003\000\003\000\049\000\000\000\ \029\000\029\000\029\000\029\000\029\000\029\000\029\000\029\000\ \029\000\029\000\000\000\046\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\048\000\005\000\000\000\ \005\000\000\000\000\000\003\000\046\000\000\000\055\000\049\000\ \000\000\029\000\029\000\029\000\029\000\029\000\029\000\029\000\ \029\000\029\000\029\000\047\000\000\000\045\000\000\000\029\000\ \000\000\000\000\000\000\050\000\000\000\048\000\048\000\000\000\ \000\000\003\000\000\000\003\000\047\000\046\000\045\000\000\000\ \051\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\052\000\000\000\000\000\000\000\000\000\000\000\000\000\ \029\000\000\000\000\000\050\000\000\000\000\000\048\000\000\000\ \000\000\000\000\000\000\000\000\000\000\047\000\000\000\045\000\ \051\000\031\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\052\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\255\255\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\049\000\049\000\049\000\ \049\000\049\000\049\000\049\000\049\000\049\000\049\000\053\000\ \053\000\053\000\053\000\053\000\053\000\053\000\053\000\053\000\ \053\000\112\000\048\000\000\000\111\000\000\000\000\000\000\000\ \053\000\053\000\053\000\053\000\053\000\053\000\069\000\069\000\ \069\000\069\000\069\000\069\000\069\000\069\000\069\000\069\000\ \000\000\115\000\000\000\000\000\049\000\000\000\114\000\117\000\ \000\000\116\000\048\000\000\000\000\000\000\000\000\000\000\000\ \053\000\053\000\053\000\053\000\053\000\053\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\053\000\053\000\053\000\ \053\000\053\000\053\000\053\000\053\000\053\000\053\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\053\000\053\000\ \053\000\053\000\053\000\053\000\000\000\000\000\000\000\000\000\ \000\000\046\000\070\000\070\000\070\000\070\000\070\000\070\000\ \070\000\070\000\070\000\070\000\000\000\000\000\000\000\128\000\ \000\000\000\000\135\000\000\000\053\000\000\000\053\000\053\000\ \053\000\053\000\053\000\053\000\000\000\000\000\000\000\113\000\ \000\000\047\000\000\000\045\000\000\000\000\000\000\000\038\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\136\000\032\000\032\000\032\000\032\000\032\000\032\000\ \032\000\032\000\039\000\000\000\000\000\039\000\039\000\039\000\ \000\000\000\000\000\000\039\000\039\000\000\000\039\000\039\000\ \039\000\129\000\129\000\129\000\129\000\129\000\129\000\129\000\ \129\000\129\000\129\000\039\000\000\000\039\000\039\000\039\000\ \043\000\039\000\130\000\130\000\130\000\130\000\130\000\130\000\ \130\000\130\000\130\000\130\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\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\000\ \042\000\000\000\042\000\042\000\042\000\042\000\042\000\042\000\ \042\000\042\000\042\000\042\000\042\000\042\000\042\000\042\000\ \042\000\042\000\042\000\042\000\042\000\042\000\042\000\042\000\ \042\000\042\000\042\000\042\000\056\000\039\000\039\000\039\000\ \000\000\039\000\039\000\039\000\000\000\000\000\000\000\039\000\ \039\000\080\000\039\000\039\000\039\000\141\000\141\000\141\000\ \141\000\141\000\141\000\141\000\141\000\141\000\141\000\039\000\ \000\000\039\000\039\000\039\000\039\000\039\000\000\000\000\000\ \080\000\123\000\123\000\123\000\123\000\123\000\123\000\123\000\ \123\000\123\000\123\000\000\000\000\000\000\000\000\000\000\000\ \079\000\079\000\079\000\079\000\079\000\079\000\079\000\079\000\ \079\000\079\000\000\000\039\000\040\000\044\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\039\000\000\000\039\000\000\000\000\000\000\000\000\000\ \042\000\042\000\042\000\042\000\042\000\042\000\042\000\042\000\ \042\000\042\000\042\000\042\000\042\000\042\000\042\000\042\000\ \042\000\042\000\042\000\042\000\042\000\042\000\042\000\042\000\ \000\000\042\000\042\000\042\000\042\000\042\000\042\000\042\000\ \042\000\072\000\072\000\072\000\072\000\072\000\072\000\072\000\ \072\000\072\000\072\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\072\000\072\000\072\000\072\000\072\000\072\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\072\000\072\000\072\000\072\000\072\000\072\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\032\000\040\000\040\000\040\000\ \040\000\040\000\040\000\040\000\040\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\ \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\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\046\000\000\000\000\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\000\000\000\000\000\000\054\000\ \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\000\000\045\000\073\000\ \073\000\073\000\073\000\073\000\073\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\039\000\000\000\000\000\ \039\000\039\000\039\000\000\000\000\000\000\000\039\000\039\000\ \000\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\000\000\039\000\000\000\ \039\000\039\000\039\000\039\000\039\000\000\000\000\000\000\000\ \000\000\040\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\041\000\000\000\000\000\000\000\ \000\000\000\000\039\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\ \039\000\040\000\039\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\085\000\082\000\000\000\ \000\000\081\000\000\000\000\000\000\000\000\000\131\000\131\000\ \131\000\131\000\131\000\131\000\131\000\131\000\131\000\131\000\ \000\000\000\000\000\000\000\000\085\000\000\000\084\000\131\000\ \131\000\131\000\131\000\131\000\131\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\079\000\079\000\079\000\079\000\ \079\000\079\000\079\000\079\000\079\000\079\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\131\000\ \131\000\131\000\131\000\131\000\131\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\042\000\040\000\040\000\040\000\040\000\040\000\040\000\ \040\000\040\000\042\000\042\000\042\000\042\000\042\000\042\000\ \042\000\042\000\042\000\042\000\044\000\000\000\000\000\000\000\ \000\000\000\000\000\000\042\000\042\000\042\000\042\000\042\000\ \042\000\042\000\042\000\042\000\042\000\042\000\042\000\042\000\ \042\000\042\000\042\000\042\000\042\000\042\000\042\000\042\000\ \042\000\042\000\042\000\042\000\042\000\000\000\000\000\000\000\ \000\000\042\000\000\000\042\000\042\000\042\000\042\000\042\000\ \042\000\042\000\042\000\042\000\042\000\042\000\042\000\042\000\ \042\000\042\000\042\000\042\000\042\000\042\000\042\000\042\000\ \042\000\042\000\042\000\042\000\042\000\132\000\132\000\132\000\ \132\000\132\000\132\000\132\000\132\000\132\000\132\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\132\000\132\000\ \132\000\132\000\132\000\132\000\000\000\000\000\000\000\000\000\ \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\132\000\132\000\ \132\000\132\000\132\000\132\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\042\000\042\000\042\000\042\000\042\000\042\000\ \042\000\042\000\042\000\042\000\042\000\042\000\042\000\042\000\ \042\000\042\000\042\000\042\000\042\000\042\000\042\000\042\000\ \042\000\000\000\042\000\042\000\042\000\042\000\042\000\042\000\ \042\000\042\000\042\000\042\000\042\000\042\000\042\000\042\000\ \042\000\042\000\042\000\042\000\042\000\042\000\042\000\042\000\ \042\000\042\000\042\000\042\000\042\000\042\000\042\000\042\000\ \042\000\000\000\042\000\042\000\042\000\042\000\042\000\042\000\ \042\000\042\000\039\000\000\000\000\000\039\000\039\000\039\000\ \000\000\000\000\000\000\039\000\039\000\000\000\039\000\039\000\ \039\000\000\000\067\000\000\000\067\000\000\000\000\000\000\000\ \000\000\067\000\000\000\039\000\000\000\039\000\039\000\039\000\ \039\000\039\000\066\000\066\000\066\000\066\000\066\000\066\000\ \066\000\066\000\066\000\066\000\077\000\000\000\000\000\077\000\ \077\000\077\000\000\000\000\000\000\000\077\000\077\000\000\000\ \077\000\077\000\077\000\000\000\000\000\000\000\000\000\039\000\ \000\000\000\000\000\000\000\000\000\000\077\000\000\000\077\000\ \077\000\077\000\077\000\077\000\000\000\000\000\067\000\000\000\ \000\000\000\000\000\000\000\000\067\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\039\000\000\000\039\000\ \067\000\000\000\000\000\000\000\067\000\000\000\067\000\000\000\ \000\000\077\000\065\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\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\077\000\ \005\000\077\000\005\000\005\000\005\000\005\000\005\000\000\000\ \000\000\000\000\090\000\000\000\000\000\090\000\090\000\090\000\ \000\000\000\000\000\000\090\000\090\000\000\000\090\000\090\000\ \090\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\090\000\005\000\090\000\090\000\090\000\ \090\000\090\000\000\000\000\000\000\000\000\000\000\000\090\000\ \000\000\000\000\090\000\090\000\090\000\000\000\000\000\000\000\ \090\000\090\000\000\000\090\000\090\000\090\000\000\000\000\000\ \000\000\000\000\005\000\000\000\005\000\000\000\000\000\090\000\ \090\000\000\000\090\000\090\000\090\000\090\000\090\000\000\000\ \000\000\000\000\090\000\000\000\000\000\090\000\090\000\090\000\ \000\000\000\000\000\000\090\000\090\000\000\000\090\000\090\000\ \090\000\000\000\000\000\000\000\000\000\090\000\000\000\090\000\ \000\000\000\000\255\255\090\000\090\000\090\000\090\000\090\000\ \090\000\090\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\090\000\000\000\090\000\000\000\005\000\090\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\090\000\000\000\090\000\ \000\000\005\000\005\000\005\000\005\000\005\000\005\000\005\000\ \000\000\000\000\000\000\107\000\000\000\000\000\107\000\107\000\ \107\000\000\000\000\000\000\000\107\000\107\000\000\000\107\000\ \107\000\107\000\000\000\000\000\000\000\000\000\000\000\000\000\ \005\000\000\000\005\000\000\000\107\000\005\000\107\000\107\000\ \107\000\107\000\107\000\000\000\000\000\000\000\107\000\000\000\ \000\000\107\000\107\000\107\000\000\000\000\000\000\000\107\000\ \107\000\000\000\107\000\107\000\107\000\000\000\000\000\127\000\ \000\000\127\000\000\000\005\000\000\000\005\000\127\000\107\000\ \107\000\107\000\107\000\107\000\107\000\107\000\000\000\126\000\ \126\000\126\000\126\000\126\000\126\000\126\000\126\000\126\000\ \126\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\107\000\000\000\ \107\000\000\000\000\000\107\000\000\000\000\000\000\000\000\000\ \000\000\000\000\140\000\000\000\000\000\139\000\000\000\000\000\ \000\000\000\000\000\000\127\000\000\000\000\000\000\000\000\000\ \000\000\127\000\000\000\000\000\000\000\000\000\000\000\000\000\ \115\000\107\000\115\000\107\000\000\000\127\000\000\000\115\000\ \000\000\127\000\000\000\127\000\000\000\000\000\000\000\125\000\ \138\000\138\000\138\000\138\000\138\000\138\000\138\000\138\000\ \138\000\138\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\142\000\142\000\142\000\142\000\142\000\142\000\ \142\000\142\000\142\000\142\000\115\000\000\000\000\000\000\000\ \000\000\000\000\115\000\142\000\142\000\142\000\142\000\142\000\ \142\000\000\000\000\000\000\000\000\000\000\000\115\000\000\000\ \000\000\000\000\115\000\000\000\115\000\000\000\000\000\000\000\ \137\000\041\000\041\000\041\000\041\000\041\000\041\000\041\000\ \041\000\041\000\041\000\142\000\142\000\142\000\142\000\142\000\ \142\000\000\000\041\000\041\000\041\000\041\000\041\000\041\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\041\000\041\000\041\000\041\000\041\000\041\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\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\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\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\037\000\000\000\000\000\081\000\087\000\ \111\000\083\000\086\000\135\000\083\000\086\000\150\000\255\255\ \255\255\255\255\255\255\255\255\145\000\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\013\000\017\000\018\000\024\000\017\000\017\000\026\000\ \036\000\059\000\048\000\036\000\048\000\050\000\050\000\048\000\ \048\000\048\000\048\000\048\000\048\000\048\000\048\000\048\000\ \048\000\061\000\067\000\024\000\070\000\073\000\075\000\036\000\ \051\000\051\000\051\000\051\000\051\000\051\000\051\000\051\000\ \116\000\117\000\120\000\024\000\024\000\024\000\024\000\024\000\ \024\000\024\000\024\000\024\000\024\000\057\000\057\000\057\000\ \057\000\057\000\057\000\057\000\057\000\057\000\057\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\122\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\060\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\003\000\127\000\130\000\003\000\003\000\003\000\083\000\ \086\000\121\000\003\000\003\000\132\000\003\000\003\000\003\000\ \143\000\144\000\145\000\084\000\060\000\140\000\084\000\147\000\ \139\000\139\000\003\000\149\000\003\000\003\000\003\000\003\000\ \003\000\255\255\255\255\255\255\004\000\146\000\121\000\004\000\ \004\000\004\000\255\255\084\000\140\000\004\000\004\000\139\000\ \004\000\004\000\004\000\255\255\255\255\255\255\085\000\085\000\ \148\000\027\000\085\000\255\255\027\000\004\000\003\000\004\000\ \004\000\004\000\004\000\004\000\255\255\255\255\255\255\005\000\ \255\255\255\255\005\000\005\000\005\000\085\000\255\255\085\000\ \005\000\005\000\255\255\005\000\005\000\005\000\027\000\255\255\ \255\255\255\255\255\255\255\255\003\000\255\255\003\000\255\255\ \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\255\255\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\027\000\255\255\007\000\255\255\255\255\ \007\000\007\000\007\000\255\255\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\255\255\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\ \255\255\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\ \255\255\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\084\000\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\146\000\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\085\000\148\000\027\000\ \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\ \114\000\019\000\019\000\114\000\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\114\000\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\055\000\ \055\000\255\255\114\000\019\000\255\255\019\000\255\255\025\000\ \023\000\025\000\025\000\025\000\025\000\025\000\029\000\255\255\ \029\000\029\000\029\000\029\000\029\000\029\000\029\000\029\000\ \029\000\029\000\255\255\055\000\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\029\000\023\000\255\255\ \023\000\255\255\255\255\025\000\029\000\255\255\055\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\055\000\255\255\055\000\255\255\029\000\ \255\255\255\255\255\255\030\000\255\255\029\000\030\000\255\255\ \255\255\025\000\255\255\025\000\029\000\030\000\029\000\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\ \030\000\255\255\255\255\030\000\255\255\255\255\030\000\255\255\ \255\255\255\255\255\255\255\255\255\255\030\000\255\255\030\000\ \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\114\000\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\049\000\049\000\049\000\ \049\000\049\000\049\000\049\000\049\000\049\000\049\000\052\000\ \052\000\052\000\052\000\052\000\052\000\052\000\052\000\052\000\ \052\000\109\000\049\000\255\255\109\000\255\255\255\255\255\255\ \052\000\052\000\052\000\052\000\052\000\052\000\066\000\066\000\ \066\000\066\000\066\000\066\000\066\000\066\000\066\000\066\000\ \255\255\109\000\255\255\255\255\049\000\255\255\109\000\109\000\ \255\255\109\000\049\000\255\255\255\255\255\255\255\255\255\255\ \052\000\052\000\052\000\052\000\052\000\052\000\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\053\000\053\000\053\000\ \053\000\053\000\053\000\053\000\053\000\053\000\053\000\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\053\000\053\000\ \053\000\053\000\053\000\053\000\255\255\255\255\255\255\255\255\ \255\255\053\000\069\000\069\000\069\000\069\000\069\000\069\000\ \069\000\069\000\069\000\069\000\255\255\255\255\255\255\134\000\ \255\255\255\255\134\000\255\255\053\000\255\255\053\000\053\000\ \053\000\053\000\053\000\053\000\255\255\255\255\255\255\109\000\ \255\255\053\000\255\255\053\000\255\255\255\255\255\255\134\000\ \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\134\000\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\126\000\126\000\126\000\126\000\126\000\126\000\126\000\ \126\000\126\000\126\000\033\000\255\255\033\000\033\000\033\000\ \033\000\033\000\129\000\129\000\129\000\129\000\129\000\129\000\ \129\000\129\000\129\000\129\000\255\255\056\000\056\000\056\000\ \056\000\056\000\056\000\056\000\056\000\056\000\056\000\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\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\056\000\033\000\034\000\033\000\ \255\255\034\000\034\000\034\000\255\255\255\255\255\255\034\000\ \034\000\080\000\034\000\034\000\034\000\138\000\138\000\138\000\ \138\000\138\000\138\000\138\000\138\000\138\000\138\000\034\000\ \255\255\034\000\034\000\034\000\034\000\034\000\255\255\255\255\ \080\000\141\000\141\000\141\000\141\000\141\000\141\000\141\000\ \141\000\141\000\141\000\255\255\255\255\255\255\255\255\255\255\ \080\000\080\000\080\000\080\000\080\000\080\000\080\000\080\000\ \080\000\080\000\255\255\034\000\034\000\134\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\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\065\000\065\000\065\000\065\000\065\000\065\000\065\000\ \065\000\065\000\065\000\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\065\000\065\000\065\000\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\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\065\000\065\000\065\000\065\000\065\000\065\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\ \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\ \255\255\255\255\255\255\255\255\255\255\255\255\072\000\072\000\ \072\000\072\000\072\000\072\000\072\000\072\000\072\000\072\000\ \255\255\255\255\255\255\255\255\054\000\255\255\255\255\072\000\ \072\000\072\000\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\054\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\054\000\255\255\054\000\072\000\ \072\000\072\000\072\000\072\000\072\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\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\039\000\255\255\255\255\ \039\000\039\000\039\000\255\255\255\255\255\255\039\000\039\000\ \255\255\039\000\039\000\039\000\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\039\000\255\255\ \039\000\039\000\039\000\039\000\039\000\255\255\255\255\255\255\ \255\255\040\000\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\255\255\255\255\255\255\ \255\255\255\255\039\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\255\255\255\255\ \039\000\040\000\039\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\079\000\079\000\255\255\ \255\255\079\000\255\255\255\255\255\255\255\255\125\000\125\000\ \125\000\125\000\125\000\125\000\125\000\125\000\125\000\125\000\ \255\255\255\255\255\255\255\255\079\000\255\255\079\000\125\000\ \125\000\125\000\125\000\125\000\125\000\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\079\000\079\000\079\000\079\000\ \079\000\079\000\079\000\079\000\079\000\079\000\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\125\000\ \125\000\125\000\125\000\125\000\125\000\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\042\000\040\000\040\000\040\000\040\000\040\000\040\000\ \040\000\040\000\042\000\042\000\042\000\042\000\042\000\042\000\ \042\000\042\000\042\000\042\000\042\000\255\255\255\255\255\255\ \255\255\255\255\255\255\042\000\042\000\042\000\042\000\042\000\ \042\000\042\000\042\000\042\000\042\000\042\000\042\000\042\000\ \042\000\042\000\042\000\042\000\042\000\042\000\042\000\042\000\ \042\000\042\000\042\000\042\000\042\000\255\255\255\255\255\255\ \255\255\042\000\255\255\042\000\042\000\042\000\042\000\042\000\ \042\000\042\000\042\000\042\000\042\000\042\000\042\000\042\000\ \042\000\042\000\042\000\042\000\042\000\042\000\042\000\042\000\ \042\000\042\000\042\000\042\000\042\000\131\000\131\000\131\000\ \131\000\131\000\131\000\131\000\131\000\131\000\131\000\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\131\000\131\000\ \131\000\131\000\131\000\131\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\079\000\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\131\000\131\000\ \131\000\131\000\131\000\131\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\042\000\042\000\042\000\042\000\042\000\042\000\ \042\000\042\000\042\000\042\000\042\000\042\000\042\000\042\000\ \042\000\042\000\042\000\042\000\042\000\042\000\042\000\042\000\ \042\000\255\255\042\000\042\000\042\000\042\000\042\000\042\000\ \042\000\042\000\042\000\042\000\042\000\042\000\042\000\042\000\ \042\000\042\000\042\000\042\000\042\000\042\000\042\000\042\000\ \042\000\042\000\042\000\042\000\042\000\042\000\042\000\042\000\ \042\000\255\255\042\000\042\000\042\000\042\000\042\000\042\000\ \042\000\042\000\043\000\255\255\255\255\043\000\043\000\043\000\ \255\255\255\255\255\255\043\000\043\000\255\255\043\000\043\000\ \043\000\255\255\058\000\255\255\058\000\255\255\255\255\255\255\ \255\255\058\000\255\255\043\000\255\255\043\000\043\000\043\000\ \043\000\043\000\058\000\058\000\058\000\058\000\058\000\058\000\ \058\000\058\000\058\000\058\000\077\000\255\255\255\255\077\000\ \077\000\077\000\255\255\255\255\255\255\077\000\077\000\255\255\ \077\000\077\000\077\000\255\255\255\255\255\255\255\255\043\000\ \255\255\255\255\255\255\255\255\255\255\077\000\255\255\077\000\ \077\000\077\000\077\000\077\000\255\255\255\255\058\000\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\043\000\255\255\043\000\ \058\000\255\255\255\255\255\255\058\000\255\255\058\000\255\255\ \255\255\077\000\058\000\255\255\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\255\255\255\255\255\255\077\000\ \089\000\077\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\255\255\090\000\090\000\255\255\090\000\090\000\ \090\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\090\000\089\000\090\000\090\000\090\000\ \090\000\090\000\255\255\255\255\255\255\255\255\255\255\091\000\ \255\255\255\255\091\000\091\000\091\000\255\255\255\255\255\255\ \091\000\091\000\255\255\091\000\091\000\091\000\255\255\255\255\ \255\255\255\255\089\000\255\255\089\000\255\255\255\255\090\000\ \091\000\255\255\091\000\091\000\091\000\091\000\091\000\255\255\ \255\255\255\255\092\000\255\255\255\255\092\000\092\000\092\000\ \255\255\255\255\255\255\092\000\092\000\255\255\092\000\092\000\ \092\000\255\255\255\255\255\255\255\255\090\000\255\255\090\000\ \255\255\255\255\058\000\092\000\091\000\092\000\092\000\092\000\ \092\000\092\000\255\255\255\255\255\255\098\000\255\255\255\255\ \098\000\098\000\098\000\255\255\255\255\255\255\098\000\098\000\ \255\255\098\000\098\000\098\000\255\255\255\255\255\255\255\255\ \255\255\255\255\091\000\255\255\091\000\255\255\098\000\092\000\ \098\000\098\000\098\000\098\000\098\000\255\255\255\255\255\255\ \104\000\255\255\255\255\104\000\104\000\104\000\255\255\255\255\ \255\255\104\000\104\000\255\255\104\000\104\000\104\000\255\255\ \255\255\255\255\255\255\255\255\255\255\092\000\255\255\092\000\ \255\255\104\000\098\000\104\000\104\000\104\000\104\000\104\000\ \255\255\255\255\255\255\107\000\255\255\255\255\107\000\107\000\ \107\000\255\255\255\255\255\255\107\000\107\000\255\255\107\000\ \107\000\107\000\255\255\255\255\255\255\255\255\255\255\255\255\ \098\000\255\255\098\000\255\255\107\000\104\000\107\000\107\000\ \107\000\107\000\107\000\255\255\255\255\255\255\108\000\255\255\ \255\255\108\000\108\000\108\000\255\255\255\255\255\255\108\000\ \108\000\255\255\108\000\108\000\108\000\255\255\255\255\119\000\ \255\255\119\000\255\255\104\000\255\255\104\000\119\000\108\000\ \107\000\108\000\108\000\108\000\108\000\108\000\255\255\119\000\ \119\000\119\000\119\000\119\000\119\000\119\000\119\000\119\000\ \119\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\107\000\255\255\ \107\000\255\255\255\255\108\000\255\255\255\255\255\255\255\255\ \255\255\255\255\136\000\255\255\255\255\136\000\255\255\255\255\ \255\255\255\255\255\255\119\000\255\255\255\255\255\255\255\255\ \255\255\119\000\255\255\255\255\255\255\255\255\255\255\255\255\ \136\000\108\000\136\000\108\000\255\255\119\000\255\255\136\000\ \255\255\119\000\255\255\119\000\255\255\255\255\255\255\119\000\ \136\000\136\000\136\000\136\000\136\000\136\000\136\000\136\000\ \136\000\136\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\137\000\137\000\137\000\137\000\137\000\137\000\ \137\000\137\000\137\000\137\000\136\000\255\255\255\255\255\255\ \255\255\255\255\136\000\137\000\137\000\137\000\137\000\137\000\ \137\000\255\255\255\255\255\255\255\255\255\255\136\000\255\255\ \255\255\255\255\136\000\255\255\136\000\255\255\255\255\255\255\ \136\000\142\000\142\000\142\000\142\000\142\000\142\000\142\000\ \142\000\142\000\142\000\137\000\137\000\137\000\137\000\137\000\ \137\000\255\255\142\000\142\000\142\000\142\000\142\000\142\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\142\000\142\000\142\000\142\000\142\000\142\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\ \136\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"; Lexing.lex_base_code = "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\010\000\ \036\000\000\000\012\000\000\000\000\000\002\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\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \001\000\000\000\000\000\002\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_backtrk_code = "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\012\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\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\039\000\039\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000"; Lexing.lex_default_code = "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\019\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\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_trans_code = "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\001\000\000\000\036\000\036\000\000\000\036\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \001\000\000\000\000\000\001\000\022\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\007\000\001\000\000\000\000\000\ \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ \004\000\004\000\004\000\004\000\001\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\004\000\004\000\004\000\004\000\ \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\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_code = "\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\024\000\084\000\136\000\139\000\084\000\136\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\ \024\000\255\255\084\000\000\000\085\000\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\079\000\080\000\255\255\255\255\ \024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\ \024\000\024\000\079\000\079\000\079\000\079\000\079\000\079\000\ \079\000\079\000\079\000\079\000\080\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\080\000\080\000\080\000\080\000\ \080\000\080\000\080\000\080\000\080\000\080\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\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \084\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"; Lexing.lex_code = "\255\004\255\255\005\255\255\007\255\006\255\255\003\255\000\004\ \001\005\255\007\255\255\006\255\007\255\255\000\004\001\005\003\ \006\002\007\255\001\255\255\000\001\255"; } let rec token lexbuf = lexbuf.Lexing.lex_mem <- Array.create 8 (-1) ; __ocaml_lex_token_rec lexbuf 0 and __ocaml_lex_token_rec lexbuf __ocaml_lex_state = match Lexing.new_engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 233 "parsing/lexer.mll" ( update_loc lexbuf None 1 false 0; token lexbuf ) # 1142 "parsing/lexer.ml" | 1 -> # 237 "parsing/lexer.mll" ( token lexbuf ) # 1147 "parsing/lexer.ml" | 2 -> # 239 "parsing/lexer.mll" ( UNDERSCORE ) # 1152 "parsing/lexer.ml" | 3 -> # 240 "parsing/lexer.mll" ( TILDE ) # 1157 "parsing/lexer.ml" | 4 -> # 242 "parsing/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, Location.curr lexbuf)); LABEL name ) # 1166 "parsing/lexer.ml" | 5 -> # 247 "parsing/lexer.mll" ( QUESTION ) # 1171 "parsing/lexer.ml" | 6 -> # 248 "parsing/lexer.mll" ( QUESTIONQUESTION ) # 1176 "parsing/lexer.ml" | 7 -> # 250 "parsing/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, Location.curr lexbuf)); OPTLABEL name ) # 1185 "parsing/lexer.ml" | 8 -> # 256 "parsing/lexer.mll" ( let s = Lexing.lexeme lexbuf in try Hashtbl.find keyword_table s with Not_found -> LIDENT s ) # 1194 "parsing/lexer.ml" | 9 -> # 262 "parsing/lexer.mll" ( UIDENT(Lexing.lexeme lexbuf) ) # 1199 "parsing/lexer.ml" | 10 -> # 264 "parsing/lexer.mll" ( try INT (int_of_string(Lexing.lexeme lexbuf)) with Failure _ -> raise (Error(Literal_overflow "int", Location.curr lexbuf)) ) # 1208 "parsing/lexer.ml" | 11 -> # 270 "parsing/lexer.mll" ( FLOAT (remove_underscores(Lexing.lexeme lexbuf)) ) # 1213 "parsing/lexer.ml" | 12 -> # 272 "parsing/lexer.mll" ( let s = Lexing.lexeme lexbuf in try INT32 (Int32.of_string(String.sub s 0 (String.length s - 1))) with Failure _ -> raise (Error(Literal_overflow "int32", Location.curr lexbuf)) ) # 1222 "parsing/lexer.ml" | 13 -> # 278 "parsing/lexer.mll" ( let s = Lexing.lexeme lexbuf in try INT64 (Int64.of_string(String.sub s 0 (String.length s - 1))) with Failure _ -> raise (Error(Literal_overflow "int64", Location.curr lexbuf)) ) # 1231 "parsing/lexer.ml" | 14 -> # 284 "parsing/lexer.mll" ( let s = Lexing.lexeme lexbuf in try NATIVEINT (Nativeint.of_string(String.sub s 0 (String.length s - 1))) with Failure _ -> raise (Error(Literal_overflow "nativeint", Location.curr lexbuf)) ) # 1241 "parsing/lexer.ml" | 15 -> # 291 "parsing/lexer.mll" ( reset_string_buffer(); let string_start = lexbuf.lex_start_p in string_start_loc := Location.curr lexbuf; string lexbuf; lexbuf.lex_start_p <- string_start; STRING (get_stored_string()) ) # 1251 "parsing/lexer.ml" | 16 -> # 298 "parsing/lexer.mll" ( update_loc lexbuf None 1 false 1; CHAR (Lexing.lexeme_char lexbuf 1) ) # 1257 "parsing/lexer.ml" | 17 -> # 301 "parsing/lexer.mll" ( CHAR(Lexing.lexeme_char lexbuf 1) ) # 1262 "parsing/lexer.ml" | 18 -> # 303 "parsing/lexer.mll" ( CHAR(char_for_backslash (Lexing.lexeme_char lexbuf 2)) ) # 1267 "parsing/lexer.ml" | 19 -> # 305 "parsing/lexer.mll" ( CHAR(char_for_decimal_code lexbuf 2) ) # 1272 "parsing/lexer.ml" | 20 -> # 307 "parsing/lexer.mll" ( CHAR(char_for_hexadecimal_code lexbuf 3) ) # 1277 "parsing/lexer.ml" | 21 -> # 309 "parsing/lexer.mll" ( let l = Lexing.lexeme lexbuf in let esc = String.sub l 1 (String.length l - 1) in raise (Error(Illegal_escape esc, Location.curr lexbuf)) ) # 1285 "parsing/lexer.ml" | 22 -> # 314 "parsing/lexer.mll" ( comment_start_loc := [Location.curr lexbuf]; comment lexbuf; token lexbuf ) # 1292 "parsing/lexer.ml" | 23 -> # 318 "parsing/lexer.mll" ( let loc = Location.curr lexbuf in Location.prerr_warning loc Warnings.Comment_start; comment_start_loc := [Location.curr lexbuf]; comment lexbuf; token lexbuf ) # 1302 "parsing/lexer.ml" | 24 -> # 325 "parsing/lexer.mll" ( let loc = Location.curr lexbuf in Location.prerr_warning loc Warnings.Comment_not_end; lexbuf.Lexing.lex_curr_pos <- lexbuf.Lexing.lex_curr_pos - 1; let curpos = lexbuf.lex_curr_p in lexbuf.lex_curr_p <- { curpos with pos_cnum = curpos.pos_cnum - 1 }; STAR ) # 1313 "parsing/lexer.ml" | 25 -> let num = Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_mem.(0) lexbuf.Lexing.lex_mem.(1) and name = Lexing.sub_lexeme_opt lexbuf lexbuf.Lexing.lex_mem.(3) lexbuf.Lexing.lex_mem.(2) in # 335 "parsing/lexer.mll" ( update_loc lexbuf name (int_of_string num) true 0; token lexbuf ) # 1323 "parsing/lexer.ml" | 26 -> # 338 "parsing/lexer.mll" ( SHARP ) # 1328 "parsing/lexer.ml" | 27 -> # 339 "parsing/lexer.mll" ( AMPERSAND ) # 1333 "parsing/lexer.ml" | 28 -> # 340 "parsing/lexer.mll" ( AMPERAMPER ) # 1338 "parsing/lexer.ml" | 29 -> # 341 "parsing/lexer.mll" ( BACKQUOTE ) # 1343 "parsing/lexer.ml" | 30 -> # 342 "parsing/lexer.mll" ( QUOTE ) # 1348 "parsing/lexer.ml" | 31 -> # 343 "parsing/lexer.mll" ( LPAREN ) # 1353 "parsing/lexer.ml" | 32 -> # 344 "parsing/lexer.mll" ( RPAREN ) # 1358 "parsing/lexer.ml" | 33 -> # 345 "parsing/lexer.mll" ( STAR ) # 1363 "parsing/lexer.ml" | 34 -> # 346 "parsing/lexer.mll" ( COMMA ) # 1368 "parsing/lexer.ml" | 35 -> # 347 "parsing/lexer.mll" ( MINUSGREATER ) # 1373 "parsing/lexer.ml" | 36 -> # 348 "parsing/lexer.mll" ( DOT ) # 1378 "parsing/lexer.ml" | 37 -> # 349 "parsing/lexer.mll" ( DOTDOT ) # 1383 "parsing/lexer.ml" | 38 -> # 350 "parsing/lexer.mll" ( COLON ) # 1388 "parsing/lexer.ml" | 39 -> # 351 "parsing/lexer.mll" ( COLONCOLON ) # 1393 "parsing/lexer.ml" | 40 -> # 352 "parsing/lexer.mll" ( COLONEQUAL ) # 1398 "parsing/lexer.ml" | 41 -> # 353 "parsing/lexer.mll" ( COLONGREATER ) # 1403 "parsing/lexer.ml" | 42 -> # 354 "parsing/lexer.mll" ( SEMI ) # 1408 "parsing/lexer.ml" | 43 -> # 355 "parsing/lexer.mll" ( SEMISEMI ) # 1413 "parsing/lexer.ml" | 44 -> # 356 "parsing/lexer.mll" ( LESS ) # 1418 "parsing/lexer.ml" | 45 -> # 357 "parsing/lexer.mll" ( LESSMINUS ) # 1423 "parsing/lexer.ml" | 46 -> # 358 "parsing/lexer.mll" ( EQUAL ) # 1428 "parsing/lexer.ml" | 47 -> # 359 "parsing/lexer.mll" ( LBRACKET ) # 1433 "parsing/lexer.ml" | 48 -> # 360 "parsing/lexer.mll" ( LBRACKETBAR ) # 1438 "parsing/lexer.ml" | 49 -> # 361 "parsing/lexer.mll" ( LBRACKETLESS ) # 1443 "parsing/lexer.ml" | 50 -> # 362 "parsing/lexer.mll" ( LBRACKETGREATER ) # 1448 "parsing/lexer.ml" | 51 -> # 363 "parsing/lexer.mll" ( RBRACKET ) # 1453 "parsing/lexer.ml" | 52 -> # 364 "parsing/lexer.mll" ( LBRACE ) # 1458 "parsing/lexer.ml" | 53 -> # 365 "parsing/lexer.mll" ( LBRACELESS ) # 1463 "parsing/lexer.ml" | 54 -> # 366 "parsing/lexer.mll" ( BAR ) # 1468 "parsing/lexer.ml" | 55 -> # 367 "parsing/lexer.mll" ( BARBAR ) # 1473 "parsing/lexer.ml" | 56 -> # 368 "parsing/lexer.mll" ( BARRBRACKET ) # 1478 "parsing/lexer.ml" | 57 -> # 369 "parsing/lexer.mll" ( GREATER ) # 1483 "parsing/lexer.ml" | 58 -> # 370 "parsing/lexer.mll" ( GREATERRBRACKET ) # 1488 "parsing/lexer.ml" | 59 -> # 371 "parsing/lexer.mll" ( RBRACE ) # 1493 "parsing/lexer.ml" | 60 -> # 372 "parsing/lexer.mll" ( GREATERRBRACE ) # 1498 "parsing/lexer.ml" | 61 -> # 374 "parsing/lexer.mll" ( INFIXOP0 "!=" ) # 1503 "parsing/lexer.ml" | 62 -> # 375 "parsing/lexer.mll" ( PLUS ) # 1508 "parsing/lexer.ml" | 63 -> # 376 "parsing/lexer.mll" ( MINUS ) # 1513 "parsing/lexer.ml" | 64 -> # 377 "parsing/lexer.mll" ( MINUSDOT ) # 1518 "parsing/lexer.ml" | 65 -> # 380 "parsing/lexer.mll" ( PREFIXOP(Lexing.lexeme lexbuf) ) # 1523 "parsing/lexer.ml" | 66 -> # 382 "parsing/lexer.mll" ( PREFIXOP(Lexing.lexeme lexbuf) ) # 1528 "parsing/lexer.ml" | 67 -> # 384 "parsing/lexer.mll" ( INFIXOP0(Lexing.lexeme lexbuf) ) # 1533 "parsing/lexer.ml" | 68 -> # 386 "parsing/lexer.mll" ( INFIXOP1(Lexing.lexeme lexbuf) ) # 1538 "parsing/lexer.ml" | 69 -> # 388 "parsing/lexer.mll" ( INFIXOP2(Lexing.lexeme lexbuf) ) # 1543 "parsing/lexer.ml" | 70 -> # 390 "parsing/lexer.mll" ( INFIXOP4(Lexing.lexeme lexbuf) ) # 1548 "parsing/lexer.ml" | 71 -> # 392 "parsing/lexer.mll" ( INFIXOP3(Lexing.lexeme lexbuf) ) # 1553 "parsing/lexer.ml" | 72 -> # 393 "parsing/lexer.mll" ( EOF ) # 1558 "parsing/lexer.ml" | 73 -> # 395 "parsing/lexer.mll" ( raise (Error(Illegal_character (Lexing.lexeme_char lexbuf 0), Location.curr lexbuf)) ) # 1565 "parsing/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 109 and __ocaml_lex_comment_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 401 "parsing/lexer.mll" ( comment_start_loc := (Location.curr lexbuf) :: !comment_start_loc; comment lexbuf; ) # 1578 "parsing/lexer.ml" | 1 -> # 405 "parsing/lexer.mll" ( match !comment_start_loc with | [] -> assert false | [x] -> comment_start_loc := []; | _ :: l -> comment_start_loc := l; comment lexbuf; ) # 1588 "parsing/lexer.ml" | 2 -> # 412 "parsing/lexer.mll" ( reset_string_buffer(); string_start_loc := Location.curr lexbuf; begin try string lexbuf with Error (Unterminated_string, _) -> match !comment_start_loc with | [] -> assert false | loc :: _ -> comment_start_loc := []; raise (Error (Unterminated_string_in_comment, loc)) end; reset_string_buffer (); comment lexbuf ) # 1603 "parsing/lexer.ml" | 3 -> # 424 "parsing/lexer.mll" ( comment lexbuf ) # 1608 "parsing/lexer.ml" | 4 -> # 426 "parsing/lexer.mll" ( update_loc lexbuf None 1 false 1; comment lexbuf ) # 1615 "parsing/lexer.ml" | 5 -> # 430 "parsing/lexer.mll" ( comment lexbuf ) # 1620 "parsing/lexer.ml" | 6 -> # 432 "parsing/lexer.mll" ( comment lexbuf ) # 1625 "parsing/lexer.ml" | 7 -> # 434 "parsing/lexer.mll" ( comment lexbuf ) # 1630 "parsing/lexer.ml" | 8 -> # 436 "parsing/lexer.mll" ( comment lexbuf ) # 1635 "parsing/lexer.ml" | 9 -> # 438 "parsing/lexer.mll" ( match !comment_start_loc with | [] -> assert false | loc :: _ -> comment_start_loc := []; raise (Error (Unterminated_comment, loc)) ) # 1644 "parsing/lexer.ml" | 10 -> # 444 "parsing/lexer.mll" ( update_loc lexbuf None 1 false 0; comment lexbuf ) # 1651 "parsing/lexer.ml" | 11 -> # 448 "parsing/lexer.mll" ( comment lexbuf ) # 1656 "parsing/lexer.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_comment_rec lexbuf __ocaml_lex_state and string lexbuf = lexbuf.Lexing.lex_mem <- Array.create 2 (-1) ; __ocaml_lex_string_rec lexbuf 134 and __ocaml_lex_string_rec lexbuf __ocaml_lex_state = match Lexing.new_engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 452 "parsing/lexer.mll" ( () ) # 1667 "parsing/lexer.ml" | 1 -> let space = Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_mem.(0) lexbuf.Lexing.lex_curr_pos in # 454 "parsing/lexer.mll" ( update_loc lexbuf None 1 false (String.length space); string lexbuf ) # 1676 "parsing/lexer.ml" | 2 -> # 458 "parsing/lexer.mll" ( store_string_char(char_for_backslash(Lexing.lexeme_char lexbuf 1)); string lexbuf ) # 1682 "parsing/lexer.ml" | 3 -> # 461 "parsing/lexer.mll" ( store_string_char(char_for_decimal_code lexbuf 1); string lexbuf ) # 1688 "parsing/lexer.ml" | 4 -> # 464 "parsing/lexer.mll" ( store_string_char(char_for_hexadecimal_code lexbuf 2); string lexbuf ) # 1694 "parsing/lexer.ml" | 5 -> # 467 "parsing/lexer.mll" ( if in_comment () then string lexbuf else begin (* Should be an error, but we are very lax. raise (Error (Illegal_escape (Lexing.lexeme lexbuf), Location.curr lexbuf)) *) let loc = Location.curr lexbuf in Location.prerr_warning loc Warnings.Illegal_backslash; store_string_char (Lexing.lexeme_char lexbuf 0); store_string_char (Lexing.lexeme_char lexbuf 1); string lexbuf end ) # 1712 "parsing/lexer.ml" | 6 -> # 482 "parsing/lexer.mll" ( update_loc lexbuf None 1 false 0; let s = Lexing.lexeme lexbuf in for i = 0 to String.length s - 1 do store_string_char s.[i]; done; string lexbuf ) # 1723 "parsing/lexer.ml" | 7 -> # 490 "parsing/lexer.mll" ( raise (Error (Unterminated_string, !string_start_loc)) ) # 1728 "parsing/lexer.ml" | 8 -> # 492 "parsing/lexer.mll" ( store_string_char(Lexing.lexeme_char lexbuf 0); string lexbuf ) # 1734 "parsing/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 143 and __ocaml_lex_skip_sharp_bang_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 497 "parsing/lexer.mll" ( update_loc lexbuf None 3 false 0 ) # 1745 "parsing/lexer.ml" | 1 -> # 499 "parsing/lexer.mll" ( update_loc lexbuf None 1 false 0 ) # 1750 "parsing/lexer.ml" | 2 -> # 500 "parsing/lexer.mll" ( () ) # 1755 "parsing/lexer.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_skip_sharp_bang_rec lexbuf __ocaml_lex_state ;;