let rec token lexbuf = __ocaml_lex_token_rec lexbuf 0
and __ocaml_lex_token_rec lexbuf state =
match Lexing.engine lex_tables state lexbuf with
0 -> (
# 64 "../../src/lexer.mll"
token lexbuf )
| 1 -> (
# 65 "../../src/lexer.mll"
Tools.linenumber := !Tools.linenumber + 1;
token lexbuf )
| 2 -> (
# 67 "../../src/lexer.mll"
token lexbuf )
| 3 -> (
# 68 "../../src/lexer.mll"
keyword (Lexing.lexeme lexbuf) )
| 4 -> (
# 69 "../../src/lexer.mll"
NEGINF )
| 5 -> (
# 70 "../../src/lexer.mll"
INTCONST (int_of_string (Lexing.lexeme lexbuf)) )
| 6 -> (
# 72 "../../src/lexer.mll"
RATCONST (Mpa.Q.of_string (Lexing.lexeme lexbuf)) )
| 7 -> (
# 74 "../../src/lexer.mll"
let s = Lexing.lexeme lexbuf in
RATCONST(Mpa.Q.of_string (String.sub s 1 (String.length s - 1))) )
| 8 -> (
# 77 "../../src/lexer.mll"
let s = Lexing.lexeme lexbuf in
BVCONST (String.sub s 2 (String.length s - 2)) )
| 9 -> (
# 79 "../../src/lexer.mll"
let s = Lexing.lexeme lexbuf in
let n = String.length s in
let i = String.rindex s '!' in
let x = String.sub s 0 i in
let k = int_of_string (String.sub s (i + 1) (n - i - 1)) in
FRESH (x, k) )
| 10 -> (
# 85 "../../src/lexer.mll"
let s = Lexing.lexeme lexbuf in
let n = String.length s in
let k = int_of_string (String.sub s 1 (n - 1)) in
FREE k )
| 11 -> (
# 89 "../../src/lexer.mll"
STRING(Lexing.lexeme lexbuf) )
| 12 -> (
# 90 "../../src/lexer.mll"
COMMA )
| 13 -> (
# 91 "../../src/lexer.mll"
if !Tools.mode = Tools.Prop then PROPLPAR else LPAR )
| 14 -> (
# 92 "../../src/lexer.mll"
if !Tools.mode = Tools.Prop then PROPRPAR else RPAR )
| 15 -> (
# 93 "../../src/lexer.mll"
LBRA )
| 16 -> (
# 94 "../../src/lexer.mll"
RBRA )
| 17 -> (
# 95 "../../src/lexer.mll"
LCUR )
| 18 -> (
# 96 "../../src/lexer.mll"
RCUR )
| 19 -> (
# 97 "../../src/lexer.mll"
PLUS )
| 20 -> (
# 98 "../../src/lexer.mll"
MINUS )
| 21 -> (
# 99 "../../src/lexer.mll"
TIMES )
| 22 -> (
# 100 "../../src/lexer.mll"
DIVIDE )
| 23 -> (
# 101 "../../src/lexer.mll"
BACKSLASH )
| 24 -> (
# 102 "../../src/lexer.mll"
EQUAL )
| 25 -> (
# 103 "../../src/lexer.mll"
ASSIGN )
| 26 -> (
# 104 "../../src/lexer.mll"
DISEQ )
| 27 -> (
# 105 "../../src/lexer.mll"
LESS )
| 28 -> (
# 106 "../../src/lexer.mll"
LESSOREQUAL )
| 29 -> (
# 107 "../../src/lexer.mll"
GREATER )
| 30 -> (
# 108 "../../src/lexer.mll"
GREATEROREQUAL )
| 31 -> (
# 109 "../../src/lexer.mll"
TO )
| 32 -> (
# 110 "../../src/lexer.mll"
COLON )
| 33 -> (
# 111 "../../src/lexer.mll"
EXPT )
| 34 -> (
# 112 "../../src/lexer.mll"
DDOT )
| 35 -> (
# 113 "../../src/lexer.mll"
BVCONC )
| 36 -> (
# 114 "../../src/lexer.mll"
BWAND )
| 37 -> (
# 115 "../../src/lexer.mll"
BWOR )
| 38 -> (
# 116 "../../src/lexer.mll"
BWXOR )
| 39 -> (
# 117 "../../src/lexer.mll"
CONJ )
| 40 -> (
# 118 "../../src/lexer.mll"
DISJ )
| 41 -> (
# 119 "../../src/lexer.mll"
XOR )
| 42 -> (
# 120 "../../src/lexer.mll"
BIIMPL )
| 43 -> (
# 121 "../../src/lexer.mll"
IMPL )
| 44 -> (
# 122 "../../src/lexer.mll"
NEG )
| 45 -> (
# 123 "../../src/lexer.mll"
UNDERSCORE )
| 46 -> (
# 124 "../../src/lexer.mll"
CMP )
| 47 -> (
# 125 "../../src/lexer.mll"
LISTCONS )
| 48 -> (
# 126 "../../src/lexer.mll"
NIL )
| 49 -> (
# 127 "../../src/lexer.mll"
DOT )
| 50 -> (
# 128 "../../src/lexer.mll"
APPLY )
| 51 -> (
# 129 "../../src/lexer.mll"
KLAMMERAFFE )
| 52 -> (
# 130 "../../src/lexer.mll"
EOF )
| 53 -> (
# 131 "../../src/lexer.mll"
raise Parsing.Parse_error )
| n -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_token_rec lexbuf n