# 17 "lexer301.mll" open Misc type token = AMPERAMPER | AMPERSAND | AND | AS | ASSERT | BACKQUOTE | BAR | BARBAR | BARRBRACKET | BEGIN | CHAR of (char) | CLASS | COLON | COLONCOLON | COLONEQUAL | COLONGREATER | COMMA | CONSTRAINT | DO | DONE | DOT | DOTDOT | DOWNTO | ELSE | END | EOF | EQUAL | EXCEPTION | EXTERNAL | FALSE | FLOAT of (string) | FOR | FUN | FUNCTION | FUNCTOR | GREATER | GREATERRBRACE | GREATERRBRACKET | IF | IN | INCLUDE | INFIXOP0 of (string) | INFIXOP1 of (string) | INFIXOP2 of (string) | INFIXOP3 of (string) | INFIXOP4 of (string) | INHERIT | INITIALIZER | INT of (int) | LABEL of (string) | LAZY | LBRACE | LBRACELESS | LBRACKET | LBRACKETBAR | LBRACKETLESS | LESS | LESSMINUS | LET | LIDENT of (string) | LPAREN | MATCH | METHOD | MINUS | MINUSDOT | MINUSGREATER | MODULE | MUTABLE | NEW | OBJECT | OF | OPEN | OPTLABEL of (string) | OR | PARSER | PLUS | PREFIXOP of (string) | PRIVATE | QUESTION | QUESTION2 | QUOTE | RBRACE | RBRACKET | REC | RPAREN | SEMI | SEMISEMI | SHARP | SIG | STAR | STRING of (string) | STRUCT | THEN | TILDE | TO | TRUE | TRY | TYPE | UIDENT of (string) | UNDERSCORE | VAL | VIRTUAL | WHEN | WHILE | WITH type error = | Illegal_character of char | 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; "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 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 Char.chr(c land 0xFF) (* 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) | 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 ;; # 248 "lexer301.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\229\255\231\255\234\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\ \120\007\150\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\ \047\003\112\000\243\255\057\003\113\000\242\255\112\000\240\255\ \117\008\239\255\020\006\019\004\001\000\238\255\007\000\152\008\ \187\008\222\008\001\009\225\255\221\255\222\255\223\255\219\255\ \036\009\213\255\214\255\210\255\207\255\071\009\203\255\205\255\ \106\009\141\009\147\000\247\255\248\255\208\000\253\255\114\000\ \114\000\255\255\254\255\159\009\118\000\251\255\067\003\120\000\ \243\003\126\000\249\255\224\000\172\009\112\004\063\001\003\001\ \221\004"; 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\019\000\ \018\000\025\000\023\000\022\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\ \027\000\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\014\000\255\255\ \062\000\255\255\255\255\255\255\017\000\255\255\255\255\020\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"; 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\054\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\255\255\000\000\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\000\000\ \255\255\255\255\000\000\255\255\255\255\000\000\255\255\000\000\ \255\255\000\000\070\000\255\255\255\255\000\000\070\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\091\000\000\000\000\000\100\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\042\000\255\255\255\255\255\255\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\069\000\036\000\036\000\000\000\000\000\ \000\000\069\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\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\083\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\081\000\ \079\000\078\000\075\000\067\000\077\000\076\000\062\000\044\000\ \055\000\029\000\029\000\029\000\029\000\029\000\029\000\029\000\ \029\000\029\000\029\000\050\000\050\000\050\000\050\000\058\000\ \061\000\063\000\067\000\098\000\097\000\101\000\043\000\042\000\ \036\000\036\000\255\255\036\000\036\000\106\000\000\000\000\000\ \000\000\000\000\066\000\066\000\066\000\066\000\066\000\066\000\ \066\000\066\000\066\000\066\000\000\000\094\000\000\000\036\000\ \000\000\000\000\093\000\096\000\000\000\095\000\043\000\082\000\ \031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\ \031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\ \031\000\031\000\031\000\031\000\031\000\031\000\031\000\053\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\097\000\000\000\003\000\003\000\003\000\255\255\ \000\000\000\000\003\000\003\000\111\000\003\000\003\000\003\000\ \044\000\044\000\044\000\044\000\044\000\044\000\044\000\044\000\ \044\000\044\000\003\000\000\000\003\000\003\000\003\000\003\000\ \003\000\000\000\000\000\111\000\004\000\043\000\000\000\004\000\ \004\000\004\000\000\000\000\000\099\000\004\000\004\000\000\000\ \004\000\004\000\004\000\049\000\049\000\049\000\049\000\049\000\ \049\000\049\000\049\000\000\000\108\000\004\000\003\000\004\000\ \004\000\004\000\004\000\004\000\000\000\043\000\000\000\005\000\ \111\000\111\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\111\000\ \005\000\004\000\005\000\005\000\005\000\005\000\005\000\000\000\ \000\000\000\000\072\000\000\000\000\000\072\000\072\000\072\000\ \000\000\000\000\000\000\072\000\072\000\000\000\072\000\072\000\ \072\000\000\000\000\000\255\255\000\000\000\000\000\000\004\000\ \000\000\004\000\000\000\072\000\005\000\072\000\072\000\072\000\ \072\000\072\000\000\000\000\000\000\000\088\000\000\000\000\000\ \088\000\088\000\088\000\092\000\000\000\000\000\088\000\088\000\ \000\000\088\000\088\000\088\000\000\000\000\000\000\000\000\000\ \000\000\000\000\005\000\000\000\005\000\000\000\088\000\072\000\ \088\000\089\000\088\000\088\000\088\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\072\000\000\000\072\000\ \000\000\005\000\088\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\ \101\000\005\000\005\000\005\000\000\000\000\000\000\000\000\000\ \088\000\000\000\088\000\000\000\087\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\086\000\005\000\000\000\000\000\ \000\000\084\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\080\000\005\000\005\000\000\000\000\000\000\000\000\000\ \085\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\ \072\000\000\000\000\000\072\000\072\000\072\000\000\000\000\000\ \000\000\072\000\072\000\000\000\072\000\073\000\072\000\000\000\ \000\000\000\000\000\000\000\000\000\000\005\000\000\000\005\000\ \000\000\072\000\005\000\072\000\072\000\074\000\072\000\072\000\ \000\000\000\000\000\000\005\000\000\000\000\000\005\000\005\000\ \071\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\072\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\065\000\064\000\ \003\000\000\000\003\000\003\000\003\000\000\000\000\000\000\000\ \000\000\000\000\000\000\072\000\000\000\072\000\000\000\003\000\ \005\000\003\000\003\000\003\000\003\000\003\000\044\000\000\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\049\000\049\000\ \049\000\049\000\045\000\000\000\000\000\043\000\005\000\000\000\ \005\000\000\000\000\000\003\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\ \047\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\045\000\000\000\000\000\043\000\000\000\000\000\ \000\000\003\000\000\000\003\000\000\000\000\000\000\000\046\000\ \031\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \047\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\052\000\000\000\052\000\000\000\ \000\000\051\000\051\000\051\000\051\000\051\000\051\000\051\000\ \051\000\051\000\051\000\051\000\051\000\051\000\051\000\051\000\ \051\000\051\000\051\000\051\000\051\000\051\000\051\000\051\000\ \051\000\051\000\051\000\051\000\051\000\051\000\051\000\059\000\ \059\000\059\000\059\000\059\000\059\000\059\000\059\000\059\000\ \059\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\104\000\104\000\104\000\104\000\104\000\ \104\000\104\000\104\000\104\000\104\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\048\000\048\000\048\000\048\000\ \048\000\048\000\048\000\048\000\048\000\048\000\000\000\000\000\ \000\000\000\000\000\000\000\000\067\000\048\000\048\000\048\000\ \048\000\048\000\048\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\067\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\048\000\048\000\048\000\ \048\000\048\000\048\000\066\000\066\000\066\000\066\000\066\000\ \066\000\066\000\066\000\066\000\066\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\ \112\000\112\000\112\000\112\000\112\000\112\000\112\000\112\000\ \112\000\112\000\037\000\000\000\037\000\037\000\037\000\040\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\041\000\ \000\000\041\000\041\000\041\000\041\000\041\000\041\000\041\000\ \041\000\041\000\041\000\041\000\041\000\041\000\041\000\041\000\ \041\000\041\000\041\000\041\000\041\000\041\000\041\000\041\000\ \041\000\041\000\041\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\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\ \000\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\041\000\ \041\000\041\000\041\000\041\000\041\000\041\000\041\000\041\000\ \041\000\041\000\041\000\041\000\041\000\041\000\041\000\041\000\ \041\000\041\000\041\000\041\000\041\000\041\000\041\000\000\000\ \041\000\041\000\041\000\041\000\041\000\041\000\041\000\041\000\ \048\000\048\000\048\000\048\000\048\000\048\000\048\000\048\000\ \048\000\048\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\048\000\048\000\048\000\048\000\048\000\048\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\048\000\048\000\048\000\048\000\048\000\048\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\069\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\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\066\000\066\000\066\000\066\000\ \066\000\066\000\066\000\066\000\066\000\066\000\000\000\000\000\ \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\ \000\000\038\000\038\000\038\000\038\000\038\000\038\000\038\000\ \038\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\041\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\041\000\041\000\041\000\041\000\ \042\000\000\000\000\000\000\000\000\000\000\000\037\000\041\000\ \041\000\041\000\041\000\041\000\041\000\041\000\041\000\041\000\ \041\000\041\000\041\000\041\000\041\000\041\000\041\000\041\000\ \041\000\041\000\041\000\041\000\041\000\041\000\041\000\041\000\ \041\000\000\000\000\000\000\000\037\000\041\000\037\000\041\000\ \041\000\041\000\041\000\041\000\041\000\041\000\041\000\041\000\ \041\000\041\000\041\000\041\000\041\000\041\000\041\000\041\000\ \041\000\041\000\041\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\041\000\041\000\ \041\000\041\000\041\000\041\000\041\000\041\000\041\000\041\000\ \041\000\041\000\041\000\041\000\041\000\041\000\041\000\041\000\ \041\000\041\000\041\000\041\000\041\000\000\000\041\000\041\000\ \041\000\041\000\041\000\041\000\041\000\041\000\041\000\041\000\ \041\000\041\000\041\000\041\000\041\000\041\000\041\000\041\000\ \041\000\041\000\041\000\041\000\041\000\041\000\041\000\041\000\ \041\000\041\000\041\000\041\000\041\000\000\000\041\000\041\000\ \041\000\041\000\041\000\041\000\041\000\041\000\064\000\000\000\ \000\000\064\000\064\000\064\000\000\000\000\000\000\000\064\000\ \064\000\000\000\064\000\064\000\064\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\064\000\ \000\000\064\000\064\000\064\000\064\000\064\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\064\000\005\000\005\000\005\000\005\000\ \005\000\000\000\000\000\000\000\072\000\000\000\000\000\072\000\ \072\000\072\000\000\000\000\000\000\000\072\000\072\000\000\000\ \072\000\072\000\072\000\000\000\000\000\000\000\000\000\000\000\ \000\000\064\000\000\000\064\000\000\000\072\000\005\000\072\000\ \072\000\072\000\072\000\072\000\000\000\000\000\000\000\072\000\ \000\000\000\000\072\000\072\000\072\000\000\000\000\000\000\000\ \072\000\072\000\000\000\072\000\072\000\072\000\000\000\000\000\ \000\000\000\000\000\000\000\000\005\000\000\000\005\000\000\000\ \072\000\072\000\072\000\072\000\072\000\072\000\072\000\000\000\ \000\000\000\000\072\000\000\000\000\000\072\000\072\000\072\000\ \000\000\000\000\000\000\072\000\072\000\000\000\072\000\072\000\ \072\000\000\000\000\000\000\000\000\000\000\000\000\000\072\000\ \000\000\072\000\000\000\072\000\072\000\072\000\072\000\072\000\ \072\000\072\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\072\000\000\000\072\000\000\000\005\000\072\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\072\000\000\000\072\000\ \000\000\005\000\005\000\005\000\005\000\005\000\005\000\005\000\ \000\000\000\000\000\000\088\000\000\000\000\000\088\000\088\000\ \088\000\000\000\000\000\000\000\088\000\088\000\000\000\088\000\ \088\000\088\000\000\000\000\000\000\000\000\000\000\000\000\000\ \005\000\000\000\005\000\000\000\088\000\005\000\088\000\088\000\ \088\000\088\000\088\000\000\000\000\000\000\000\088\000\000\000\ \000\000\088\000\088\000\088\000\000\000\000\000\111\000\088\000\ \088\000\110\000\088\000\088\000\088\000\000\000\000\000\000\000\ \000\000\000\000\000\000\005\000\000\000\005\000\103\000\088\000\ \088\000\088\000\088\000\088\000\088\000\088\000\094\000\102\000\ \102\000\102\000\102\000\102\000\102\000\102\000\102\000\102\000\ \102\000\000\000\000\000\000\000\109\000\109\000\109\000\109\000\ \109\000\109\000\109\000\109\000\109\000\109\000\088\000\000\000\ \088\000\000\000\000\000\088\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\103\000\000\000\000\000\000\000\000\000\ \000\000\103\000\000\000\000\000\000\000\000\000\000\000\000\000\ \094\000\088\000\000\000\088\000\000\000\103\000\094\000\000\000\ \000\000\103\000\000\000\103\000\000\000\000\000\000\000\000\000\ \000\000\000\000\094\000\000\000\000\000\000\000\094\000\000\000\ \094\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\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\068\000\000\000\000\000\255\255\255\255\ \255\255\070\000\255\255\255\255\070\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\ \054\000\029\000\029\000\029\000\029\000\029\000\029\000\029\000\ \029\000\029\000\029\000\045\000\045\000\050\000\050\000\057\000\ \060\000\062\000\024\000\095\000\096\000\100\000\029\000\103\000\ \036\000\036\000\027\000\036\000\036\000\105\000\255\255\255\255\ \255\255\255\255\024\000\024\000\024\000\024\000\024\000\024\000\ \024\000\024\000\024\000\024\000\255\255\090\000\255\255\036\000\ \255\255\255\255\090\000\090\000\255\255\090\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\093\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\003\000\107\000\255\255\003\000\003\000\003\000\070\000\ \255\255\255\255\003\000\003\000\111\000\003\000\003\000\003\000\ \044\000\044\000\044\000\044\000\044\000\044\000\044\000\044\000\ \044\000\044\000\003\000\255\255\003\000\003\000\003\000\003\000\ \003\000\255\255\255\255\111\000\004\000\044\000\255\255\004\000\ \004\000\004\000\255\255\255\255\093\000\004\000\004\000\255\255\ \004\000\004\000\004\000\046\000\046\000\046\000\046\000\046\000\ \046\000\046\000\046\000\255\255\107\000\004\000\003\000\004\000\ \004\000\004\000\004\000\004\000\255\255\044\000\255\255\005\000\ \110\000\110\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\110\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\090\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\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\ \093\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\ \107\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\049\000\049\000\049\000\049\000\049\000\049\000\ \049\000\049\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\043\000\255\255\043\000\255\255\ \255\255\043\000\043\000\043\000\043\000\043\000\043\000\043\000\ \043\000\043\000\043\000\051\000\051\000\051\000\051\000\051\000\ \051\000\051\000\051\000\051\000\051\000\052\000\052\000\052\000\ \052\000\052\000\052\000\052\000\052\000\052\000\052\000\056\000\ \056\000\056\000\056\000\056\000\056\000\056\000\056\000\056\000\ \056\000\059\000\059\000\059\000\059\000\059\000\059\000\059\000\ \059\000\059\000\059\000\102\000\102\000\102\000\102\000\102\000\ \102\000\102\000\102\000\102\000\102\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\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\067\000\047\000\047\000\047\000\ \047\000\047\000\047\000\104\000\104\000\104\000\104\000\104\000\ \104\000\104\000\104\000\104\000\104\000\255\255\255\255\255\255\ \255\255\255\255\255\255\067\000\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\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\032\000\032\000\032\000\032\000\032\000\032\000\032\000\ \032\000\032\000\032\000\032\000\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\ \109\000\109\000\109\000\109\000\109\000\109\000\109\000\109\000\ \109\000\109\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\053\000\255\255\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\053\000\053\000\053\000\053\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\053\000\ \034\000\034\000\034\000\255\255\255\255\053\000\034\000\034\000\ \255\255\034\000\034\000\034\000\255\255\255\255\255\255\255\255\ \255\255\053\000\255\255\255\255\255\255\053\000\034\000\053\000\ \034\000\034\000\034\000\034\000\034\000\112\000\112\000\112\000\ \112\000\112\000\112\000\112\000\112\000\112\000\112\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\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\ \048\000\048\000\048\000\048\000\048\000\048\000\048\000\048\000\ \048\000\048\000\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\048\000\048\000\048\000\048\000\048\000\048\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\048\000\048\000\048\000\048\000\048\000\048\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\066\000\255\255\ \255\255\066\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\066\000\066\000\066\000\066\000\ \066\000\066\000\066\000\066\000\066\000\066\000\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\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\066\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\ \255\255\038\000\038\000\038\000\038\000\038\000\038\000\038\000\ \038\000\040\000\255\255\255\255\040\000\040\000\040\000\255\255\ \255\255\255\255\040\000\040\000\255\255\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\040\000\255\255\040\000\040\000\040\000\040\000\ \040\000\255\255\255\255\255\255\255\255\041\000\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\041\000\041\000\ \041\000\041\000\041\000\041\000\041\000\041\000\041\000\041\000\ \041\000\255\255\255\255\255\255\255\255\255\255\040\000\041\000\ \041\000\041\000\041\000\041\000\041\000\041\000\041\000\041\000\ \041\000\041\000\041\000\041\000\041\000\041\000\041\000\041\000\ \041\000\041\000\041\000\041\000\041\000\041\000\041\000\041\000\ \041\000\255\255\255\255\255\255\040\000\041\000\040\000\041\000\ \041\000\041\000\041\000\041\000\041\000\041\000\041\000\041\000\ \041\000\041\000\041\000\041\000\041\000\041\000\041\000\041\000\ \041\000\041\000\041\000\041\000\041\000\041\000\041\000\041\000\ \041\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\041\000\041\000\ \041\000\041\000\041\000\041\000\041\000\041\000\041\000\041\000\ \041\000\041\000\041\000\041\000\041\000\041\000\041\000\041\000\ \041\000\041\000\041\000\041\000\041\000\255\255\041\000\041\000\ \041\000\041\000\041\000\041\000\041\000\041\000\041\000\041\000\ \041\000\041\000\041\000\041\000\041\000\041\000\041\000\041\000\ \041\000\041\000\041\000\041\000\041\000\041\000\041\000\041\000\ \041\000\041\000\041\000\041\000\041\000\255\255\041\000\041\000\ \041\000\041\000\041\000\041\000\041\000\041\000\064\000\255\255\ \255\255\064\000\064\000\064\000\255\255\255\255\255\255\064\000\ \064\000\255\255\064\000\064\000\064\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\064\000\064\000\064\000\064\000\064\000\255\255\255\255\ \255\255\071\000\255\255\255\255\071\000\071\000\071\000\255\255\ \255\255\255\255\071\000\071\000\255\255\071\000\071\000\071\000\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\071\000\064\000\071\000\071\000\071\000\071\000\ \071\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\064\000\255\255\064\000\255\255\072\000\071\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\071\000\255\255\071\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\080\000\255\255\255\255\ \080\000\080\000\080\000\255\255\255\255\255\255\080\000\080\000\ \255\255\080\000\080\000\080\000\255\255\255\255\255\255\255\255\ \255\255\255\255\073\000\255\255\073\000\255\255\080\000\074\000\ \080\000\080\000\080\000\080\000\080\000\255\255\255\255\255\255\ \085\000\255\255\255\255\085\000\085\000\085\000\255\255\255\255\ \255\255\085\000\085\000\255\255\085\000\085\000\085\000\255\255\ \255\255\255\255\255\255\255\255\255\255\074\000\255\255\074\000\ \255\255\085\000\080\000\085\000\085\000\085\000\085\000\085\000\ \255\255\255\255\255\255\088\000\255\255\255\255\088\000\088\000\ \088\000\255\255\255\255\255\255\088\000\088\000\255\255\088\000\ \088\000\088\000\255\255\255\255\255\255\255\255\255\255\255\255\ \080\000\255\255\080\000\255\255\088\000\085\000\088\000\088\000\ \088\000\088\000\088\000\255\255\255\255\255\255\089\000\255\255\ \255\255\089\000\089\000\089\000\255\255\255\255\108\000\089\000\ \089\000\108\000\089\000\089\000\089\000\255\255\255\255\255\255\ \255\255\255\255\255\255\085\000\255\255\085\000\099\000\089\000\ \088\000\089\000\089\000\089\000\089\000\089\000\108\000\099\000\ \099\000\099\000\099\000\099\000\099\000\099\000\099\000\099\000\ \099\000\255\255\255\255\255\255\108\000\108\000\108\000\108\000\ \108\000\108\000\108\000\108\000\108\000\108\000\088\000\255\255\ \088\000\255\255\255\255\089\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\099\000\255\255\255\255\255\255\255\255\ \255\255\099\000\255\255\255\255\255\255\255\255\255\255\255\255\ \108\000\089\000\255\255\089\000\255\255\099\000\108\000\255\255\ \255\255\099\000\255\255\099\000\255\255\255\255\255\255\255\255\ \255\255\255\255\108\000\255\255\255\255\255\255\108\000\255\255\ \108\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 -> # 279 "lexer301.mll" ( token lexbuf ) # 1005 "lexer301.ml" | 1 -> # 281 "lexer301.mll" ( UNDERSCORE ) # 1010 "lexer301.ml" | 2 -> # 282 "lexer301.mll" ( TILDE ) # 1015 "lexer301.ml" | 3 -> # 284 "lexer301.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 ) # 1025 "lexer301.ml" | 4 -> # 290 "lexer301.mll" ( QUESTION ) # 1030 "lexer301.ml" | 5 -> # 292 "lexer301.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 ) # 1040 "lexer301.ml" | 6 -> # 299 "lexer301.mll" ( let s = Lexing.lexeme lexbuf in try Hashtbl.find keyword_table s with Not_found -> LIDENT s ) # 1049 "lexer301.ml" | 7 -> # 305 "lexer301.mll" ( UIDENT(Lexing.lexeme lexbuf) ) # 1054 "lexer301.ml" | 8 -> # 307 "lexer301.mll" ( INT (int_of_string(Lexing.lexeme lexbuf)) ) # 1059 "lexer301.ml" | 9 -> # 309 "lexer301.mll" ( FLOAT (Lexing.lexeme lexbuf) ) # 1064 "lexer301.ml" | 10 -> # 311 "lexer301.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()) ) # 1075 "lexer301.ml" | 11 -> # 319 "lexer301.mll" ( CHAR(Lexing.lexeme_char lexbuf 1) ) # 1080 "lexer301.ml" | 12 -> # 321 "lexer301.mll" ( CHAR(char_for_backslash (Lexing.lexeme_char lexbuf 2)) ) # 1085 "lexer301.ml" | 13 -> # 323 "lexer301.mll" ( CHAR(char_for_decimal_code lexbuf 2) ) # 1090 "lexer301.ml" | 14 -> # 325 "lexer301.mll" ( comment_start_pos := [Lexing.lexeme_start lexbuf]; comment lexbuf; token lexbuf ) # 1097 "lexer301.ml" | 15 -> # 329 "lexer301.mll" ( let loc = Location.curr lexbuf and warn = Warnings.Comment_start in Location.prerr_warning loc warn; comment_start_pos := [Lexing.lexeme_start lexbuf]; comment lexbuf; token lexbuf ) # 1109 "lexer301.ml" | 16 -> # 338 "lexer301.mll" ( let loc = Location.curr lexbuf and warn = Warnings.Comment_not_end in Location.prerr_warning loc warn; lexbuf.Lexing.lex_curr_pos <- lexbuf.Lexing.lex_curr_pos - 1; STAR ) # 1120 "lexer301.ml" | 17 -> # 347 "lexer301.mll" ( token lexbuf ) # 1125 "lexer301.ml" | 18 -> # 348 "lexer301.mll" ( SHARP ) # 1130 "lexer301.ml" | 19 -> # 349 "lexer301.mll" ( AMPERSAND ) # 1135 "lexer301.ml" | 20 -> # 350 "lexer301.mll" ( AMPERAMPER ) # 1140 "lexer301.ml" | 21 -> # 351 "lexer301.mll" ( BACKQUOTE ) # 1145 "lexer301.ml" | 22 -> # 352 "lexer301.mll" ( QUOTE ) # 1150 "lexer301.ml" | 23 -> # 353 "lexer301.mll" ( LPAREN ) # 1155 "lexer301.ml" | 24 -> # 354 "lexer301.mll" ( RPAREN ) # 1160 "lexer301.ml" | 25 -> # 355 "lexer301.mll" ( STAR ) # 1165 "lexer301.ml" | 26 -> # 356 "lexer301.mll" ( COMMA ) # 1170 "lexer301.ml" | 27 -> # 357 "lexer301.mll" ( QUESTION2 ) # 1175 "lexer301.ml" | 28 -> # 358 "lexer301.mll" ( MINUSGREATER ) # 1180 "lexer301.ml" | 29 -> # 359 "lexer301.mll" ( DOT ) # 1185 "lexer301.ml" | 30 -> # 360 "lexer301.mll" ( DOTDOT ) # 1190 "lexer301.ml" | 31 -> # 361 "lexer301.mll" ( COLON ) # 1195 "lexer301.ml" | 32 -> # 362 "lexer301.mll" ( COLONCOLON ) # 1200 "lexer301.ml" | 33 -> # 363 "lexer301.mll" ( COLONEQUAL ) # 1205 "lexer301.ml" | 34 -> # 364 "lexer301.mll" ( COLONGREATER ) # 1210 "lexer301.ml" | 35 -> # 365 "lexer301.mll" ( SEMI ) # 1215 "lexer301.ml" | 36 -> # 366 "lexer301.mll" ( SEMISEMI ) # 1220 "lexer301.ml" | 37 -> # 367 "lexer301.mll" ( LESS ) # 1225 "lexer301.ml" | 38 -> # 368 "lexer301.mll" ( LESSMINUS ) # 1230 "lexer301.ml" | 39 -> # 369 "lexer301.mll" ( EQUAL ) # 1235 "lexer301.ml" | 40 -> # 370 "lexer301.mll" ( LBRACKET ) # 1240 "lexer301.ml" | 41 -> # 371 "lexer301.mll" ( LBRACKETBAR ) # 1245 "lexer301.ml" | 42 -> # 372 "lexer301.mll" ( LBRACKETLESS ) # 1250 "lexer301.ml" | 43 -> # 373 "lexer301.mll" ( RBRACKET ) # 1255 "lexer301.ml" | 44 -> # 374 "lexer301.mll" ( LBRACE ) # 1260 "lexer301.ml" | 45 -> # 375 "lexer301.mll" ( LBRACELESS ) # 1265 "lexer301.ml" | 46 -> # 376 "lexer301.mll" ( BAR ) # 1270 "lexer301.ml" | 47 -> # 377 "lexer301.mll" ( BARBAR ) # 1275 "lexer301.ml" | 48 -> # 378 "lexer301.mll" ( BARRBRACKET ) # 1280 "lexer301.ml" | 49 -> # 379 "lexer301.mll" ( GREATER ) # 1285 "lexer301.ml" | 50 -> # 380 "lexer301.mll" ( GREATERRBRACKET ) # 1290 "lexer301.ml" | 51 -> # 381 "lexer301.mll" ( RBRACE ) # 1295 "lexer301.ml" | 52 -> # 382 "lexer301.mll" ( GREATERRBRACE ) # 1300 "lexer301.ml" | 53 -> # 384 "lexer301.mll" ( INFIXOP0 "!=" ) # 1305 "lexer301.ml" | 54 -> # 385 "lexer301.mll" ( PLUS ) # 1310 "lexer301.ml" | 55 -> # 386 "lexer301.mll" ( MINUS ) # 1315 "lexer301.ml" | 56 -> # 387 "lexer301.mll" ( MINUSDOT ) # 1320 "lexer301.ml" | 57 -> # 390 "lexer301.mll" ( PREFIXOP(Lexing.lexeme lexbuf) ) # 1325 "lexer301.ml" | 58 -> # 392 "lexer301.mll" ( PREFIXOP(Lexing.lexeme lexbuf) ) # 1330 "lexer301.ml" | 59 -> # 394 "lexer301.mll" ( INFIXOP0(Lexing.lexeme lexbuf) ) # 1335 "lexer301.ml" | 60 -> # 396 "lexer301.mll" ( INFIXOP1(Lexing.lexeme lexbuf) ) # 1340 "lexer301.ml" | 61 -> # 398 "lexer301.mll" ( INFIXOP2(Lexing.lexeme lexbuf) ) # 1345 "lexer301.ml" | 62 -> # 400 "lexer301.mll" ( INFIXOP4(Lexing.lexeme lexbuf) ) # 1350 "lexer301.ml" | 63 -> # 402 "lexer301.mll" ( INFIXOP3(Lexing.lexeme lexbuf) ) # 1355 "lexer301.ml" | 64 -> # 403 "lexer301.mll" ( EOF ) # 1360 "lexer301.ml" | 65 -> # 405 "lexer301.mll" ( raise (Error(Illegal_character ((Lexing.lexeme lexbuf).[0]), Lexing.lexeme_start lexbuf, Lexing.lexeme_end lexbuf)) ) # 1366 "lexer301.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 90 and __ocaml_lex_comment_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 410 "lexer301.mll" ( comment_start_pos := Lexing.lexeme_start lexbuf :: !comment_start_pos; comment lexbuf; ) # 1379 "lexer301.ml" | 1 -> # 414 "lexer301.mll" ( match !comment_start_pos with | [] -> assert false | [x] -> comment_start_pos := []; | _ :: l -> comment_start_pos := l; comment lexbuf; ) # 1389 "lexer301.ml" | 2 -> # 421 "lexer301.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 ) # 1402 "lexer301.ml" | 3 -> # 431 "lexer301.mll" ( comment lexbuf ) # 1407 "lexer301.ml" | 4 -> # 433 "lexer301.mll" ( comment lexbuf ) # 1412 "lexer301.ml" | 5 -> # 435 "lexer301.mll" ( comment lexbuf ) # 1417 "lexer301.ml" | 6 -> # 437 "lexer301.mll" ( comment lexbuf ) # 1422 "lexer301.ml" | 7 -> # 439 "lexer301.mll" ( let st = List.hd !comment_start_pos in raise (Error (Unterminated_comment, st, st + 2)); ) # 1429 "lexer301.ml" | 8 -> # 443 "lexer301.mll" ( comment lexbuf ) # 1434 "lexer301.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 107 and __ocaml_lex_string_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 447 "lexer301.mll" ( () ) # 1445 "lexer301.ml" | 1 -> # 449 "lexer301.mll" ( string lexbuf ) # 1450 "lexer301.ml" | 2 -> # 451 "lexer301.mll" ( store_string_char(char_for_backslash(Lexing.lexeme_char lexbuf 1)); string lexbuf ) # 1456 "lexer301.ml" | 3 -> # 454 "lexer301.mll" ( store_string_char(char_for_decimal_code lexbuf 1); string lexbuf ) # 1462 "lexer301.ml" | 4 -> # 457 "lexer301.mll" ( raise (Error (Unterminated_string, !string_start_pos, !string_start_pos+1)) ) # 1468 "lexer301.ml" | 5 -> # 460 "lexer301.mll" ( store_string_char(Lexing.lexeme_char lexbuf 0); string lexbuf ) # 1474 "lexer301.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_string_rec lexbuf __ocaml_lex_state ;;