let rec token lexbuf =
lexbuf.Lexing.lex_mem <- Array.create 3 (-1) ; __ocaml_lex_token_rec lexbuf 0
and __ocaml_lex_token_rec lexbuf __ocaml_lex_state =
match Lexing.new_engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
| 0 ->
# 256 "cil/src/logic/logic_lexer.mll"
( token lexbuf )
# 864 "cil/src/logic/logic_lexer.ml"
| 1 ->
# 257 "cil/src/logic/logic_lexer.mll"
( update_newline_loc lexbuf; token lexbuf )
# 869 "cil/src/logic/logic_lexer.ml"
| 2 ->
# 258 "cil/src/logic/logic_lexer.mll"
( update_newline_loc lexbuf; token lexbuf )
# 874 "cil/src/logic/logic_lexer.ml"
| 3 ->
# 259 "cil/src/logic/logic_lexer.mll"
( token lexbuf )
# 879 "cil/src/logic/logic_lexer.ml"
| 4 ->
# 261 "cil/src/logic/logic_lexer.mll"
( bs_identifier lexbuf )
# 884 "cil/src/logic/logic_lexer.ml"
| 5 ->
# 262 "cil/src/logic/logic_lexer.mll"
( let s = lexeme lexbuf in identifier s )
# 889 "cil/src/logic/logic_lexer.ml"
| 6 ->
# 264 "cil/src/logic/logic_lexer.mll"
( CONSTANT (IntConstant (lexeme lexbuf)) )
# 894 "cil/src/logic/logic_lexer.ml"
| 7 ->
# 265 "cil/src/logic/logic_lexer.mll"
( CONSTANT (IntConstant (lexeme lexbuf)) )
# 899 "cil/src/logic/logic_lexer.ml"
| 8 ->
# 266 "cil/src/logic/logic_lexer.mll"
( CONSTANT10 (lexeme lexbuf) )
# 904 "cil/src/logic/logic_lexer.ml"
| 9 ->
# 267 "cil/src/logic/logic_lexer.mll"
( CONSTANT (IntConstant (lexeme lexbuf)) )
# 909 "cil/src/logic/logic_lexer.ml"
| 10 ->
let
# 268 "cil/src/logic/logic_lexer.mll"
prelude
# 915 "cil/src/logic/logic_lexer.ml"
= Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_start_pos lexbuf.Lexing.lex_mem.(0)
and
# 268 "cil/src/logic/logic_lexer.mll"
content
# 920 "cil/src/logic/logic_lexer.ml"
= Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_mem.(0) (lexbuf.Lexing.lex_curr_pos + -1) in
# 269 "cil/src/logic/logic_lexer.mll"
(
let b = Buffer.create 5 in
Buffer.add_string b prelude;
let lbf = Lexing.from_string content in
CONSTANT (IntConstant (chr b lbf ^ "'"))
)
# 929 "cil/src/logic/logic_lexer.ml"
| 11 ->
# 282 "cil/src/logic/logic_lexer.mll"
( CONSTANT (FloatConstant (lexeme lexbuf)) )
# 934 "cil/src/logic/logic_lexer.ml"
| 12 ->
let
# 285 "cil/src/logic/logic_lexer.mll"
n
# 940 "cil/src/logic/logic_lexer.ml"
= Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_start_pos (lexbuf.Lexing.lex_curr_pos + -2) in
# 285 "cil/src/logic/logic_lexer.mll"
( lexbuf.lex_curr_pos <- lexbuf.lex_curr_pos - 2;
CONSTANT (IntConstant n) )
# 945 "cil/src/logic/logic_lexer.ml"
| 13 ->
let
# 288 "cil/src/logic/logic_lexer.mll"
prelude
# 951 "cil/src/logic/logic_lexer.ml"
= Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_start_pos lexbuf.Lexing.lex_mem.(0)
and
# 288 "cil/src/logic/logic_lexer.mll"
content
# 956 "cil/src/logic/logic_lexer.ml"
= Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_mem.(0) (lexbuf.Lexing.lex_curr_pos + -1) in
# 289 "cil/src/logic/logic_lexer.mll"
( STRING_LITERAL (prelude.[0] = 'L',content) )
# 960 "cil/src/logic/logic_lexer.ml"
| 14 ->
# 290 "cil/src/logic/logic_lexer.mll"
( hash lexbuf )
# 965 "cil/src/logic/logic_lexer.ml"
| 15 ->
# 291 "cil/src/logic/logic_lexer.mll"
( IMPLIES )
# 970 "cil/src/logic/logic_lexer.ml"
| 16 ->
# 292 "cil/src/logic/logic_lexer.mll"
( IFF )
# 975 "cil/src/logic/logic_lexer.ml"
| 17 ->
# 293 "cil/src/logic/logic_lexer.mll"
( BIMPLIES )
# 980 "cil/src/logic/logic_lexer.ml"
| 18 ->
# 294 "cil/src/logic/logic_lexer.mll"
( BIFF )
# 985 "cil/src/logic/logic_lexer.ml"
| 19 ->
# 295 "cil/src/logic/logic_lexer.mll"
( AND )
# 990 "cil/src/logic/logic_lexer.ml"
| 20 ->
# 296 "cil/src/logic/logic_lexer.mll"
( OR )
# 995 "cil/src/logic/logic_lexer.ml"
| 21 ->
# 297 "cil/src/logic/logic_lexer.mll"
( NOT )
# 1000 "cil/src/logic/logic_lexer.ml"
| 22 ->
# 298 "cil/src/logic/logic_lexer.mll"
( DOLLAR )
# 1005 "cil/src/logic/logic_lexer.ml"
| 23 ->
# 299 "cil/src/logic/logic_lexer.mll"
( COMMA )
# 1010 "cil/src/logic/logic_lexer.ml"
| 24 ->
# 300 "cil/src/logic/logic_lexer.mll"
( ARROW )
# 1015 "cil/src/logic/logic_lexer.ml"
| 25 ->
# 301 "cil/src/logic/logic_lexer.mll"
( Stack.push Test state_stack; QUESTION )
# 1020 "cil/src/logic/logic_lexer.ml"
| 26 ->
# 302 "cil/src/logic/logic_lexer.mll"
( SEMICOLON )
# 1025 "cil/src/logic/logic_lexer.ml"
| 27 ->
# 303 "cil/src/logic/logic_lexer.mll"
( match get_state() with
Normal -> COLON
| Test -> pop_state(); COLON2
)
# 1033 "cil/src/logic/logic_lexer.ml"
| 28 ->
# 307 "cil/src/logic/logic_lexer.mll"
( COLONCOLON )
# 1038 "cil/src/logic/logic_lexer.ml"
| 29 ->
# 308 "cil/src/logic/logic_lexer.mll"
( DOT )
# 1043 "cil/src/logic/logic_lexer.ml"
| 30 ->
# 309 "cil/src/logic/logic_lexer.mll"
( DOTDOT )
# 1048 "cil/src/logic/logic_lexer.ml"
| 31 ->
# 310 "cil/src/logic/logic_lexer.mll"
( DOTDOTDOT )
# 1053 "cil/src/logic/logic_lexer.ml"
| 32 ->
# 311 "cil/src/logic/logic_lexer.mll"
( MINUS )
# 1058 "cil/src/logic/logic_lexer.ml"
| 33 ->
# 312 "cil/src/logic/logic_lexer.mll"
( PLUS )
# 1063 "cil/src/logic/logic_lexer.ml"
| 34 ->
# 313 "cil/src/logic/logic_lexer.mll"
( STAR )
# 1068 "cil/src/logic/logic_lexer.ml"
| 35 ->
# 314 "cil/src/logic/logic_lexer.mll"
( AMP )
# 1073 "cil/src/logic/logic_lexer.ml"
| 36 ->
# 315 "cil/src/logic/logic_lexer.mll"
( HATHAT )
# 1078 "cil/src/logic/logic_lexer.ml"
| 37 ->
# 316 "cil/src/logic/logic_lexer.mll"
( HAT )
# 1083 "cil/src/logic/logic_lexer.ml"
| 38 ->
# 317 "cil/src/logic/logic_lexer.mll"
( PIPE )
# 1088 "cil/src/logic/logic_lexer.ml"
| 39 ->
# 318 "cil/src/logic/logic_lexer.mll"
( TILDE )
# 1093 "cil/src/logic/logic_lexer.ml"
| 40 ->
# 319 "cil/src/logic/logic_lexer.mll"
( SLASH )
# 1098 "cil/src/logic/logic_lexer.ml"
| 41 ->
# 320 "cil/src/logic/logic_lexer.mll"
( PERCENT )
# 1103 "cil/src/logic/logic_lexer.ml"
| 42 ->
# 321 "cil/src/logic/logic_lexer.mll"
( LT )
# 1108 "cil/src/logic/logic_lexer.ml"
| 43 ->
# 322 "cil/src/logic/logic_lexer.mll"
( GT )
# 1113 "cil/src/logic/logic_lexer.ml"
| 44 ->
# 323 "cil/src/logic/logic_lexer.mll"
( LE )
# 1118 "cil/src/logic/logic_lexer.ml"
| 45 ->
# 324 "cil/src/logic/logic_lexer.mll"
( GE )
# 1123 "cil/src/logic/logic_lexer.ml"
| 46 ->
# 325 "cil/src/logic/logic_lexer.mll"
( EQ )
# 1128 "cil/src/logic/logic_lexer.ml"
| 47 ->
# 326 "cil/src/logic/logic_lexer.mll"
( EQUAL )
# 1133 "cil/src/logic/logic_lexer.ml"
| 48 ->
# 327 "cil/src/logic/logic_lexer.mll"
( NE )
# 1138 "cil/src/logic/logic_lexer.ml"
| 49 ->
# 328 "cil/src/logic/logic_lexer.mll"
( Stack.push Normal state_stack; LPAR )
# 1143 "cil/src/logic/logic_lexer.ml"
| 50 ->
# 329 "cil/src/logic/logic_lexer.mll"
( pop_state(); RPAR )
# 1148 "cil/src/logic/logic_lexer.ml"
| 51 ->
# 330 "cil/src/logic/logic_lexer.mll"
( Stack.push Normal state_stack; LBRACE )
# 1153 "cil/src/logic/logic_lexer.ml"
| 52 ->
# 331 "cil/src/logic/logic_lexer.mll"
( pop_state(); RBRACE )
# 1158 "cil/src/logic/logic_lexer.ml"
| 53 ->
# 332 "cil/src/logic/logic_lexer.mll"
( Stack.push Normal state_stack; LSQUARE )
# 1163 "cil/src/logic/logic_lexer.ml"
| 54 ->
# 333 "cil/src/logic/logic_lexer.mll"
( pop_state(); RSQUARE )
# 1168 "cil/src/logic/logic_lexer.ml"
| 55 ->
# 334 "cil/src/logic/logic_lexer.mll"
( LTCOLON )
# 1173 "cil/src/logic/logic_lexer.ml"
| 56 ->
# 335 "cil/src/logic/logic_lexer.mll"
( COLONGT )
# 1178 "cil/src/logic/logic_lexer.ml"
| 57 ->
# 336 "cil/src/logic/logic_lexer.mll"
( LTLT )
# 1183 "cil/src/logic/logic_lexer.ml"
| 58 ->
# 337 "cil/src/logic/logic_lexer.mll"
( GTGT )
# 1188 "cil/src/logic/logic_lexer.ml"
| 59 ->
let
# 338 "cil/src/logic/logic_lexer.mll"
c
# 1194 "cil/src/logic/logic_lexer.ml"
= Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_start_pos lexbuf.Lexing.lex_curr_pos in
# 338 "cil/src/logic/logic_lexer.mll"
( find_utf8 c )
# 1198 "cil/src/logic/logic_lexer.ml"
| 60 ->
# 339 "cil/src/logic/logic_lexer.mll"
( EOF )
# 1203 "cil/src/logic/logic_lexer.ml"
| 61 ->
# 340 "cil/src/logic/logic_lexer.mll"
( lex_error lexbuf ("illegal character " ^ lexeme lexbuf) )
# 1208 "cil/src/logic/logic_lexer.ml"
| __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_token_rec lexbuf __ocaml_lex_state
and chr buffer lexbuf =
__ocaml_lex_chr_rec buffer lexbuf 112
and __ocaml_lex_chr_rec buffer lexbuf __ocaml_lex_state =
match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
| 0 ->
# 344 "cil/src/logic/logic_lexer.mll"
( let s = lexeme lexbuf in
let real_s = String.sub s 2 (String.length s - 2) in
let rec add_one_char s =
let l = String.length s in
if l = 0 then ()
else
let h = int_of_digit s.[0] in
let c,s =
if l = 1 then (h,"")
else
(16*h + int_of_digit s.[1],
String.sub s 2 (String.length s - 2))
in
Buffer.add_char buffer (Char.chr c); add_one_char s
in add_one_char real_s; chr buffer lexbuf
)
# 1234 "cil/src/logic/logic_lexer.ml"
| 1 ->
# 361 "cil/src/logic/logic_lexer.mll"
( let s = lexeme lexbuf in
let real_s = String.sub s 1 (String.length s - 1) in
let rec value i s =
if s = "" then i
else value (8*i+int_of_digit s.[0])
(String.sub s 1 (String.length s -1))
in let c = value 0 real_s in
Buffer.add_char buffer (Char.chr c); chr buffer lexbuf
)
# 1247 "cil/src/logic/logic_lexer.ml"
| 2 ->
# 371 "cil/src/logic/logic_lexer.mll"
( Buffer.add_char buffer
(match (lexeme lexbuf).[1] with
'a' -> '\007'
| 'b' -> '\b'
| 'f' -> '\012'
| 'n' -> '\n'
| 'r' -> '\r'
| 't' -> '\t'
| '\'' -> '\''
| '"' -> '"'
| '?' -> '?'
| '\\' -> '\\'
| _ -> assert false
); chr buffer lexbuf)
# 1265 "cil/src/logic/logic_lexer.ml"
| 3 ->
# 385 "cil/src/logic/logic_lexer.mll"
( Buffer.contents buffer )
# 1270 "cil/src/logic/logic_lexer.ml"
| 4 ->
# 386 "cil/src/logic/logic_lexer.mll"
( Buffer.add_string buffer (lexeme lexbuf); chr buffer lexbuf )
# 1275 "cil/src/logic/logic_lexer.ml"
| __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_chr_rec buffer lexbuf __ocaml_lex_state
and hash lexbuf =
__ocaml_lex_hash_rec lexbuf 122
and __ocaml_lex_hash_rec lexbuf __ocaml_lex_state =
match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
| 0 ->
# 389 "cil/src/logic/logic_lexer.mll"
( update_newline_loc lexbuf; token lexbuf)
# 1286 "cil/src/logic/logic_lexer.ml"
| 1 ->
# 390 "cil/src/logic/logic_lexer.mll"
( hash lexbuf)
# 1291 "cil/src/logic/logic_lexer.ml"
| 2 ->
# 391 "cil/src/logic/logic_lexer.mll"
(
let s = Lexing.lexeme lexbuf in
let lineno = try
int_of_string s
with Failure ("int_of_string") ->
Kernel.warning ~source:lexbuf.lex_start_p
"Bad line number in preprocessed file: %s" s;
(-1)
in
update_line_loc lexbuf (lineno - 1) true 0;
file lexbuf )
# 1309 "cil/src/logic/logic_lexer.ml"
| 3 ->
# 405 "cil/src/logic/logic_lexer.mll"
( hash lexbuf )
# 1314 "cil/src/logic/logic_lexer.ml"
| 4 ->
# 406 "cil/src/logic/logic_lexer.mll"
( endline lexbuf)
# 1319 "cil/src/logic/logic_lexer.ml"
| __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_hash_rec lexbuf __ocaml_lex_state
and file lexbuf =
__ocaml_lex_file_rec lexbuf 131
and __ocaml_lex_file_rec lexbuf __ocaml_lex_state =
match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
| 0 ->
# 409 "cil/src/logic/logic_lexer.mll"
( update_newline_loc lexbuf; token lexbuf)
# 1330 "cil/src/logic/logic_lexer.ml"
| 1 ->
# 410 "cil/src/logic/logic_lexer.mll"
( file lexbuf)
# 1335 "cil/src/logic/logic_lexer.ml"
| 2 ->
# 412 "cil/src/logic/logic_lexer.mll"
(
let n = Lexing.lexeme lexbuf in
let n1 = String.sub n 1
((String.length n) - 2) in
update_file_loc lexbuf n1;
endline lexbuf
)
# 1346 "cil/src/logic/logic_lexer.ml"
| 3 ->
# 420 "cil/src/logic/logic_lexer.mll"
( endline lexbuf)
# 1351 "cil/src/logic/logic_lexer.ml"
| __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_file_rec lexbuf __ocaml_lex_state
and endline lexbuf =
__ocaml_lex_endline_rec lexbuf 138
and __ocaml_lex_endline_rec lexbuf __ocaml_lex_state =
match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
| 0 ->
# 423 "cil/src/logic/logic_lexer.mll"
( update_newline_loc lexbuf; token lexbuf)
# 1362 "cil/src/logic/logic_lexer.ml"
| 1 ->
# 424 "cil/src/logic/logic_lexer.mll"
( EOF )
# 1367 "cil/src/logic/logic_lexer.ml"
| 2 ->
# 425 "cil/src/logic/logic_lexer.mll"
( endline lexbuf)
# 1372 "cil/src/logic/logic_lexer.ml"
| __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_endline_rec lexbuf __ocaml_lex_state