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 -> (
# 97 "c_lexer.mll"
parse_sharp_position_directive lexbuf; token lexbuf )
| 1 -> (
# 99 "c_lexer.mll"
if Lexing.lexeme_start lexbuf = 0 then
(parse_sharp_position_directive lexbuf; token lexbuf) else failwith "bad # directive" )
| 2 -> (
# 101 "c_lexer.mll"
parse_newline lexbuf; token lexbuf )
| 3 -> (
# 102 "c_lexer.mll"
token lexbuf )
| 4 -> (
# 105 "c_lexer.mll"
STRING(remove_quotes '"' (Lexing.lexeme lexbuf)) )
| 5 -> (
# 108 "c_lexer.mll"
CHARACTER_CONSTANT(remove_quotes '\'' (Lexing.lexeme lexbuf)) )
| 6 -> (
# 109 "c_lexer.mll"
INTEGER_CONSTANT(Lexing.lexeme lexbuf) )
| 7 -> (
# 110 "c_lexer.mll"
INTEGER_CONSTANT(Lexing.lexeme lexbuf) )
| 8 -> (
# 111 "c_lexer.mll"
INTEGER_CONSTANT(Lexing.lexeme lexbuf) )
| 9 -> (
# 113 "c_lexer.mll"
FLOATING_CONSTANT(Lexing.lexeme lexbuf) )
| 10 -> (
# 115 "c_lexer.mll"
FLOATING_CONSTANT(Lexing.lexeme lexbuf) )
| 11 -> (
# 116 "c_lexer.mll"
FLOATING_CONSTANT(Lexing.lexeme lexbuf) )
| 12 -> (
# 118 "c_lexer.mll"
let s = Lexing.lexeme lexbuf in
try identifier_of(s) with _ ->
if is_typedef_name s then
TYPEDEF_NAME(s)
else
IDENTIFIER(s)
)
| 13 -> (
# 125 "c_lexer.mll"
DOTDOTDOT )
| 14 -> (
# 126 "c_lexer.mll"
STAREQUAL )
| 15 -> (
# 127 "c_lexer.mll"
SLASHEQUAL )
| 16 -> (
# 128 "c_lexer.mll"
PERCENTEQUAL )
| 17 -> (
# 129 "c_lexer.mll"
PLUSEQUAL )
| 18 -> (
# 130 "c_lexer.mll"
MINUSEQUAL )
| 19 -> (
# 131 "c_lexer.mll"
LSHIFTEQUAL )
| 20 -> (
# 132 "c_lexer.mll"
RSHIFTEQUAL )
| 21 -> (
# 133 "c_lexer.mll"
AMPERSANDEQUAL )
| 22 -> (
# 134 "c_lexer.mll"
HATEQUAL )
| 23 -> (
# 135 "c_lexer.mll"
VBAREQUAL )
| 24 -> (
# 136 "c_lexer.mll"
VBARVBAR )
| 25 -> (
# 137 "c_lexer.mll"
AMPERSANDAMPERSAND )
| 26 -> (
# 138 "c_lexer.mll"
EQUALEQUAL )
| 27 -> (
# 139 "c_lexer.mll"
EXCLEQUAL )
| 28 -> (
# 140 "c_lexer.mll"
LANGLEEQUAL )
| 29 -> (
# 141 "c_lexer.mll"
RANGLEEQUAL )
| 30 -> (
# 142 "c_lexer.mll"
LSHIFT )
| 31 -> (
# 143 "c_lexer.mll"
RSHIFT )
| 32 -> (
# 144 "c_lexer.mll"
RARROW )
| 33 -> (
# 145 "c_lexer.mll"
PLUSPLUS )
| 34 -> (
# 146 "c_lexer.mll"
MINUSMINUS )
| 35 -> (
# 147 "c_lexer.mll"
let s = Lexing.lexeme lexbuf in
try symbol_of(s) with _ -> IDENTIFIER(s)
)
| 36 -> (
# 150 "c_lexer.mll"
EOF )
| 37 -> (
# 151 "c_lexer.mll"
failwith ("unknown token : " ^ Lexing.lexeme lexbuf) )
| n -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_token_rec lexbuf n