# 1 "odoc_text_lexer.mll" (***********************************************************************) (* OCamldoc *) (* *) (* Maxence Guesdon, projet Cristal, INRIA Rocquencourt *) (* *) (* Copyright 2001 Institut National de Recherche en Informatique et *) (* en Automatique. All rights reserved. This file is distributed *) (* under the terms of the Q Public License version 1.0. *) (* *) (***********************************************************************) (* $Id: odoc_text_lexer.mll,v 1.8.10.1 2005/11/07 15:59:04 doligez Exp $ *) (** The lexer for string to build text structures. *) open Lexing open Odoc_text_parser let line_number = ref 0 let char_number = ref 0 let string_buffer = Buffer.create 32 (** Fonction de remise à zéro de la chaine de caractères tampon *) let reset_string_buffer () = Buffer.reset string_buffer (** Fonction d'ajout d'un caractère dans la chaine de caractères tampon *) let ajout_char_string = Buffer.add_char string_buffer (** Add a string to the buffer. *) let ajout_string = Buffer.add_string string_buffer let lecture_string () = Buffer.contents string_buffer (** the variable which will contain the description string. Is initialized when we encounter the start of a special comment. *) let description = ref "" let blank = "[ \013\009\012]" let print_DEBUG s = print_string s; print_newline () (** this flag indicates whether we're in a string between begin_code and end_code tokens, to remember the number of open '[' and handle ']' correctly. *) let open_brackets = ref 0 (** this flag indicates if we're in verbatim mode or not, to handle any special expression like a string when we're in verbatim mode.*) let verb_mode = ref false (** this flag indicates if we're in latex mode or not, to handle any special expression like a string when we're in latex mode.*) let latex_mode = ref false (** this flag indicates if we're in shortcut list mode or not, to handle end_shortcut_list correctly.*) let shortcut_list_mode = ref false (** this flag indicates if we're in an element reference. *) let ele_ref_mode = ref false (** this flag indicates if we're in a preformatted code string. *) let code_pre_mode = ref false let init () = open_brackets := 0; verb_mode := false; latex_mode := false; shortcut_list_mode := false; ele_ref_mode := false ; code_pre_mode := false ; line_number := 0 ; char_number := 0 let incr_cpts lexbuf = let s = Lexing.lexeme lexbuf in let l = Str.split_delim (Str.regexp_string "\n") s in match List.rev l with [] -> () (* should not occur *) | [s2] -> (* no newline *) char_number := !char_number + (String.length s2) | s2 :: _ -> line_number := !line_number + ((List.length l) - 1) ; char_number := String.length s2 # 92 "odoc_text_lexer.ml" let __ocaml_lex_tables = { Lexing.lex_base = "\000\000\210\255\213\255\000\000\006\000\001\000\001\000\002\000\ \083\000\000\000\254\255\019\000\255\255\001\000\001\000\005\000\ \018\000\000\000\001\000\159\000\153\000\148\000\002\000\006\000\ \007\000\191\000\002\000\003\000\223\000\006\000\007\000\008\000\ \003\000\011\000\006\000\074\000\065\000\016\000\149\000\018\000\ \236\255\238\000\253\255\252\255\251\255\153\000\144\000\139\000\ \159\000\148\000\022\000\246\255\162\000\024\000\026\000\243\255\ \033\000\242\255\034\000\241\255\253\000\111\001\142\001\007\000\ \011\000\001\000\220\001\039\002\114\002\228\002\086\003\200\003\ \016\000\116\001\058\004\000\000\172\004\030\005\144\005\106\005\ \220\005\078\006\250\255\249\255\248\255\247\255\245\255\244\255\ \192\006\050\007\164\007\240\255\005\000\235\255\031\000\000\000\ \029\000\038\000\123\000\056\000\112\000\005\000\003\000\232\255\ \221\000\221\007\166\000\163\000\161\000\189\000\082\001\204\000\ \220\000\194\002\221\000\222\000\234\000\234\000\229\000\246\000\ \234\000\236\000\191\000\001\000\137\001\230\255\199\000\213\000\ \003\001\252\001\229\255\250\000\021\001\015\001\024\001\036\001\ \031\001\034\001\087\001\254\002\228\255\037\001\056\001\041\001\ \049\001\063\001\071\001\148\001\115\001\003\003\227\255\091\003\ \220\255\063\001\102\001\146\001\096\003\226\255\101\001\096\001\ \134\001\177\001\101\003\222\255\139\001\122\001\123\001\195\001\ \119\001\112\003\225\255\130\001\143\001\187\001\117\003\224\255\ \130\001\134\001\144\001\152\001\135\001\138\001\154\001\198\001\ \205\003\223\255\160\001\150\001\173\001\168\001\170\001\223\001\ \210\003\221\255\182\001\182\001\192\001\205\001\209\001\200\001\ \200\001\228\001\219\255\218\255\239\255\005\000\238\255\031\002\ \020\002\032\002\032\002\040\002\233\255\215\003\002\000\003\000\ \073\004\234\001\217\255\216\255\215\255\226\003"; Lexing.lex_backtrk = "\255\255\255\255\255\255\045\000\045\000\019\000\018\000\045\000\ \044\000\045\000\255\255\045\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\043\000\043\000\024\000\021\000\ \255\255\255\255\043\000\043\000\043\000\043\000\043\000\043\000\ \008\000\007\000\043\000\255\255\043\000\043\000\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \012\000\013\000\043\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\ \024\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\025\000\255\255\255\255\255\255\ \255\255\026\000\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\027\000\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\028\000\255\255\035\000\ \255\255\255\255\255\255\255\255\029\000\255\255\255\255\255\255\ \255\255\255\255\033\000\255\255\255\255\255\255\255\255\255\255\ \255\255\030\000\255\255\255\255\255\255\255\255\031\000\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \032\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \034\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\041\000\255\255\255\255\ \255\255\255\255\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\ \255\255\255\255\000\000\255\255\000\000\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \000\000\255\255\000\000\000\000\000\000\255\255\255\255\255\255\ \255\255\255\255\255\255\000\000\255\255\255\255\255\255\000\000\ \255\255\000\000\255\255\000\000\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\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\000\000\000\000\000\000\000\000\000\000\ \255\255\255\255\255\255\000\000\255\255\000\000\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\000\000\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\000\000\255\255\255\255\ \255\255\255\255\000\000\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\000\000\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\000\000\255\255\ \000\000\255\255\255\255\255\255\255\255\000\000\255\255\255\255\ \255\255\255\255\255\255\000\000\255\255\255\255\255\255\255\255\ \255\255\255\255\000\000\255\255\255\255\255\255\255\255\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\255\255\255\255\255\255\255\255\ \255\255\000\000\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\000\000\000\000\000\000\255\255\000\000\255\255\ \255\255\255\255\255\255\255\255\000\000\255\255\255\255\255\255\ \255\255\255\255\000\000\000\000\000\000\255\255"; Lexing.lex_trans = "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\003\000\004\000\000\000\003\000\003\000\000\000\216\000\ \213\000\000\000\216\000\216\000\091\000\091\000\000\000\091\000\ \091\000\085\000\085\000\000\000\085\000\085\000\000\000\000\000\ \003\000\059\000\220\000\219\000\000\000\007\000\216\000\000\000\ \000\000\000\000\000\000\091\000\000\000\000\000\000\000\020\000\ \085\000\214\000\105\000\215\000\207\000\000\000\000\000\000\000\ \000\000\000\000\082\000\124\000\009\000\205\000\044\000\043\000\ \010\000\010\000\018\000\016\000\010\000\010\000\010\000\038\000\ \019\000\017\000\058\000\031\000\013\000\056\000\010\000\014\000\ \040\000\054\000\030\000\029\000\051\000\015\000\006\000\046\000\ \055\000\034\000\035\000\006\000\011\000\005\000\206\000\057\000\ \059\000\045\000\018\000\016\000\092\000\186\000\122\000\038\000\ \019\000\017\000\058\000\031\000\013\000\056\000\012\000\014\000\ \012\000\054\000\030\000\029\000\062\000\015\000\217\000\046\000\ \064\000\034\000\035\000\008\000\217\000\010\000\212\000\204\000\ \065\000\045\000\093\000\078\000\078\000\078\000\078\000\078\000\ \078\000\078\000\078\000\078\000\078\000\194\000\012\000\036\000\ \012\000\176\000\164\000\037\000\060\000\060\000\071\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\070\000\ \060\000\060\000\060\000\060\000\060\000\069\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\063\000\036\000\ \131\000\073\000\072\000\037\000\060\000\077\000\060\000\060\000\ \074\000\060\000\060\000\060\000\076\000\060\000\060\000\066\000\ \060\000\060\000\067\000\060\000\060\000\060\000\060\000\060\000\ \068\000\061\000\060\000\060\000\060\000\060\000\075\000\041\000\ \041\000\041\000\041\000\041\000\041\000\041\000\041\000\041\000\ \041\000\033\000\039\000\027\000\021\000\052\000\047\000\048\000\ \141\000\025\000\026\000\032\000\049\000\022\000\050\000\053\000\ \023\000\126\000\142\000\117\000\116\000\115\000\024\000\028\000\ \028\000\028\000\028\000\028\000\028\000\028\000\028\000\028\000\ \028\000\033\000\039\000\027\000\021\000\052\000\047\000\048\000\ \002\000\025\000\026\000\032\000\049\000\022\000\050\000\053\000\ \023\000\114\000\103\000\117\000\116\000\115\000\024\000\028\000\ \028\000\028\000\028\000\028\000\028\000\028\000\028\000\028\000\ \028\000\102\000\103\000\103\000\103\000\010\000\041\000\041\000\ \041\000\041\000\041\000\041\000\041\000\041\000\041\000\041\000\ \103\000\114\000\103\000\123\000\042\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\127\000\ \118\000\119\000\128\000\120\000\121\000\129\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \118\000\119\000\103\000\120\000\121\000\132\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \203\000\203\000\133\000\203\000\203\000\084\000\084\000\134\000\ \084\000\084\000\113\000\113\000\113\000\113\000\113\000\113\000\ \113\000\113\000\113\000\113\000\135\000\136\000\137\000\203\000\ \138\000\139\000\125\000\125\000\084\000\125\000\125\000\104\000\ \104\000\158\000\104\000\104\000\143\000\144\000\145\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\125\000\153\000\146\000\147\000\151\000\104\000\154\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\102\000\155\000\156\000\159\000\149\000\160\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\161\000\162\000\165\000\166\000\167\000\096\000\ \171\000\097\000\172\000\099\000\173\000\174\000\177\000\094\000\ \178\000\179\000\180\000\098\000\181\000\169\000\182\000\183\000\ \184\000\095\000\100\000\187\000\101\000\130\000\130\000\148\000\ \130\000\130\000\188\000\103\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\189\000\190\000\ \191\000\192\000\195\000\196\000\130\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\168\000\ \197\000\198\000\199\000\200\000\201\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\090\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\202\000\208\000\209\000\210\000\211\000\206\000\218\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\208\000\209\000\210\000\211\000\000\000\000\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\089\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\000\000\000\000\000\000\ \000\000\000\000\000\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\088\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\087\000\087\000\000\000\ \087\000\087\000\113\000\113\000\113\000\113\000\113\000\113\000\ \113\000\113\000\113\000\113\000\000\000\000\000\000\000\000\000\ \103\000\000\000\000\000\000\000\087\000\000\000\000\000\140\000\ \140\000\000\000\140\000\140\000\150\000\150\000\000\000\150\000\ \150\000\000\000\000\000\000\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\140\000\000\000\ \000\000\000\000\000\000\150\000\000\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\000\000\ \000\000\000\000\000\000\000\000\000\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\086\000\ \086\000\000\000\086\000\086\000\152\000\152\000\000\000\152\000\ \152\000\157\000\157\000\000\000\157\000\157\000\163\000\163\000\ \000\000\163\000\163\000\000\000\000\000\000\000\086\000\000\000\ \000\000\170\000\170\000\152\000\170\000\170\000\175\000\175\000\ \157\000\175\000\175\000\000\000\000\000\163\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \170\000\000\000\000\000\000\000\000\000\175\000\000\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\000\000\000\000\000\000\000\000\000\000\000\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\051\000\051\000\000\000\051\000\051\000\185\000\185\000\ \000\000\185\000\185\000\193\000\193\000\000\000\193\000\193\000\ \221\000\213\000\000\000\221\000\221\000\000\000\000\000\000\000\ \051\000\000\000\000\000\221\000\213\000\185\000\221\000\221\000\ \000\000\000\000\193\000\000\000\000\000\000\000\000\000\221\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\221\000\000\000\000\000\000\000\000\000\000\000\ \000\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\000\000\000\000\000\000\000\000\000\000\ \000\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\083\000\083\000\000\000\083\000\083\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\216\000\213\000\000\000\216\000\216\000\000\000\ \000\000\000\000\083\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\216\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\214\000\000\000\215\000\000\000\ \000\000\000\000\000\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\000\000\000\000\000\000\ \000\000\000\000\000\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\044\000\044\000\000\000\ \044\000\044\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\044\000\000\000\000\000\000\000\ \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\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\000\000\ \000\000\000\000\000\000\000\000\000\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\043\000\ \043\000\000\000\043\000\043\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\043\000\000\000\ \000\000\000\000\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\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\000\000\000\000\000\000\000\000\000\000\000\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\042\000\042\000\000\000\042\000\042\000\000\000\000\000\ \000\000\000\000\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \078\000\078\000\078\000\078\000\078\000\078\000\078\000\078\000\ \078\000\078\000\079\000\080\000\080\000\080\000\080\000\080\000\ \080\000\080\000\080\000\080\000\080\000\080\000\080\000\080\000\ \080\000\080\000\080\000\080\000\080\000\080\000\080\000\080\000\ \080\000\080\000\080\000\080\000\080\000\042\000\042\000\000\000\ \042\000\042\000\000\000\000\000\000\000\000\000\000\000\000\000\ \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\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\081\000\081\000\081\000\081\000\ \081\000\081\000\081\000\081\000\081\000\081\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\081\000\081\000\081\000\ \081\000\081\000\081\000\081\000\081\000\081\000\081\000\081\000\ \081\000\081\000\081\000\081\000\081\000\081\000\081\000\081\000\ \081\000\081\000\081\000\081\000\081\000\081\000\081\000\000\000\ \000\000\000\000\000\000\081\000\000\000\080\000\080\000\080\000\ \080\000\080\000\080\000\080\000\080\000\080\000\080\000\080\000\ \080\000\080\000\080\000\080\000\080\000\080\000\080\000\080\000\ \080\000\080\000\080\000\080\000\080\000\080\000\080\000\042\000\ \042\000\000\000\042\000\042\000\000\000\000\000\000\000\000\000\ \000\000\000\000\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\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\081\000\081\000\ \081\000\081\000\081\000\081\000\081\000\081\000\081\000\081\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\081\000\ \081\000\081\000\081\000\081\000\081\000\081\000\081\000\081\000\ \081\000\081\000\081\000\081\000\081\000\081\000\081\000\081\000\ \081\000\081\000\081\000\081\000\081\000\081\000\081\000\081\000\ \081\000\000\000\000\000\000\000\000\000\081\000\000\000\081\000\ \081\000\081\000\081\000\081\000\081\000\081\000\081\000\081\000\ \081\000\081\000\081\000\081\000\081\000\081\000\081\000\081\000\ \081\000\081\000\081\000\081\000\081\000\081\000\081\000\081\000\ \081\000\055\000\055\000\000\000\055\000\055\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \055\000\000\000\000\000\000\000\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\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\000\000\000\000\000\000\000\000\000\000\ \000\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\057\000\057\000\000\000\057\000\057\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\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\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\000\000\000\000\000\000\ \000\000\000\000\000\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\059\000\059\000\000\000\ \059\000\059\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\059\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\000\000\ \000\000\000\000\000\000\000\000\000\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\112\000\ \106\000\000\000\000\000\000\000\000\000\110\000\111\000\000\000\ \000\000\107\000\000\000\000\000\108\000\000\000\000\000\000\000\ \000\000\000\000\109\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\112\000\ \106\000\000\000\000\000\000\000\000\000\110\000\111\000\000\000\ \000\000\107\000\000\000\000\000\108\000\000\000\000\000\000\000\ \000\000\000\000\109\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\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\255\255\000\000\000\000\255\255\004\000\ \004\000\255\255\004\000\004\000\064\000\064\000\255\255\064\000\ \064\000\072\000\072\000\255\255\072\000\072\000\255\255\255\255\ \000\000\065\000\214\000\215\000\255\255\000\000\004\000\255\255\ \255\255\255\255\255\255\064\000\255\255\255\255\255\255\009\000\ \072\000\004\000\102\000\004\000\205\000\255\255\255\255\255\255\ \255\255\255\255\075\000\123\000\000\000\006\000\017\000\018\000\ \026\000\027\000\009\000\009\000\029\000\030\000\031\000\032\000\ \009\000\009\000\013\000\022\000\009\000\014\000\037\000\009\000\ \039\000\015\000\023\000\024\000\050\000\009\000\053\000\016\000\ \054\000\033\000\034\000\000\000\000\000\000\000\006\000\056\000\ \058\000\016\000\009\000\009\000\063\000\095\000\101\000\032\000\ \009\000\009\000\013\000\022\000\009\000\014\000\011\000\009\000\ \011\000\015\000\023\000\024\000\008\000\009\000\003\000\016\000\ \008\000\033\000\034\000\000\000\004\000\000\000\005\000\007\000\ \008\000\016\000\092\000\008\000\008\000\008\000\008\000\008\000\ \008\000\008\000\008\000\008\000\008\000\094\000\011\000\035\000\ \011\000\096\000\097\000\036\000\008\000\008\000\008\000\008\000\ \008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\ \008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\ \008\000\008\000\008\000\008\000\008\000\008\000\008\000\035\000\ \099\000\008\000\008\000\036\000\008\000\008\000\008\000\008\000\ \008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\ \008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\ \008\000\008\000\008\000\008\000\008\000\008\000\008\000\019\000\ \019\000\019\000\019\000\019\000\019\000\019\000\019\000\019\000\ \019\000\021\000\038\000\020\000\020\000\045\000\046\000\047\000\ \098\000\020\000\020\000\021\000\048\000\020\000\049\000\052\000\ \020\000\100\000\098\000\106\000\107\000\108\000\020\000\025\000\ \025\000\025\000\025\000\025\000\025\000\025\000\025\000\025\000\ \025\000\021\000\038\000\020\000\020\000\045\000\046\000\047\000\ \000\000\020\000\020\000\021\000\048\000\020\000\049\000\052\000\ \020\000\109\000\111\000\106\000\107\000\108\000\020\000\028\000\ \028\000\028\000\028\000\028\000\028\000\028\000\028\000\028\000\ \028\000\104\000\112\000\114\000\115\000\028\000\041\000\041\000\ \041\000\041\000\041\000\041\000\041\000\041\000\041\000\041\000\ \116\000\109\000\121\000\122\000\041\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\126\000\ \117\000\118\000\127\000\119\000\120\000\128\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \117\000\118\000\104\000\119\000\120\000\131\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ \061\000\061\000\132\000\061\000\061\000\073\000\073\000\133\000\ \073\000\073\000\110\000\110\000\110\000\110\000\110\000\110\000\ \110\000\110\000\110\000\110\000\134\000\135\000\136\000\061\000\ \137\000\138\000\124\000\124\000\073\000\124\000\124\000\062\000\ \062\000\141\000\062\000\062\000\142\000\143\000\143\000\061\000\ \061\000\061\000\061\000\061\000\061\000\061\000\061\000\061\000\ \061\000\124\000\144\000\145\000\146\000\148\000\062\000\153\000\ \061\000\061\000\061\000\061\000\061\000\061\000\061\000\061\000\ \061\000\061\000\061\000\061\000\061\000\061\000\061\000\061\000\ \061\000\061\000\061\000\061\000\061\000\061\000\061\000\061\000\ \061\000\061\000\062\000\154\000\155\000\158\000\147\000\159\000\ \061\000\061\000\061\000\061\000\061\000\061\000\061\000\061\000\ \061\000\061\000\061\000\061\000\061\000\061\000\061\000\061\000\ \061\000\061\000\061\000\061\000\061\000\061\000\061\000\061\000\ \061\000\061\000\160\000\161\000\164\000\165\000\166\000\062\000\ \168\000\062\000\171\000\062\000\172\000\173\000\176\000\062\000\ \177\000\178\000\179\000\062\000\180\000\167\000\181\000\182\000\ \183\000\062\000\062\000\186\000\062\000\129\000\129\000\147\000\ \129\000\129\000\187\000\062\000\066\000\066\000\066\000\066\000\ \066\000\066\000\066\000\066\000\066\000\066\000\188\000\189\000\ \190\000\191\000\194\000\195\000\129\000\066\000\066\000\066\000\ \066\000\066\000\066\000\066\000\066\000\066\000\066\000\066\000\ \066\000\066\000\066\000\066\000\066\000\066\000\066\000\066\000\ \066\000\066\000\066\000\066\000\066\000\066\000\066\000\167\000\ \196\000\197\000\198\000\199\000\200\000\066\000\066\000\066\000\ \066\000\066\000\066\000\066\000\066\000\066\000\066\000\066\000\ \066\000\066\000\066\000\066\000\066\000\066\000\066\000\066\000\ \066\000\066\000\066\000\066\000\066\000\066\000\066\000\067\000\ \067\000\067\000\067\000\067\000\067\000\067\000\067\000\067\000\ \067\000\201\000\207\000\208\000\209\000\210\000\211\000\217\000\ \067\000\067\000\067\000\067\000\067\000\067\000\067\000\067\000\ \067\000\067\000\067\000\067\000\067\000\067\000\067\000\067\000\ \067\000\067\000\067\000\067\000\067\000\067\000\067\000\067\000\ \067\000\067\000\207\000\208\000\209\000\210\000\255\255\255\255\ \067\000\067\000\067\000\067\000\067\000\067\000\067\000\067\000\ \067\000\067\000\067\000\067\000\067\000\067\000\067\000\067\000\ \067\000\067\000\067\000\067\000\067\000\067\000\067\000\067\000\ \067\000\067\000\068\000\068\000\068\000\068\000\068\000\068\000\ \068\000\068\000\068\000\068\000\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\068\000\068\000\068\000\068\000\068\000\ \068\000\068\000\068\000\068\000\068\000\068\000\068\000\068\000\ \068\000\068\000\068\000\068\000\068\000\068\000\068\000\068\000\ \068\000\068\000\068\000\068\000\068\000\255\255\255\255\255\255\ \255\255\255\255\255\255\068\000\068\000\068\000\068\000\068\000\ \068\000\068\000\068\000\068\000\068\000\068\000\068\000\068\000\ \068\000\068\000\068\000\068\000\068\000\068\000\068\000\068\000\ \068\000\068\000\068\000\068\000\068\000\069\000\069\000\255\255\ \069\000\069\000\113\000\113\000\113\000\113\000\113\000\113\000\ \113\000\113\000\113\000\113\000\255\255\255\255\255\255\255\255\ \113\000\255\255\255\255\255\255\069\000\255\255\255\255\139\000\ \139\000\255\255\139\000\139\000\149\000\149\000\255\255\149\000\ \149\000\255\255\255\255\255\255\069\000\069\000\069\000\069\000\ \069\000\069\000\069\000\069\000\069\000\069\000\139\000\255\255\ \255\255\255\255\255\255\149\000\255\255\069\000\069\000\069\000\ \069\000\069\000\069\000\069\000\069\000\069\000\069\000\069\000\ \069\000\069\000\069\000\069\000\069\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\255\255\255\255\255\255\069\000\069\000\069\000\ \069\000\069\000\069\000\069\000\069\000\069\000\069\000\069\000\ \069\000\069\000\069\000\069\000\069\000\069\000\069\000\069\000\ \069\000\069\000\069\000\069\000\069\000\069\000\069\000\070\000\ \070\000\255\255\070\000\070\000\151\000\151\000\255\255\151\000\ \151\000\156\000\156\000\255\255\156\000\156\000\162\000\162\000\ \255\255\162\000\162\000\255\255\255\255\255\255\070\000\255\255\ \255\255\169\000\169\000\151\000\169\000\169\000\174\000\174\000\ \156\000\174\000\174\000\255\255\255\255\162\000\070\000\070\000\ \070\000\070\000\070\000\070\000\070\000\070\000\070\000\070\000\ \169\000\255\255\255\255\255\255\255\255\174\000\255\255\070\000\ \070\000\070\000\070\000\070\000\070\000\070\000\070\000\070\000\ \070\000\070\000\070\000\070\000\070\000\070\000\070\000\070\000\ \070\000\070\000\070\000\070\000\070\000\070\000\070\000\070\000\ \070\000\255\255\255\255\255\255\255\255\255\255\255\255\070\000\ \070\000\070\000\070\000\070\000\070\000\070\000\070\000\070\000\ \070\000\070\000\070\000\070\000\070\000\070\000\070\000\070\000\ \070\000\070\000\070\000\070\000\070\000\070\000\070\000\070\000\ \070\000\071\000\071\000\255\255\071\000\071\000\184\000\184\000\ \255\255\184\000\184\000\192\000\192\000\255\255\192\000\192\000\ \213\000\213\000\255\255\213\000\213\000\255\255\255\255\255\255\ \071\000\255\255\255\255\221\000\221\000\184\000\221\000\221\000\ \255\255\255\255\192\000\255\255\255\255\255\255\255\255\213\000\ \071\000\071\000\071\000\071\000\071\000\071\000\071\000\071\000\ \071\000\071\000\221\000\255\255\255\255\255\255\255\255\255\255\ \255\255\071\000\071\000\071\000\071\000\071\000\071\000\071\000\ \071\000\071\000\071\000\071\000\071\000\071\000\071\000\071\000\ \071\000\071\000\071\000\071\000\071\000\071\000\071\000\071\000\ \071\000\071\000\071\000\255\255\255\255\255\255\255\255\255\255\ \255\255\071\000\071\000\071\000\071\000\071\000\071\000\071\000\ \071\000\071\000\071\000\071\000\071\000\071\000\071\000\071\000\ \071\000\071\000\071\000\071\000\071\000\071\000\071\000\071\000\ \071\000\071\000\071\000\074\000\074\000\255\255\074\000\074\000\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\216\000\216\000\255\255\216\000\216\000\255\255\ \255\255\255\255\074\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\216\000\074\000\074\000\074\000\074\000\074\000\074\000\ \074\000\074\000\074\000\074\000\216\000\255\255\216\000\255\255\ \255\255\255\255\255\255\074\000\074\000\074\000\074\000\074\000\ \074\000\074\000\074\000\074\000\074\000\074\000\074\000\074\000\ \074\000\074\000\074\000\074\000\074\000\074\000\074\000\074\000\ \074\000\074\000\074\000\074\000\074\000\255\255\255\255\255\255\ \255\255\255\255\255\255\074\000\074\000\074\000\074\000\074\000\ \074\000\074\000\074\000\074\000\074\000\074\000\074\000\074\000\ \074\000\074\000\074\000\074\000\074\000\074\000\074\000\074\000\ \074\000\074\000\074\000\074\000\074\000\076\000\076\000\255\255\ \076\000\076\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\076\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\076\000\076\000\076\000\076\000\ \076\000\076\000\076\000\076\000\076\000\076\000\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\076\000\076\000\076\000\ \076\000\076\000\076\000\076\000\076\000\076\000\076\000\076\000\ \076\000\076\000\076\000\076\000\076\000\076\000\076\000\076\000\ \076\000\076\000\076\000\076\000\076\000\076\000\076\000\255\255\ \255\255\255\255\255\255\255\255\255\255\076\000\076\000\076\000\ \076\000\076\000\076\000\076\000\076\000\076\000\076\000\076\000\ \076\000\076\000\076\000\076\000\076\000\076\000\076\000\076\000\ \076\000\076\000\076\000\076\000\076\000\076\000\076\000\077\000\ \077\000\255\255\077\000\077\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\077\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\077\000\077\000\ \077\000\077\000\077\000\077\000\077\000\077\000\077\000\077\000\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\077\000\ \077\000\077\000\077\000\077\000\077\000\077\000\077\000\077\000\ \077\000\077\000\077\000\077\000\077\000\077\000\077\000\077\000\ \077\000\077\000\077\000\077\000\077\000\077\000\077\000\077\000\ \077\000\255\255\255\255\255\255\255\255\255\255\255\255\077\000\ \077\000\077\000\077\000\077\000\077\000\077\000\077\000\077\000\ \077\000\077\000\077\000\077\000\077\000\077\000\077\000\077\000\ \077\000\077\000\077\000\077\000\077\000\077\000\077\000\077\000\ \077\000\078\000\078\000\255\255\078\000\078\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\ \078\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\ \078\000\078\000\078\000\078\000\078\000\078\000\078\000\078\000\ \078\000\078\000\078\000\079\000\079\000\079\000\079\000\079\000\ \079\000\079\000\079\000\079\000\079\000\079\000\079\000\079\000\ \079\000\079\000\079\000\079\000\079\000\079\000\079\000\079\000\ \079\000\079\000\079\000\079\000\079\000\080\000\080\000\255\255\ \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\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\080\000\080\000\080\000\ \080\000\080\000\080\000\080\000\080\000\080\000\080\000\080\000\ \080\000\080\000\080\000\080\000\080\000\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\080\000\255\255\080\000\080\000\080\000\ \080\000\080\000\080\000\080\000\080\000\080\000\080\000\080\000\ \080\000\080\000\080\000\080\000\080\000\080\000\080\000\080\000\ \080\000\080\000\080\000\080\000\080\000\080\000\080\000\081\000\ \081\000\255\255\081\000\081\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\081\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\081\000\081\000\ \081\000\081\000\081\000\081\000\081\000\081\000\081\000\081\000\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\081\000\ \081\000\081\000\081\000\081\000\081\000\081\000\081\000\081\000\ \081\000\081\000\081\000\081\000\081\000\081\000\081\000\081\000\ \081\000\081\000\081\000\081\000\081\000\081\000\081\000\081\000\ \081\000\255\255\255\255\255\255\255\255\081\000\255\255\081\000\ \081\000\081\000\081\000\081\000\081\000\081\000\081\000\081\000\ \081\000\081\000\081\000\081\000\081\000\081\000\081\000\081\000\ \081\000\081\000\081\000\081\000\081\000\081\000\081\000\081\000\ \081\000\088\000\088\000\255\255\088\000\088\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\ \088\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\ \088\000\088\000\088\000\088\000\088\000\088\000\088\000\088\000\ \088\000\088\000\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\088\000\088\000\088\000\088\000\088\000\088\000\088\000\ \088\000\088\000\088\000\088\000\088\000\088\000\088\000\088\000\ \088\000\088\000\088\000\088\000\088\000\088\000\088\000\088\000\ \088\000\088\000\088\000\255\255\255\255\255\255\255\255\255\255\ \255\255\088\000\088\000\088\000\088\000\088\000\088\000\088\000\ \088\000\088\000\088\000\088\000\088\000\088\000\088\000\088\000\ \088\000\088\000\088\000\088\000\088\000\088\000\088\000\088\000\ \088\000\088\000\088\000\089\000\089\000\255\255\089\000\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\255\255\ \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\089\000\089\000\089\000\089\000\089\000\089\000\ \089\000\089\000\089\000\089\000\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\089\000\089\000\089\000\089\000\089\000\ \089\000\089\000\089\000\089\000\089\000\089\000\089\000\089\000\ \089\000\089\000\089\000\089\000\089\000\089\000\089\000\089\000\ \089\000\089\000\089\000\089\000\089\000\255\255\255\255\255\255\ \255\255\255\255\255\255\089\000\089\000\089\000\089\000\089\000\ \089\000\089\000\089\000\089\000\089\000\089\000\089\000\089\000\ \089\000\089\000\089\000\089\000\089\000\089\000\089\000\089\000\ \089\000\089\000\089\000\089\000\089\000\090\000\090\000\255\255\ \090\000\090\000\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\090\000\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\090\000\090\000\090\000\090\000\ \090\000\090\000\090\000\090\000\090\000\090\000\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\090\000\090\000\090\000\ \090\000\090\000\090\000\090\000\090\000\090\000\090\000\090\000\ \090\000\090\000\090\000\090\000\090\000\090\000\090\000\090\000\ \090\000\090\000\090\000\090\000\090\000\090\000\090\000\255\255\ \255\255\255\255\255\255\255\255\255\255\090\000\090\000\090\000\ \090\000\090\000\090\000\090\000\090\000\090\000\090\000\090\000\ \090\000\090\000\090\000\090\000\090\000\090\000\090\000\090\000\ \090\000\090\000\090\000\090\000\090\000\090\000\090\000\105\000\ \105\000\255\255\255\255\255\255\255\255\105\000\105\000\255\255\ \255\255\105\000\255\255\255\255\105\000\255\255\255\255\255\255\ \255\255\255\255\105\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\105\000\ \105\000\255\255\255\255\255\255\255\255\105\000\105\000\255\255\ \255\255\105\000\255\255\255\255\105\000\255\255\255\255\255\255\ \255\255\255\255\105\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"; 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 main lexbuf = __ocaml_lex_main_rec lexbuf 0 and __ocaml_lex_main_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 178 "odoc_text_lexer.mll" ( incr_cpts lexbuf ; let s = Lexing.lexeme lexbuf in Char (String.sub s 1 1) ) # 776 "odoc_text_lexer.ml" | 1 -> # 185 "odoc_text_lexer.mll" ( print_DEBUG "end"; incr_cpts lexbuf ; if !verb_mode or !latex_mode or !code_pre_mode or (!open_brackets >= 1) then Char (Lexing.lexeme lexbuf) else let _ = if !ele_ref_mode then ele_ref_mode := false in END ) # 793 "odoc_text_lexer.ml" | 2 -> # 199 "odoc_text_lexer.mll" ( print_DEBUG "begin_title"; incr_cpts lexbuf ; if !verb_mode or !latex_mode or !code_pre_mode or (!open_brackets >= 1) or !ele_ref_mode then Char (Lexing.lexeme lexbuf) else let s = Lexing.lexeme lexbuf in try (* chech if the "{..." or html_title mark was used. *) if s.[0] = '<' then let (n, l) = (2, (String.length s - 3)) in let s2 = String.sub s n l in Title (int_of_string s2, None) else let (n, l) = (1, (String.length s - 2)) in let s2 = String.sub s n l in try let i = String.index s2 ':' in let s_n = String.sub s2 0 i in let s_label = String.sub s2 (i+1) (l-i-1) in Title (int_of_string s_n, Some s_label) with Not_found -> Title (int_of_string s2, None) with _ -> Title (1, None) ) # 826 "odoc_text_lexer.ml" | 3 -> # 229 "odoc_text_lexer.mll" ( incr_cpts lexbuf ; if !verb_mode or !latex_mode or !code_pre_mode or (!open_brackets >= 1) or !ele_ref_mode then Char (Lexing.lexeme lexbuf) else BOLD ) # 838 "odoc_text_lexer.ml" | 4 -> # 238 "odoc_text_lexer.mll" ( incr_cpts lexbuf ; if !verb_mode or !latex_mode or !code_pre_mode or (!open_brackets >= 1) or !ele_ref_mode then Char (Lexing.lexeme lexbuf) else ITALIC ) # 850 "odoc_text_lexer.ml" | 5 -> # 247 "odoc_text_lexer.mll" ( incr_cpts lexbuf ; if !verb_mode or !latex_mode or !code_pre_mode or (!open_brackets >= 1) or !ele_ref_mode then Char (Lexing.lexeme lexbuf) else LINK ) # 862 "odoc_text_lexer.ml" | 6 -> # 256 "odoc_text_lexer.mll" ( incr_cpts lexbuf ; if !verb_mode or !latex_mode or !code_pre_mode or (!open_brackets >= 1) or !ele_ref_mode then Char (Lexing.lexeme lexbuf) else EMP ) # 874 "odoc_text_lexer.ml" | 7 -> # 265 "odoc_text_lexer.mll" ( incr_cpts lexbuf ; if !verb_mode or !latex_mode or !code_pre_mode or (!open_brackets >= 1) or !ele_ref_mode then Char (Lexing.lexeme lexbuf) else SUPERSCRIPT ) # 886 "odoc_text_lexer.ml" | 8 -> # 274 "odoc_text_lexer.mll" ( incr_cpts lexbuf ; if !verb_mode or !latex_mode or !code_pre_mode or (!open_brackets >= 1) or !ele_ref_mode then Char (Lexing.lexeme lexbuf) else SUBSCRIPT ) # 898 "odoc_text_lexer.ml" | 9 -> # 283 "odoc_text_lexer.mll" ( incr_cpts lexbuf ; if !verb_mode or !latex_mode or !code_pre_mode or (!open_brackets >= 1) or !ele_ref_mode then Char (Lexing.lexeme lexbuf) else CENTER ) # 910 "odoc_text_lexer.ml" | 10 -> # 292 "odoc_text_lexer.mll" ( incr_cpts lexbuf ; if !verb_mode or !latex_mode or !code_pre_mode or (!open_brackets >= 1) or !ele_ref_mode then Char (Lexing.lexeme lexbuf) else LEFT ) # 922 "odoc_text_lexer.ml" | 11 -> # 301 "odoc_text_lexer.mll" ( incr_cpts lexbuf ; if !verb_mode or !latex_mode or !code_pre_mode or (!open_brackets >= 1) or !ele_ref_mode then Char (Lexing.lexeme lexbuf) else RIGHT ) # 934 "odoc_text_lexer.ml" | 12 -> # 310 "odoc_text_lexer.mll" ( print_DEBUG "LIST"; incr_cpts lexbuf ; if !verb_mode or !latex_mode or !code_pre_mode or (!open_brackets >= 1) or !ele_ref_mode then Char (Lexing.lexeme lexbuf) else LIST ) # 947 "odoc_text_lexer.ml" | 13 -> # 320 "odoc_text_lexer.mll" ( incr_cpts lexbuf ; if !verb_mode or !latex_mode or !code_pre_mode or (!open_brackets >= 1) or !ele_ref_mode then Char (Lexing.lexeme lexbuf) else ENUM ) # 959 "odoc_text_lexer.ml" | 14 -> # 329 "odoc_text_lexer.mll" ( print_DEBUG "ITEM"; incr_cpts lexbuf ; if !verb_mode or !latex_mode or !code_pre_mode or (!open_brackets >= 1) or !ele_ref_mode then Char (Lexing.lexeme lexbuf) else ITEM ) # 972 "odoc_text_lexer.ml" | 15 -> # 339 "odoc_text_lexer.mll" ( incr_cpts lexbuf ; if !verb_mode or !latex_mode or !code_pre_mode or (!open_brackets >= 1) or !ele_ref_mode then Char (Lexing.lexeme lexbuf) else ( latex_mode := true; LATEX ) ) # 987 "odoc_text_lexer.ml" | 16 -> # 351 "odoc_text_lexer.mll" ( incr_cpts lexbuf ; if !verb_mode or (!open_brackets >= 1) or !code_pre_mode or !ele_ref_mode then Char (Lexing.lexeme lexbuf) else ( latex_mode := false; END_LATEX ) ) # 1002 "odoc_text_lexer.ml" | 17 -> # 363 "odoc_text_lexer.mll" ( incr_cpts lexbuf ; Char (Lexing.lexeme lexbuf) ) # 1010 "odoc_text_lexer.ml" | 18 -> # 369 "odoc_text_lexer.mll" ( incr_cpts lexbuf ; if !verb_mode or !latex_mode or !code_pre_mode or !ele_ref_mode then Char (Lexing.lexeme lexbuf) else if !open_brackets <= 0 then ( open_brackets := 1; CODE ) else ( incr open_brackets; Char (Lexing.lexeme lexbuf) ) ) # 1030 "odoc_text_lexer.ml" | 19 -> # 386 "odoc_text_lexer.mll" ( incr_cpts lexbuf ; if !verb_mode or !latex_mode or !code_pre_mode or !ele_ref_mode then Char (Lexing.lexeme lexbuf) else if !open_brackets > 1 then ( decr open_brackets; Char "]" ) else ( open_brackets := 0; END_CODE ) ) # 1050 "odoc_text_lexer.ml" | 20 -> # 404 "odoc_text_lexer.mll" ( incr_cpts lexbuf ; Char (Lexing.lexeme lexbuf) ) # 1058 "odoc_text_lexer.ml" | 21 -> # 410 "odoc_text_lexer.mll" ( incr_cpts lexbuf ; if !verb_mode or !latex_mode or !code_pre_mode or !ele_ref_mode then Char (Lexing.lexeme lexbuf) else ( code_pre_mode := true; CODE_PRE ) ) # 1072 "odoc_text_lexer.ml" | 22 -> # 421 "odoc_text_lexer.mll" ( incr_cpts lexbuf ; if !verb_mode or !latex_mode or !ele_ref_mode then Char (Lexing.lexeme lexbuf) else if !open_brackets >= 1 then ( lexbuf.Lexing.lex_curr_pos <- lexbuf.Lexing.lex_curr_pos - 1; lexbuf.Lexing.lex_curr_p <- { lexbuf.Lexing.lex_curr_p with pos_cnum = lexbuf.Lexing.lex_curr_p.pos_cnum - 1 } ; decr char_number ; if !open_brackets > 1 then ( decr open_brackets; Char "]" ) else ( open_brackets := 0; END_CODE ) ) else if !code_pre_mode then ( code_pre_mode := false; END_CODE_PRE ) else Char (Lexing.lexeme lexbuf) ) # 1109 "odoc_text_lexer.ml" | 23 -> # 456 "odoc_text_lexer.mll" ( incr_cpts lexbuf ; Char (Lexing.lexeme lexbuf) ) # 1117 "odoc_text_lexer.ml" | 24 -> # 462 "odoc_text_lexer.mll" ( incr_cpts lexbuf ; if !verb_mode or !latex_mode or !code_pre_mode or !open_brackets >= 1 then Char (Lexing.lexeme lexbuf) else if not !ele_ref_mode then ( ele_ref_mode := true; ELE_REF ) else ( Char (Lexing.lexeme lexbuf) ) ) # 1136 "odoc_text_lexer.ml" | 25 -> # 480 "odoc_text_lexer.mll" ( incr_cpts lexbuf ; if !verb_mode or !latex_mode or !code_pre_mode or !open_brackets >= 1 then Char (Lexing.lexeme lexbuf) else if not !ele_ref_mode then ( ele_ref_mode := true; VAL_REF ) else ( Char (Lexing.lexeme lexbuf) ) ) # 1155 "odoc_text_lexer.ml" | 26 -> # 497 "odoc_text_lexer.mll" ( incr_cpts lexbuf ; if !verb_mode or !latex_mode or !code_pre_mode or !open_brackets >= 1 then Char (Lexing.lexeme lexbuf) else if not !ele_ref_mode then ( ele_ref_mode := true; TYP_REF ) else ( Char (Lexing.lexeme lexbuf) ) ) # 1174 "odoc_text_lexer.ml" | 27 -> # 514 "odoc_text_lexer.mll" ( incr_cpts lexbuf ; if !verb_mode or !latex_mode or !code_pre_mode or !open_brackets >= 1 then Char (Lexing.lexeme lexbuf) else if not !ele_ref_mode then ( ele_ref_mode := true; EXC_REF ) else ( Char (Lexing.lexeme lexbuf) ) ) # 1193 "odoc_text_lexer.ml" | 28 -> # 531 "odoc_text_lexer.mll" ( incr_cpts lexbuf ; if !verb_mode or !latex_mode or !code_pre_mode or !open_brackets >= 1 then Char (Lexing.lexeme lexbuf) else if not !ele_ref_mode then ( ele_ref_mode := true; MOD_REF ) else ( Char (Lexing.lexeme lexbuf) ) ) # 1212 "odoc_text_lexer.ml" | 29 -> # 548 "odoc_text_lexer.mll" ( incr_cpts lexbuf ; if !verb_mode or !latex_mode or !code_pre_mode or !open_brackets >= 1 then Char (Lexing.lexeme lexbuf) else if not !ele_ref_mode then ( ele_ref_mode := true; MODT_REF ) else ( Char (Lexing.lexeme lexbuf) ) ) # 1231 "odoc_text_lexer.ml" | 30 -> # 565 "odoc_text_lexer.mll" ( incr_cpts lexbuf ; if !verb_mode or !latex_mode or !code_pre_mode or !open_brackets >= 1 then Char (Lexing.lexeme lexbuf) else if not !ele_ref_mode then ( ele_ref_mode := true; CLA_REF ) else ( Char (Lexing.lexeme lexbuf) ) ) # 1250 "odoc_text_lexer.ml" | 31 -> # 582 "odoc_text_lexer.mll" ( incr_cpts lexbuf ; if !verb_mode or !latex_mode or !code_pre_mode or !open_brackets >= 1 then Char (Lexing.lexeme lexbuf) else if not !ele_ref_mode then ( ele_ref_mode := true; CLT_REF ) else ( Char (Lexing.lexeme lexbuf) ) ) # 1269 "odoc_text_lexer.ml" | 32 -> # 599 "odoc_text_lexer.mll" ( incr_cpts lexbuf ; if !verb_mode or !latex_mode or !code_pre_mode or !open_brackets >= 1 then Char (Lexing.lexeme lexbuf) else if not !ele_ref_mode then ( ele_ref_mode := true; ATT_REF ) else ( Char (Lexing.lexeme lexbuf) ) ) # 1288 "odoc_text_lexer.ml" | 33 -> # 616 "odoc_text_lexer.mll" ( incr_cpts lexbuf ; if !verb_mode or !latex_mode or !code_pre_mode or !open_brackets >= 1 then Char (Lexing.lexeme lexbuf) else if not !ele_ref_mode then ( ele_ref_mode := true; MET_REF ) else ( Char (Lexing.lexeme lexbuf) ) ) # 1307 "odoc_text_lexer.ml" | 34 -> # 633 "odoc_text_lexer.mll" ( incr_cpts lexbuf ; if !verb_mode or !latex_mode or !code_pre_mode or !open_brackets >= 1 then Char (Lexing.lexeme lexbuf) else if not !ele_ref_mode then ( ele_ref_mode := true; SEC_REF ) else ( Char (Lexing.lexeme lexbuf) ) ) # 1326 "odoc_text_lexer.ml" | 35 -> # 650 "odoc_text_lexer.mll" ( incr_cpts lexbuf ; if !verb_mode or !latex_mode or !code_pre_mode or !open_brackets >= 1 then Char (Lexing.lexeme lexbuf) else if not !ele_ref_mode then ( ele_ref_mode := true; MOD_LIST_REF ) else ( Char (Lexing.lexeme lexbuf) ) ) # 1345 "odoc_text_lexer.ml" | 36 -> # 667 "odoc_text_lexer.mll" ( incr_cpts lexbuf ; if !verb_mode or !latex_mode or !code_pre_mode or !open_brackets >= 1 then Char (Lexing.lexeme lexbuf) else if not !ele_ref_mode then INDEX_LIST else Char (Lexing.lexeme lexbuf) ) # 1359 "odoc_text_lexer.ml" | 37 -> # 679 "odoc_text_lexer.mll" ( incr_cpts lexbuf ; if !latex_mode or (!open_brackets >= 1) or !code_pre_mode or !ele_ref_mode then Char (Lexing.lexeme lexbuf) else ( verb_mode := true; VERB ) ) # 1373 "odoc_text_lexer.ml" | 38 -> # 690 "odoc_text_lexer.mll" ( incr_cpts lexbuf ; if !latex_mode or (!open_brackets >= 1) or !code_pre_mode or !ele_ref_mode then Char (Lexing.lexeme lexbuf) else ( verb_mode := false; END_VERB ) ) # 1387 "odoc_text_lexer.ml" | 39 -> # 702 "odoc_text_lexer.mll" ( incr_cpts lexbuf ; if !shortcut_list_mode then ( SHORTCUT_LIST_ITEM ) else ( shortcut_list_mode := true; BEGIN_SHORTCUT_LIST_ITEM ) ) # 1403 "odoc_text_lexer.ml" | 40 -> # 716 "odoc_text_lexer.mll" ( incr_cpts lexbuf ; if !shortcut_list_mode then SHORTCUT_ENUM_ITEM else ( shortcut_list_mode := true; BEGIN_SHORTCUT_ENUM_ITEM ) ) # 1417 "odoc_text_lexer.ml" | 41 -> # 727 "odoc_text_lexer.mll" ( incr_cpts lexbuf ; lexbuf.Lexing.lex_curr_pos <- lexbuf.Lexing.lex_curr_pos - 1; lexbuf.Lexing.lex_curr_p <- { lexbuf.Lexing.lex_curr_p with pos_cnum = lexbuf.Lexing.lex_curr_p.pos_cnum - 1 ; } ; decr line_number ; if !shortcut_list_mode then ( shortcut_list_mode := false; (* go back one char to re-use the last '\n', so we can restart another shortcut-list with a single blank line, and not two.*) END_SHORTCUT_LIST ) else if !latex_mode or (!open_brackets >= 1) or !code_pre_mode or !ele_ref_mode or !verb_mode then Char (Lexing.lexeme lexbuf) else BLANK_LINE ) # 1443 "odoc_text_lexer.ml" | 42 -> # 750 "odoc_text_lexer.mll" ( EOF ) # 1448 "odoc_text_lexer.ml" | 43 -> # 753 "odoc_text_lexer.mll" ( print_DEBUG "begin_custom"; incr_cpts lexbuf ; if !verb_mode or !latex_mode or !code_pre_mode or (!open_brackets >= 1) or !ele_ref_mode then Char (Lexing.lexeme lexbuf) else let s = Lexing.lexeme lexbuf in let tag = Odoc_misc.no_blanks s in CUSTOM tag ) # 1463 "odoc_text_lexer.ml" | 44 -> # 766 "odoc_text_lexer.mll" ( incr_cpts lexbuf ; if !latex_mode or (!open_brackets >= 1) or !code_pre_mode or !ele_ref_mode then Char (Lexing.lexeme lexbuf) else ERROR ) # 1474 "odoc_text_lexer.ml" | 45 -> # 774 "odoc_text_lexer.mll" ( incr_cpts lexbuf ; Char (Lexing.lexeme lexbuf) ) # 1482 "odoc_text_lexer.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_main_rec lexbuf __ocaml_lex_state ;;