# 6 "uni_lexer.mll" (******************************************************) (* Claudio Sacerdoti Coen <sacerdot@cs.unibo.it> *) (* 14/05/2000 *) (******************************************************) open Uni_parser let comment_depth = ref 0;; let charint_of_lexeme l = String.set l 0 '0' ; int_of_string l ;; # 18 "uni_lexer.ml" let __ocaml_lex_tables = { Lexing.lex_base = "\000\000\244\255\003\000\000\000\247\255\248\255\249\255\250\255\ \001\000\252\255\086\000\192\000\255\255\020\001\104\001\251\255\ \246\255\179\001\202\001\027\000\253\255\000\000\001\000\255\255\ \254\255"; Lexing.lex_backtrk = "\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\002\000\002\000\255\255\002\000\001\000\255\255\ \255\255\255\255\010\000\255\255\255\255\002\000\002\000\255\255\ \255\255"; Lexing.lex_default = "\255\255\000\000\255\255\255\255\000\000\000\000\000\000\000\000\ \255\255\000\000\255\255\255\255\000\000\255\255\255\255\000\000\ \000\000\255\255\255\255\020\000\000\000\255\255\255\255\000\000\ \000\000"; Lexing.lex_trans = "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\012\000\012\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \012\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\ \003\000\024\000\016\000\023\000\000\000\004\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\008\000\015\000\009\000\000\000\000\000\ \000\000\000\000\000\000\022\000\000\000\021\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\005\000\000\000\010\000\ \000\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\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\017\000\007\000\010\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\010\000\010\000\ \010\000\010\000\010\000\010\000\010\000\010\000\010\000\010\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\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\ \010\000\000\000\000\000\000\000\000\000\010\000\000\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\ \010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\010\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \010\000\010\000\010\000\010\000\010\000\010\000\010\000\010\000\ \010\000\010\000\000\000\000\000\000\000\000\000\000\000\000\000\ \001\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\010\000\255\255\000\000\000\000\000\000\010\000\ \000\000\010\000\010\000\010\000\010\000\013\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\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\010\000\010\000\010\000\010\000\ \010\000\010\000\010\000\010\000\010\000\010\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\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\010\000\000\000\ \000\000\000\000\000\000\010\000\000\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\ \014\000\010\000\010\000\010\000\010\000\010\000\010\000\010\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \010\000\010\000\010\000\010\000\010\000\010\000\010\000\010\000\ \010\000\010\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\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\010\000\000\000\000\000\000\000\000\000\010\000\ \000\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\010\000\018\000\018\000\018\000\018\000\018\000\ \018\000\018\000\018\000\018\000\018\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\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\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\018\000\018\000\018\000\018\000\018\000\ \018\000\000\000\000\000\000\000\018\000\018\000\018\000\018\000\ \018\000\018\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\018\000\018\000\018\000\018\000\018\000\ \018\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\255\255\255\255\000\000\255\255\255\255\255\255\255\255\ \000\000\021\000\003\000\022\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\000\000\008\000\000\000\255\255\255\255\ \255\255\255\255\255\255\019\000\255\255\019\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\255\255\000\000\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\002\000\000\000\010\000\255\255\255\255\ \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\ \255\255\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\255\255\255\255\255\255\255\255\010\000\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\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\011\000\ \255\255\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\255\255\255\255\255\255\255\255\255\255\255\255\ \000\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\011\000\019\000\255\255\255\255\255\255\011\000\ \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\013\000\255\255\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\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\013\000\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\ \255\255\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\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\014\000\ \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\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\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\255\255\255\255\255\255\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\255\255\255\255\255\255\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\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\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 -> # 26 "uni_lexer.mll" ( token lexbuf ) # 238 "uni_lexer.ml" | 1 -> # 27 "uni_lexer.mll" ( LET ) # 243 "uni_lexer.ml" | 2 -> # 29 "uni_lexer.mll" ( IDENT (Lexing.lexeme lexbuf) ) # 248 "uni_lexer.ml" | 3 -> # 30 "uni_lexer.mll" ( EQ ) # 253 "uni_lexer.ml" | 4 -> # 31 "uni_lexer.mll" ( END_OF_LET ) # 258 "uni_lexer.ml" | 5 -> # 32 "uni_lexer.mll" ( PIPE ) # 263 "uni_lexer.ml" | 6 -> # 33 "uni_lexer.mll" ( LBRACKET ) # 268 "uni_lexer.ml" | 7 -> # 34 "uni_lexer.mll" ( RBRACKET ) # 273 "uni_lexer.ml" | 8 -> # 35 "uni_lexer.mll" ( RANGE ) # 278 "uni_lexer.ml" | 9 -> # 36 "uni_lexer.mll" ( incr comment_depth ; comment lexbuf ) # 285 "uni_lexer.ml" | 10 -> # 39 "uni_lexer.mll" ( CHAR (charint_of_lexeme (Lexing.lexeme lexbuf)) ) # 290 "uni_lexer.ml" | 11 -> # 40 "uni_lexer.mll" ( EOF ) # 295 "uni_lexer.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_token_rec lexbuf __ocaml_lex_state and comment lexbuf = __ocaml_lex_comment_rec lexbuf 19 and __ocaml_lex_comment_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 44 "uni_lexer.mll" ( incr comment_depth ; comment lexbuf ) # 306 "uni_lexer.ml" | 1 -> # 45 "uni_lexer.mll" ( decr comment_depth ; if !comment_depth = 0 then token lexbuf else comment lexbuf ) # 313 "uni_lexer.ml" | 2 -> # 48 "uni_lexer.mll" ( comment lexbuf ) # 318 "uni_lexer.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_comment_rec lexbuf __ocaml_lex_state ;;