# 2 "lexer.mll" open Parser exception Lexing_error of string let kwd_tbl = ["let", LET; "in", IN; "mu", MU;"T", TRUE ] let id_or_kwd s = try List.assoc s kwd_tbl with _ -> IDENT s let line = ref 0 let newline () = incr line # 13 "lexer.ml" let __ocaml_lex_tables = { Lexing.lex_base = "\000\000\239\255\240\255\241\255\002\000\242\255\243\255\244\255\ \245\255\247\255\248\255\249\255\250\255\251\255\252\255\079\000\ \002\000\255\255"; Lexing.lex_backtrk = "\255\255\255\255\255\255\255\255\016\000\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\002\000\ \001\000\255\255"; Lexing.lex_default = "\001\000\000\000\000\000\000\000\255\255\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\255\255\ \255\255\000\000"; Lexing.lex_trans = "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\016\000\017\000\016\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \016\000\000\000\016\000\000\000\013\000\000\000\011\000\000\000\ \008\000\007\000\000\000\000\000\010\000\004\000\015\000\000\000\ \000\000\003\000\003\000\003\000\003\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\006\000\014\000\005\000\000\000\ \000\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\015\000\000\000\000\000\000\000\000\000\015\000\ \000\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\015\000\000\000\012\000\000\000\009\000\015\000\ \015\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\ \015\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\015\000\000\000\000\000\000\000\000\000\015\000\000\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\015\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\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\016\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\ \000\000\255\255\016\000\255\255\000\000\255\255\000\000\255\255\ \000\000\000\000\255\255\255\255\000\000\000\000\000\000\255\255\ \255\255\000\000\000\000\004\000\004\000\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\000\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\255\255\255\255\255\255\255\255\000\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\ \000\000\000\000\000\000\255\255\000\000\255\255\000\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\015\000\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\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \000\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\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 next_token lexbuf = __ocaml_lex_next_token_rec lexbuf 0 and __ocaml_lex_next_token_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 19 "lexer.mll" ( newline () ; next_token lexbuf ) # 136 "lexer.ml" | 1 -> # 21 "lexer.mll" ( next_token lexbuf ) # 141 "lexer.ml" | 2 -> let # 22 "lexer.mll" id # 147 "lexer.ml" = Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_start_pos lexbuf.Lexing.lex_curr_pos in # 22 "lexer.mll" ( id_or_kwd id ) # 151 "lexer.ml" | 3 -> # 23 "lexer.mll" ( EQUAL ) # 156 "lexer.ml" | 4 -> # 24 "lexer.mll" ( VAR ) # 161 "lexer.ml" | 5 -> # 25 "lexer.mll" ( OR ) # 166 "lexer.ml" | 6 -> # 26 "lexer.mll" ( AND ) # 171 "lexer.ml" | 7 -> # 27 "lexer.mll" ( COMMA ) # 176 "lexer.ml" | 8 -> # 28 "lexer.mll" ( NOT ) # 181 "lexer.ml" | 9 -> # 29 "lexer.mll" ( POINT ) # 186 "lexer.ml" | 10 -> # 30 "lexer.mll" ( LEFTPAR ) # 191 "lexer.ml" | 11 -> # 31 "lexer.mll" ( RIGHTPAR ) # 196 "lexer.ml" | 12 -> # 32 "lexer.mll" ( LEFTPROG ) # 201 "lexer.ml" | 13 -> # 33 "lexer.mll" ( RIGHTPROG ) # 206 "lexer.ml" | 14 -> let # 34 "lexer.mll" s # 212 "lexer.ml" = Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_start_pos lexbuf.Lexing.lex_curr_pos in # 35 "lexer.mll" ( PROG(int_of_string s) ) # 216 "lexer.ml" | 15 -> # 36 "lexer.mll" ( EOF ) # 221 "lexer.ml" | 16 -> let # 37 "lexer.mll" c # 227 "lexer.ml" = Lexing.sub_lexeme_char lexbuf lexbuf.Lexing.lex_start_pos in # 37 "lexer.mll" ( raise (Lexing_error ("illegal character: " ^ String.make 1 c)) ) # 231 "lexer.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_next_token_rec lexbuf __ocaml_lex_state ;;