Files
Lucàs 26eb53c358 Modify project structure
Add `src` folder for sources
Add `lib` folder for libraries
Add `sujet.pdf`
2023-03-18 22:27:43 +01:00

1494 lines
84 KiB
OCaml

# 1 "lexer.mll"
open Lexing
open Parser
open Lang
exception Lexerror
let pos lexbuf = (lexeme_start lexbuf, lexeme_end lexbuf)
let advance_line_pos pos =
{ pos with pos_lnum = pos.pos_lnum + 1; pos_bol = pos.pos_cnum; }
let advance_line lexbuf =
lexbuf.lex_curr_p <- advance_line_pos lexbuf.lex_curr_p
# 18 "lexer.ml"
let __ocaml_lex_tables = {
Lexing.lex_base =
"\000\000\206\255\078\000\208\255\012\000\001\000\003\000\030\000\
\031\000\160\000\235\000\054\001\129\001\204\001\023\002\098\002\
\173\002\248\002\067\003\230\255\231\255\232\255\233\255\032\000\
\235\255\236\255\237\255\238\255\243\255\048\000\049\000\050\000\
\180\003\143\003\155\003\091\000\176\003\191\000\254\255\255\255\
\253\255\192\000\239\255\254\003\223\002\173\003\252\255\224\002\
\248\255\111\004\242\255\241\255\240\255\216\255\139\004\214\004\
\047\005\122\005\197\005\016\006\091\006\166\006\241\006\060\007\
\135\007\210\007\029\008\104\008\179\008\254\008\073\009\148\009\
\223\009\042\010\117\010\192\010\011\011\086\011\161\011\236\011\
\055\012\130\012\205\012\024\013\099\013\174\013\249\013\068\014\
\143\014\218\014\037\015\112\015\187\015\006\016\081\016\215\255\
\213\255\211\255\210\255\209\255\037\000\038\000\255\255";
Lexing.lex_backtrk =
"\255\255\255\255\048\000\255\255\049\000\049\000\049\000\043\000\
\041\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\021\000\
\255\255\255\255\255\255\255\255\255\255\010\000\009\000\008\000\
\049\000\005\000\004\000\004\000\011\000\049\000\255\255\255\255\
\255\255\255\255\255\255\006\000\255\255\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\048\000\048\000\
\026\000\048\000\048\000\048\000\048\000\048\000\027\000\048\000\
\048\000\033\000\037\000\034\000\048\000\028\000\048\000\029\000\
\048\000\048\000\048\000\048\000\030\000\048\000\048\000\031\000\
\048\000\048\000\032\000\048\000\048\000\035\000\048\000\048\000\
\048\000\036\000\048\000\048\000\048\000\048\000\038\000\255\255\
\255\255\255\255\255\255\255\255\001\000\001\000\255\255";
Lexing.lex_default =
"\001\000\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\000\000\000\000\000\000\000\000\255\255\
\000\000\000\000\000\000\000\000\000\000\255\255\255\255\255\255\
\049\000\255\255\255\255\255\255\255\255\041\000\000\000\000\000\
\000\000\041\000\000\000\255\255\044\000\047\000\000\000\047\000\
\000\000\049\000\000\000\000\000\000\000\000\000\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\255\255\255\255\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\101\000\101\000\000\000";
Lexing.lex_trans =
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\039\000\038\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\039\000\006\000\032\000\037\000\000\000\028\000\005\000\098\000\
\027\000\026\000\029\000\031\000\022\000\030\000\033\000\036\000\
\035\000\034\000\034\000\034\000\034\000\034\000\034\000\034\000\
\034\000\034\000\020\000\021\000\007\000\023\000\008\000\019\000\
\097\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\096\000\095\000\053\000\052\000\051\000\
\050\000\002\000\018\000\002\000\002\000\011\000\017\000\002\000\
\002\000\016\000\002\000\002\000\015\000\002\000\002\000\002\000\
\002\000\002\000\009\000\014\000\012\000\002\000\013\000\010\000\
\002\000\002\000\002\000\025\000\004\000\024\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\099\000\033\000\000\000\000\000\000\000\000\000\000\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\040\000\040\000\000\000\000\000\000\000\000\000\000\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\000\000\000\000\000\000\000\000\000\000\
\003\000\002\000\002\000\002\000\002\000\090\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\102\000\255\255\000\000\
\000\000\000\000\000\000\000\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\000\000\000\000\
\000\000\000\000\000\000\000\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\086\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\083\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\000\000\000\000\000\000\000\000\255\255\
\255\255\000\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\000\000\000\000\000\000\000\000\
\000\000\000\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\080\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\000\000\
\000\000\000\000\000\000\000\000\000\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\077\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\072\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\000\000\000\000\000\000\
\000\000\000\000\000\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\070\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\000\000\045\000\045\000\000\000\000\000\000\000\002\000\002\000\
\002\000\002\000\002\000\067\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\068\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\000\000\000\000\000\000\000\000\000\000\
\000\000\058\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\059\000\002\000\002\000\057\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\000\000\000\000\
\000\000\000\000\000\000\000\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\054\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\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\000\000\034\000\034\000\034\000\034\000\034\000\
\034\000\034\000\034\000\034\000\034\000\000\000\048\000\045\000\
\000\000\000\000\044\000\000\000\046\000\000\000\042\000\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\043\000\043\000\043\000\043\000\043\000\043\000\043\000\
\043\000\043\000\043\000\043\000\043\000\043\000\043\000\043\000\
\043\000\043\000\043\000\043\000\043\000\043\000\043\000\043\000\
\043\000\043\000\043\000\000\000\000\000\000\000\000\000\000\000\
\255\255\043\000\043\000\043\000\043\000\043\000\043\000\043\000\
\043\000\043\000\043\000\043\000\043\000\043\000\043\000\043\000\
\043\000\043\000\043\000\043\000\043\000\043\000\043\000\043\000\
\043\000\043\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\000\000\043\000\
\043\000\043\000\043\000\043\000\043\000\043\000\043\000\043\000\
\043\000\043\000\043\000\043\000\043\000\043\000\043\000\043\000\
\043\000\043\000\043\000\043\000\043\000\043\000\043\000\043\000\
\043\000\000\000\000\000\000\000\000\000\000\000\000\000\043\000\
\043\000\043\000\043\000\043\000\043\000\043\000\043\000\043\000\
\043\000\043\000\043\000\043\000\043\000\043\000\043\000\043\000\
\043\000\043\000\043\000\043\000\043\000\043\000\043\000\043\000\
\043\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\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\000\000\255\255\000\000\000\000\
\000\000\000\000\000\000\000\000\255\255\000\000\000\000\000\000\
\000\000\000\000\000\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\000\000\000\000\000\000\
\000\000\000\000\000\000\255\255\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\000\000\000\000\
\000\000\000\000\000\000\000\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\055\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\056\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\000\000\000\000\000\000\000\000\000\000\000\000\255\255\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\000\000\000\000\000\000\
\000\000\000\000\000\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\066\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\000\000\000\000\000\000\000\000\000\000\000\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\063\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\000\000\000\000\000\000\000\000\000\000\
\000\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\060\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\000\000\000\000\
\000\000\000\000\000\000\000\000\061\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\062\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\000\000\000\000\000\000\000\000\
\000\000\000\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\000\000\
\000\000\000\000\000\000\000\000\000\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\064\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\
\002\000\002\000\002\000\002\000\065\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\000\000\000\000\000\000\
\000\000\000\000\000\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\000\000\000\000\000\000\000\000\000\000\000\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\000\000\000\000\000\000\000\000\000\000\
\000\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\000\000\000\000\
\000\000\000\000\000\000\000\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\069\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\000\000\000\000\000\000\000\000\
\000\000\000\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\071\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\000\000\
\000\000\000\000\000\000\000\000\000\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\073\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\000\000\000\000\000\000\
\000\000\000\000\000\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\074\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\000\000\000\000\000\000\000\000\000\000\000\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\075\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\000\000\000\000\000\000\000\000\000\000\
\000\000\002\000\002\000\002\000\002\000\002\000\002\000\076\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\000\000\000\000\
\000\000\000\000\000\000\000\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\078\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\000\000\000\000\000\000\000\000\
\000\000\000\000\002\000\002\000\002\000\079\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\000\000\
\000\000\000\000\000\000\000\000\000\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\081\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\000\000\000\000\000\000\
\000\000\000\000\000\000\002\000\002\000\002\000\002\000\082\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\000\000\000\000\000\000\000\000\000\000\000\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\000\000\000\000\000\000\000\000\000\000\
\000\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\084\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\000\000\000\000\
\000\000\000\000\000\000\000\000\002\000\002\000\002\000\002\000\
\085\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\000\000\000\000\000\000\000\000\
\000\000\000\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\087\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\000\000\
\000\000\000\000\000\000\000\000\000\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\088\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\
\002\000\002\000\002\000\002\000\089\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\000\000\000\000\000\000\
\000\000\000\000\000\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\000\000\000\000\000\000\000\000\000\000\000\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\091\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\000\000\000\000\000\000\000\000\000\000\
\000\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\092\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\000\000\000\000\
\000\000\000\000\000\000\000\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\093\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\094\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\000\000\000\000\000\000\000\000\
\000\000\000\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\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\255\255\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\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\255\255\000\000\000\000\005\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\007\000\008\000\023\000\029\000\030\000\
\031\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\004\000\035\000\255\255\255\255\255\255\255\255\255\255\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\255\255\255\255\255\255\255\255\255\255\255\255\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\
\002\000\037\000\041\000\255\255\255\255\255\255\255\255\255\255\
\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\
\009\000\009\000\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\009\000\009\000\009\000\009\000\009\000\009\000\009\000\
\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\
\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\
\009\000\009\000\009\000\255\255\255\255\255\255\255\255\255\255\
\000\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\
\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\
\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\
\009\000\009\000\009\000\010\000\010\000\010\000\010\000\010\000\
\010\000\010\000\010\000\010\000\010\000\100\000\101\000\255\255\
\255\255\255\255\255\255\255\255\010\000\010\000\010\000\010\000\
\010\000\010\000\010\000\010\000\010\000\010\000\010\000\010\000\
\010\000\010\000\010\000\010\000\010\000\010\000\010\000\010\000\
\010\000\010\000\010\000\010\000\010\000\010\000\255\255\255\255\
\255\255\255\255\255\255\255\255\010\000\010\000\010\000\010\000\
\010\000\010\000\010\000\010\000\010\000\010\000\010\000\010\000\
\010\000\010\000\010\000\010\000\010\000\010\000\010\000\010\000\
\010\000\010\000\010\000\010\000\010\000\010\000\011\000\011\000\
\011\000\011\000\011\000\011\000\011\000\011\000\011\000\011\000\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\011\000\
\011\000\011\000\011\000\011\000\011\000\011\000\011\000\011\000\
\011\000\011\000\011\000\011\000\011\000\011\000\011\000\011\000\
\011\000\011\000\011\000\011\000\011\000\011\000\011\000\011\000\
\011\000\255\255\255\255\255\255\255\255\255\255\255\255\011\000\
\011\000\011\000\011\000\011\000\011\000\011\000\011\000\011\000\
\011\000\011\000\011\000\011\000\011\000\011\000\011\000\011\000\
\011\000\011\000\011\000\011\000\011\000\011\000\011\000\011\000\
\011\000\012\000\012\000\012\000\012\000\012\000\012\000\012\000\
\012\000\012\000\012\000\255\255\255\255\255\255\255\255\037\000\
\041\000\255\255\012\000\012\000\012\000\012\000\012\000\012\000\
\012\000\012\000\012\000\012\000\012\000\012\000\012\000\012\000\
\012\000\012\000\012\000\012\000\012\000\012\000\012\000\012\000\
\012\000\012\000\012\000\012\000\255\255\255\255\255\255\255\255\
\255\255\255\255\012\000\012\000\012\000\012\000\012\000\012\000\
\012\000\012\000\012\000\012\000\012\000\012\000\012\000\012\000\
\012\000\012\000\012\000\012\000\012\000\012\000\012\000\012\000\
\012\000\012\000\012\000\012\000\013\000\013\000\013\000\013\000\
\013\000\013\000\013\000\013\000\013\000\013\000\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\013\000\013\000\013\000\
\013\000\013\000\013\000\013\000\013\000\013\000\013\000\013\000\
\013\000\013\000\013\000\013\000\013\000\013\000\013\000\013\000\
\013\000\013\000\013\000\013\000\013\000\013\000\013\000\255\255\
\255\255\255\255\255\255\255\255\255\255\013\000\013\000\013\000\
\013\000\013\000\013\000\013\000\013\000\013\000\013\000\013\000\
\013\000\013\000\013\000\013\000\013\000\013\000\013\000\013\000\
\013\000\013\000\013\000\013\000\013\000\013\000\013\000\014\000\
\014\000\014\000\014\000\014\000\014\000\014\000\014\000\014\000\
\014\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\014\000\014\000\014\000\014\000\014\000\014\000\014\000\014\000\
\014\000\014\000\014\000\014\000\014\000\014\000\014\000\014\000\
\014\000\014\000\014\000\014\000\014\000\014\000\014\000\014\000\
\014\000\014\000\255\255\255\255\255\255\255\255\255\255\255\255\
\014\000\014\000\014\000\014\000\014\000\014\000\014\000\014\000\
\014\000\014\000\014\000\014\000\014\000\014\000\014\000\014\000\
\014\000\014\000\014\000\014\000\014\000\014\000\014\000\014\000\
\014\000\014\000\015\000\015\000\015\000\015\000\015\000\015\000\
\015\000\015\000\015\000\015\000\255\255\255\255\255\255\255\255\
\255\255\255\255\255\255\015\000\015\000\015\000\015\000\015\000\
\015\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\
\015\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\
\015\000\015\000\015\000\015\000\015\000\255\255\255\255\255\255\
\255\255\255\255\255\255\015\000\015\000\015\000\015\000\015\000\
\015\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\
\015\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\
\015\000\015\000\015\000\015\000\015\000\016\000\016\000\016\000\
\016\000\016\000\016\000\016\000\016\000\016\000\016\000\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\016\000\016\000\
\016\000\016\000\016\000\016\000\016\000\016\000\016\000\016\000\
\016\000\016\000\016\000\016\000\016\000\016\000\016\000\016\000\
\016\000\016\000\016\000\016\000\016\000\016\000\016\000\016\000\
\255\255\044\000\047\000\255\255\255\255\255\255\016\000\016\000\
\016\000\016\000\016\000\016\000\016\000\016\000\016\000\016\000\
\016\000\016\000\016\000\016\000\016\000\016\000\016\000\016\000\
\016\000\016\000\016\000\016\000\016\000\016\000\016\000\016\000\
\017\000\017\000\017\000\017\000\017\000\017\000\017\000\017\000\
\017\000\017\000\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\017\000\017\000\017\000\017\000\017\000\017\000\017\000\
\017\000\017\000\017\000\017\000\017\000\017\000\017\000\017\000\
\017\000\017\000\017\000\017\000\017\000\017\000\017\000\017\000\
\017\000\017\000\017\000\255\255\255\255\255\255\255\255\255\255\
\255\255\017\000\017\000\017\000\017\000\017\000\017\000\017\000\
\017\000\017\000\017\000\017\000\017\000\017\000\017\000\017\000\
\017\000\017\000\017\000\017\000\017\000\017\000\017\000\017\000\
\017\000\017\000\017\000\018\000\018\000\018\000\018\000\018\000\
\018\000\018\000\018\000\018\000\018\000\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\018\000\018\000\018\000\018\000\
\018\000\018\000\018\000\018\000\018\000\018\000\018\000\018\000\
\018\000\018\000\018\000\018\000\018\000\018\000\018\000\018\000\
\018\000\018\000\018\000\018\000\018\000\018\000\255\255\255\255\
\255\255\255\255\255\255\255\255\018\000\018\000\018\000\018\000\
\018\000\018\000\018\000\018\000\018\000\018\000\018\000\018\000\
\018\000\018\000\018\000\018\000\018\000\018\000\018\000\018\000\
\018\000\018\000\018\000\018\000\018\000\018\000\032\000\033\000\
\033\000\033\000\033\000\033\000\033\000\033\000\033\000\033\000\
\033\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\255\255\032\000\045\000\
\255\255\255\255\036\000\255\255\045\000\255\255\036\000\044\000\
\047\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\036\000\036\000\036\000\036\000\036\000\036\000\036\000\
\036\000\036\000\036\000\036\000\036\000\036\000\036\000\036\000\
\036\000\036\000\036\000\036\000\036\000\036\000\036\000\036\000\
\036\000\036\000\036\000\255\255\255\255\255\255\255\255\255\255\
\032\000\036\000\036\000\036\000\036\000\036\000\036\000\036\000\
\036\000\036\000\036\000\036\000\036\000\036\000\036\000\036\000\
\036\000\036\000\036\000\036\000\036\000\036\000\036\000\036\000\
\036\000\036\000\036\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\255\255\255\255\255\255\255\255\255\255\255\255\043\000\
\043\000\043\000\043\000\043\000\043\000\043\000\043\000\043\000\
\043\000\043\000\043\000\043\000\043\000\043\000\043\000\043\000\
\043\000\043\000\043\000\043\000\043\000\043\000\043\000\043\000\
\043\000\255\255\255\255\255\255\255\255\255\255\255\255\043\000\
\043\000\043\000\043\000\043\000\043\000\043\000\043\000\043\000\
\043\000\043\000\043\000\043\000\043\000\043\000\043\000\043\000\
\043\000\043\000\043\000\043\000\043\000\043\000\043\000\043\000\
\043\000\049\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\049\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\045\000\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\054\000\054\000\054\000\054\000\054\000\
\054\000\054\000\054\000\054\000\054\000\255\255\255\255\255\255\
\255\255\255\255\255\255\049\000\054\000\054\000\054\000\054\000\
\054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\
\054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\
\054\000\054\000\054\000\054\000\054\000\054\000\255\255\255\255\
\255\255\255\255\255\255\255\255\054\000\054\000\054\000\054\000\
\054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\
\054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\
\054\000\054\000\054\000\054\000\054\000\054\000\055\000\055\000\
\055\000\055\000\055\000\055\000\055\000\055\000\055\000\055\000\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\055\000\
\055\000\055\000\055\000\055\000\055\000\055\000\055\000\055\000\
\055\000\055\000\055\000\055\000\055\000\055\000\055\000\055\000\
\055\000\055\000\055\000\055\000\055\000\055\000\055\000\055\000\
\055\000\255\255\255\255\255\255\255\255\255\255\255\255\055\000\
\055\000\055\000\055\000\055\000\055\000\055\000\055\000\055\000\
\055\000\055\000\055\000\055\000\055\000\055\000\055\000\055\000\
\055\000\055\000\055\000\055\000\055\000\055\000\055\000\055\000\
\055\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\056\000\
\056\000\056\000\056\000\056\000\056\000\056\000\056\000\056\000\
\056\000\255\255\255\255\255\255\255\255\255\255\255\255\049\000\
\056\000\056\000\056\000\056\000\056\000\056\000\056\000\056\000\
\056\000\056\000\056\000\056\000\056\000\056\000\056\000\056\000\
\056\000\056\000\056\000\056\000\056\000\056\000\056\000\056\000\
\056\000\056\000\255\255\255\255\255\255\255\255\255\255\255\255\
\056\000\056\000\056\000\056\000\056\000\056\000\056\000\056\000\
\056\000\056\000\056\000\056\000\056\000\056\000\056\000\056\000\
\056\000\056\000\056\000\056\000\056\000\056\000\056\000\056\000\
\056\000\056\000\057\000\057\000\057\000\057\000\057\000\057\000\
\057\000\057\000\057\000\057\000\255\255\255\255\255\255\255\255\
\255\255\255\255\255\255\057\000\057\000\057\000\057\000\057\000\
\057\000\057\000\057\000\057\000\057\000\057\000\057\000\057\000\
\057\000\057\000\057\000\057\000\057\000\057\000\057\000\057\000\
\057\000\057\000\057\000\057\000\057\000\255\255\255\255\255\255\
\255\255\255\255\255\255\057\000\057\000\057\000\057\000\057\000\
\057\000\057\000\057\000\057\000\057\000\057\000\057\000\057\000\
\057\000\057\000\057\000\057\000\057\000\057\000\057\000\057\000\
\057\000\057\000\057\000\057\000\057\000\058\000\058\000\058\000\
\058\000\058\000\058\000\058\000\058\000\058\000\058\000\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\058\000\058\000\
\058\000\058\000\058\000\058\000\058\000\058\000\058\000\058\000\
\058\000\058\000\058\000\058\000\058\000\058\000\058\000\058\000\
\058\000\058\000\058\000\058\000\058\000\058\000\058\000\058\000\
\255\255\255\255\255\255\255\255\255\255\255\255\058\000\058\000\
\058\000\058\000\058\000\058\000\058\000\058\000\058\000\058\000\
\058\000\058\000\058\000\058\000\058\000\058\000\058\000\058\000\
\058\000\058\000\058\000\058\000\058\000\058\000\058\000\058\000\
\059\000\059\000\059\000\059\000\059\000\059\000\059\000\059\000\
\059\000\059\000\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\059\000\059\000\059\000\059\000\059\000\059\000\059\000\
\059\000\059\000\059\000\059\000\059\000\059\000\059\000\059\000\
\059\000\059\000\059\000\059\000\059\000\059\000\059\000\059\000\
\059\000\059\000\059\000\255\255\255\255\255\255\255\255\255\255\
\255\255\059\000\059\000\059\000\059\000\059\000\059\000\059\000\
\059\000\059\000\059\000\059\000\059\000\059\000\059\000\059\000\
\059\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\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\060\000\060\000\060\000\060\000\
\060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\
\060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\
\060\000\060\000\060\000\060\000\060\000\060\000\255\255\255\255\
\255\255\255\255\255\255\255\255\060\000\060\000\060\000\060\000\
\060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\
\060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\
\060\000\060\000\060\000\060\000\060\000\060\000\061\000\061\000\
\061\000\061\000\061\000\061\000\061\000\061\000\061\000\061\000\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\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\255\255\255\255\255\255\255\255\255\255\255\255\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\062\000\062\000\062\000\062\000\062\000\062\000\
\062\000\062\000\062\000\255\255\255\255\255\255\255\255\255\255\
\255\255\255\255\062\000\062\000\062\000\062\000\062\000\062\000\
\062\000\062\000\062\000\062\000\062\000\062\000\062\000\062\000\
\062\000\062\000\062\000\062\000\062\000\062\000\062\000\062\000\
\062\000\062\000\062\000\062\000\255\255\255\255\255\255\255\255\
\255\255\255\255\062\000\062\000\062\000\062\000\062\000\062\000\
\062\000\062\000\062\000\062\000\062\000\062\000\062\000\062\000\
\062\000\062\000\062\000\062\000\062\000\062\000\062\000\062\000\
\062\000\062\000\062\000\062\000\063\000\063\000\063\000\063\000\
\063\000\063\000\063\000\063\000\063\000\063\000\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\063\000\063\000\063\000\
\063\000\063\000\063\000\063\000\063\000\063\000\063\000\063\000\
\063\000\063\000\063\000\063\000\063\000\063\000\063\000\063\000\
\063\000\063\000\063\000\063\000\063\000\063\000\063\000\255\255\
\255\255\255\255\255\255\255\255\255\255\063\000\063\000\063\000\
\063\000\063\000\063\000\063\000\063\000\063\000\063\000\063\000\
\063\000\063\000\063\000\063\000\063\000\063\000\063\000\063\000\
\063\000\063\000\063\000\063\000\063\000\063\000\063\000\064\000\
\064\000\064\000\064\000\064\000\064\000\064\000\064\000\064\000\
\064\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\064\000\064\000\064\000\064\000\064\000\064\000\064\000\064\000\
\064\000\064\000\064\000\064\000\064\000\064\000\064\000\064\000\
\064\000\064\000\064\000\064\000\064\000\064\000\064\000\064\000\
\064\000\064\000\255\255\255\255\255\255\255\255\255\255\255\255\
\064\000\064\000\064\000\064\000\064\000\064\000\064\000\064\000\
\064\000\064\000\064\000\064\000\064\000\064\000\064\000\064\000\
\064\000\064\000\064\000\064\000\064\000\064\000\064\000\064\000\
\064\000\064\000\065\000\065\000\065\000\065\000\065\000\065\000\
\065\000\065\000\065\000\065\000\255\255\255\255\255\255\255\255\
\255\255\255\255\255\255\065\000\065\000\065\000\065\000\065\000\
\065\000\065\000\065\000\065\000\065\000\065\000\065\000\065\000\
\065\000\065\000\065\000\065\000\065\000\065\000\065\000\065\000\
\065\000\065\000\065\000\065\000\065\000\255\255\255\255\255\255\
\255\255\255\255\255\255\065\000\065\000\065\000\065\000\065\000\
\065\000\065\000\065\000\065\000\065\000\065\000\065\000\065\000\
\065\000\065\000\065\000\065\000\065\000\065\000\065\000\065\000\
\065\000\065\000\065\000\065\000\065\000\066\000\066\000\066\000\
\066\000\066\000\066\000\066\000\066\000\066\000\066\000\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\066\000\066\000\
\066\000\066\000\066\000\066\000\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\
\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\
\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\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\067\000\067\000\067\000\067\000\067\000\067\000\067\000\
\067\000\067\000\067\000\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\255\255\255\255\255\255\255\255\255\255\
\255\255\067\000\067\000\067\000\067\000\067\000\067\000\067\000\
\067\000\067\000\067\000\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\
\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\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\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\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\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\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\072\000\
\072\000\072\000\072\000\072\000\072\000\072\000\072\000\072\000\
\072\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
\072\000\072\000\072\000\072\000\072\000\072\000\072\000\072\000\
\072\000\072\000\072\000\072\000\072\000\072\000\072\000\072\000\
\072\000\072\000\072\000\072\000\072\000\072\000\072\000\072\000\
\072\000\072\000\255\255\255\255\255\255\255\255\255\255\255\255\
\072\000\072\000\072\000\072\000\072\000\072\000\072\000\072\000\
\072\000\072\000\072\000\072\000\072\000\072\000\072\000\072\000\
\072\000\072\000\072\000\072\000\072\000\072\000\072\000\072\000\
\072\000\072\000\073\000\073\000\073\000\073\000\073\000\073\000\
\073\000\073\000\073\000\073\000\255\255\255\255\255\255\255\255\
\255\255\255\255\255\255\073\000\073\000\073\000\073\000\073\000\
\073\000\073\000\073\000\073\000\073\000\073\000\073\000\073\000\
\073\000\073\000\073\000\073\000\073\000\073\000\073\000\073\000\
\073\000\073\000\073\000\073\000\073\000\255\255\255\255\255\255\
\255\255\255\255\255\255\073\000\073\000\073\000\073\000\073\000\
\073\000\073\000\073\000\073\000\073\000\073\000\073\000\073\000\
\073\000\073\000\073\000\073\000\073\000\073\000\073\000\073\000\
\073\000\073\000\073\000\073\000\073\000\074\000\074\000\074\000\
\074\000\074\000\074\000\074\000\074\000\074\000\074\000\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\074\000\074\000\
\074\000\074\000\074\000\074\000\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\
\075\000\075\000\075\000\075\000\075\000\075\000\075\000\075\000\
\075\000\075\000\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\075\000\075\000\075\000\075\000\075\000\075\000\075\000\
\075\000\075\000\075\000\075\000\075\000\075\000\075\000\075\000\
\075\000\075\000\075\000\075\000\075\000\075\000\075\000\075\000\
\075\000\075\000\075\000\255\255\255\255\255\255\255\255\255\255\
\255\255\075\000\075\000\075\000\075\000\075\000\075\000\075\000\
\075\000\075\000\075\000\075\000\075\000\075\000\075\000\075\000\
\075\000\075\000\075\000\075\000\075\000\075\000\075\000\075\000\
\075\000\075\000\075\000\076\000\076\000\076\000\076\000\076\000\
\076\000\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\
\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\078\000\078\000\078\000\078\000\078\000\
\078\000\078\000\078\000\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\078\000\078\000\078\000\
\078\000\078\000\078\000\078\000\078\000\078\000\078\000\078\000\
\078\000\078\000\078\000\078\000\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\078\000\078\000\078\000\
\078\000\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\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\079\000\079\000\079\000\
\079\000\079\000\079\000\079\000\079\000\079\000\079\000\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\255\255\
\255\255\255\255\255\255\255\255\255\255\079\000\079\000\079\000\
\079\000\079\000\079\000\079\000\079\000\079\000\079\000\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\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\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\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\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\082\000\082\000\082\000\
\082\000\082\000\082\000\082\000\082\000\082\000\082\000\255\255\
\255\255\255\255\255\255\255\255\255\255\255\255\082\000\082\000\
\082\000\082\000\082\000\082\000\082\000\082\000\082\000\082\000\
\082\000\082\000\082\000\082\000\082\000\082\000\082\000\082\000\
\082\000\082\000\082\000\082\000\082\000\082\000\082\000\082\000\
\255\255\255\255\255\255\255\255\255\255\255\255\082\000\082\000\
\082\000\082\000\082\000\082\000\082\000\082\000\082\000\082\000\
\082\000\082\000\082\000\082\000\082\000\082\000\082\000\082\000\
\082\000\082\000\082\000\082\000\082\000\082\000\082\000\082\000\
\083\000\083\000\083\000\083\000\083\000\083\000\083\000\083\000\
\083\000\083\000\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\083\000\083\000\083\000\083\000\083\000\083\000\083\000\
\083\000\083\000\083\000\083\000\083\000\083\000\083\000\083\000\
\083\000\083\000\083\000\083\000\083\000\083\000\083\000\083\000\
\083\000\083\000\083\000\255\255\255\255\255\255\255\255\255\255\
\255\255\083\000\083\000\083\000\083\000\083\000\083\000\083\000\
\083\000\083\000\083\000\083\000\083\000\083\000\083\000\083\000\
\083\000\083\000\083\000\083\000\083\000\083\000\083\000\083\000\
\083\000\083\000\083\000\084\000\084\000\084\000\084\000\084\000\
\084\000\084\000\084\000\084\000\084\000\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\084\000\084\000\084\000\084\000\
\084\000\084\000\084\000\084\000\084\000\084\000\084\000\084\000\
\084\000\084\000\084\000\084\000\084\000\084\000\084\000\084\000\
\084\000\084\000\084\000\084\000\084\000\084\000\255\255\255\255\
\255\255\255\255\255\255\255\255\084\000\084\000\084\000\084\000\
\084\000\084\000\084\000\084\000\084\000\084\000\084\000\084\000\
\084\000\084\000\084\000\084\000\084\000\084\000\084\000\084\000\
\084\000\084\000\084\000\084\000\084\000\084\000\085\000\085\000\
\085\000\085\000\085\000\085\000\085\000\085\000\085\000\085\000\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\085\000\
\085\000\085\000\085\000\085\000\085\000\085\000\085\000\085\000\
\085\000\085\000\085\000\085\000\085\000\085\000\085\000\085\000\
\085\000\085\000\085\000\085\000\085\000\085\000\085\000\085\000\
\085\000\255\255\255\255\255\255\255\255\255\255\255\255\085\000\
\085\000\085\000\085\000\085\000\085\000\085\000\085\000\085\000\
\085\000\085\000\085\000\085\000\085\000\085\000\085\000\085\000\
\085\000\085\000\085\000\085\000\085\000\085\000\085\000\085\000\
\085\000\086\000\086\000\086\000\086\000\086\000\086\000\086\000\
\086\000\086\000\086\000\255\255\255\255\255\255\255\255\255\255\
\255\255\255\255\086\000\086\000\086\000\086\000\086\000\086\000\
\086\000\086\000\086\000\086\000\086\000\086\000\086\000\086\000\
\086\000\086\000\086\000\086\000\086\000\086\000\086\000\086\000\
\086\000\086\000\086\000\086\000\255\255\255\255\255\255\255\255\
\255\255\255\255\086\000\086\000\086\000\086\000\086\000\086\000\
\086\000\086\000\086\000\086\000\086\000\086\000\086\000\086\000\
\086\000\086\000\086\000\086\000\086\000\086\000\086\000\086\000\
\086\000\086\000\086\000\086\000\087\000\087\000\087\000\087\000\
\087\000\087\000\087\000\087\000\087\000\087\000\255\255\255\255\
\255\255\255\255\255\255\255\255\255\255\087\000\087\000\087\000\
\087\000\087\000\087\000\087\000\087\000\087\000\087\000\087\000\
\087\000\087\000\087\000\087\000\087\000\087\000\087\000\087\000\
\087\000\087\000\087\000\087\000\087\000\087\000\087\000\255\255\
\255\255\255\255\255\255\255\255\255\255\087\000\087\000\087\000\
\087\000\087\000\087\000\087\000\087\000\087\000\087\000\087\000\
\087\000\087\000\087\000\087\000\087\000\087\000\087\000\087\000\
\087\000\087\000\087\000\087\000\087\000\087\000\087\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\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\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\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\
\091\000\091\000\091\000\091\000\091\000\091\000\091\000\091\000\
\091\000\091\000\255\255\255\255\255\255\255\255\255\255\255\255\
\255\255\091\000\091\000\091\000\091\000\091\000\091\000\091\000\
\091\000\091\000\091\000\091\000\091\000\091\000\091\000\091\000\
\091\000\091\000\091\000\091\000\091\000\091\000\091\000\091\000\
\091\000\091\000\091\000\255\255\255\255\255\255\255\255\255\255\
\255\255\091\000\091\000\091\000\091\000\091\000\091\000\091\000\
\091\000\091\000\091\000\091\000\091\000\091\000\091\000\091\000\
\091\000\091\000\091\000\091\000\091\000\091\000\091\000\091\000\
\091\000\091\000\091\000\092\000\092\000\092\000\092\000\092\000\
\092\000\092\000\092\000\092\000\092\000\255\255\255\255\255\255\
\255\255\255\255\255\255\255\255\092\000\092\000\092\000\092\000\
\092\000\092\000\092\000\092\000\092\000\092\000\092\000\092\000\
\092\000\092\000\092\000\092\000\092\000\092\000\092\000\092\000\
\092\000\092\000\092\000\092\000\092\000\092\000\255\255\255\255\
\255\255\255\255\255\255\255\255\092\000\092\000\092\000\092\000\
\092\000\092\000\092\000\092\000\092\000\092\000\092\000\092\000\
\092\000\092\000\092\000\092\000\092\000\092\000\092\000\092\000\
\092\000\092\000\092\000\092\000\092\000\092\000\093\000\093\000\
\093\000\093\000\093\000\093\000\093\000\093\000\093\000\093\000\
\255\255\255\255\255\255\255\255\255\255\255\255\255\255\093\000\
\093\000\093\000\093\000\093\000\093\000\093\000\093\000\093\000\
\093\000\093\000\093\000\093\000\093\000\093\000\093\000\093\000\
\093\000\093\000\093\000\093\000\093\000\093\000\093\000\093\000\
\093\000\255\255\255\255\255\255\255\255\255\255\255\255\093\000\
\093\000\093\000\093\000\093\000\093\000\093\000\093\000\093\000\
\093\000\093\000\093\000\093\000\093\000\093\000\093\000\093\000\
\093\000\093\000\093\000\093\000\093\000\093\000\093\000\093\000\
\093\000\094\000\094\000\094\000\094\000\094\000\094\000\094\000\
\094\000\094\000\094\000\255\255\255\255\255\255\255\255\255\255\
\255\255\255\255\094\000\094\000\094\000\094\000\094\000\094\000\
\094\000\094\000\094\000\094\000\094\000\094\000\094\000\094\000\
\094\000\094\000\094\000\094\000\094\000\094\000\094\000\094\000\
\094\000\094\000\094\000\094\000\255\255\255\255\255\255\255\255\
\255\255\255\255\094\000\094\000\094\000\094\000\094\000\094\000\
\094\000\094\000\094\000\094\000\094\000\094\000\094\000\094\000\
\094\000\094\000\094\000\094\000\094\000\094\000\094\000\094\000\
\094\000\094\000\094\000\094\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";
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 ->
# 28 "lexer.mll"
( token lexbuf )
# 1195 "lexer.ml"
| 1 ->
# 30 "lexer.mll"
(advance_line lexbuf; token lexbuf )
# 1200 "lexer.ml"
| 2 ->
# 32 "lexer.mll"
( advance_line lexbuf; token lexbuf )
# 1205 "lexer.ml"
| 3 ->
# 34 "lexer.mll"
( token lexbuf )
# 1210 "lexer.ml"
| 4 ->
let
# 35 "lexer.mll"
i
# 1216 "lexer.ml"
= Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_start_pos lexbuf.Lexing.lex_curr_pos in
# 35 "lexer.mll"
( INTCONSTANT (int_of_string i))
# 1220 "lexer.ml"
| 5 ->
let
# 36 "lexer.mll"
fp
# 1226 "lexer.ml"
= Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_start_pos lexbuf.Lexing.lex_curr_pos in
# 36 "lexer.mll"
( FLOATCONSTANT (float_of_string fp))
# 1230 "lexer.ml"
| 6 ->
let
# 37 "lexer.mll"
l
# 1236 "lexer.ml"
= Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_start_pos lexbuf.Lexing.lex_curr_pos in
# 37 "lexer.mll"
( LITCONSTANT l )
# 1240 "lexer.ml"
| 7 ->
let
# 38 "lexer.mll"
s
# 1246 "lexer.ml"
= Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_start_pos lexbuf.Lexing.lex_curr_pos in
# 38 "lexer.mll"
( STRINGCONSTANT (String.sub s 1 (String.length s - 2)) )
# 1250 "lexer.ml"
| 8 ->
# 39 "lexer.mll"
( PLUS )
# 1255 "lexer.ml"
| 9 ->
# 40 "lexer.mll"
( MINUS )
# 1260 "lexer.ml"
| 10 ->
# 41 "lexer.mll"
( TIMES )
# 1265 "lexer.ml"
| 11 ->
# 42 "lexer.mll"
( DIV )
# 1270 "lexer.ml"
| 12 ->
# 43 "lexer.mll"
( MOD )
# 1275 "lexer.ml"
| 13 ->
# 45 "lexer.mll"
( FPLUS )
# 1280 "lexer.ml"
| 14 ->
# 46 "lexer.mll"
( FMINUS )
# 1285 "lexer.ml"
| 15 ->
# 47 "lexer.mll"
( FTIMES )
# 1290 "lexer.ml"
| 16 ->
# 48 "lexer.mll"
( FDIV )
# 1295 "lexer.ml"
| 17 ->
# 50 "lexer.mll"
( LPAREN )
# 1300 "lexer.ml"
| 18 ->
# 51 "lexer.mll"
( RPAREN )
# 1305 "lexer.ml"
| 19 ->
# 52 "lexer.mll"
( LBRACE )
# 1310 "lexer.ml"
| 20 ->
# 53 "lexer.mll"
( RBRACE )
# 1315 "lexer.ml"
| 21 ->
# 54 "lexer.mll"
( EQ )
# 1320 "lexer.ml"
| 22 ->
# 55 "lexer.mll"
( COMMA )
# 1325 "lexer.ml"
| 23 ->
# 56 "lexer.mll"
( SEMICOLON )
# 1330 "lexer.ml"
| 24 ->
# 57 "lexer.mll"
( COLON )
# 1335 "lexer.ml"
| 25 ->
# 58 "lexer.mll"
( QMARK )
# 1340 "lexer.ml"
| 26 ->
# 60 "lexer.mll"
(TP BoolT)
# 1345 "lexer.ml"
| 27 ->
# 61 "lexer.mll"
(TP FloatT)
# 1350 "lexer.ml"
| 28 ->
# 62 "lexer.mll"
(TP IntT)
# 1355 "lexer.ml"
| 29 ->
# 63 "lexer.mll"
(TP LitT)
# 1360 "lexer.ml"
| 30 ->
# 64 "lexer.mll"
(TP StringT)
# 1365 "lexer.ml"
| 31 ->
# 65 "lexer.mll"
(TP VoidT)
# 1370 "lexer.ml"
| 32 ->
# 67 "lexer.mll"
(BCONSTANT true)
# 1375 "lexer.ml"
| 33 ->
# 68 "lexer.mll"
(BCONSTANT false)
# 1380 "lexer.ml"
| 34 ->
# 69 "lexer.mll"
(IF)
# 1385 "lexer.ml"
| 35 ->
# 70 "lexer.mll"
(ELSE)
# 1390 "lexer.ml"
| 36 ->
# 71 "lexer.mll"
(WHILE)
# 1395 "lexer.ml"
| 37 ->
# 72 "lexer.mll"
(FOR)
# 1400 "lexer.ml"
| 38 ->
# 73 "lexer.mll"
(RETURN)
# 1405 "lexer.ml"
| 39 ->
# 75 "lexer.mll"
(BCEQ)
# 1410 "lexer.ml"
| 40 ->
# 76 "lexer.mll"
(BCGE)
# 1415 "lexer.ml"
| 41 ->
# 77 "lexer.mll"
(BCGT)
# 1420 "lexer.ml"
| 42 ->
# 78 "lexer.mll"
(BCLE)
# 1425 "lexer.ml"
| 43 ->
# 79 "lexer.mll"
(BCLT)
# 1430 "lexer.ml"
| 44 ->
# 80 "lexer.mll"
(BCNE)
# 1435 "lexer.ml"
| 45 ->
# 82 "lexer.mll"
(BLAND)
# 1440 "lexer.ml"
| 46 ->
# 83 "lexer.mll"
(BLOR)
# 1445 "lexer.ml"
| 47 ->
# 85 "lexer.mll"
(EOF)
# 1450 "lexer.ml"
| 48 ->
let
# 87 "lexer.mll"
i
# 1456 "lexer.ml"
= Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_start_pos lexbuf.Lexing.lex_curr_pos in
# 87 "lexer.mll"
(IDENTIFIER i)
# 1460 "lexer.ml"
| 49 ->
# 89 "lexer.mll"
(Printf.printf "ERROR: unrecogized symbol '%s'\n" (Lexing.lexeme lexbuf);
raise Lexerror )
# 1466 "lexer.ml"
| __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf;
__ocaml_lex_token_rec lexbuf __ocaml_lex_state
and ruleTail acc lexbuf =
__ocaml_lex_ruleTail_rec acc lexbuf 100
and __ocaml_lex_ruleTail_rec acc lexbuf __ocaml_lex_state =
match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
| 0 ->
# 94 "lexer.mll"
( acc )
# 1478 "lexer.ml"
| 1 ->
let
# 95 "lexer.mll"
str
# 1484 "lexer.ml"
= Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_start_pos lexbuf.Lexing.lex_curr_pos in
# 95 "lexer.mll"
( ruleTail (acc ^ str) lexbuf )
# 1488 "lexer.ml"
| __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf;
__ocaml_lex_ruleTail_rec acc lexbuf __ocaml_lex_state
;;