# 3 "mll_lexer.mll" type mlltok = [ `Brace of Lexing.position * mlltok list | `Bracket of mlltok list | `Char of char | `Charliteral of string | `Comment of mlltok list | `EOF | `E_Brace | `E_Bracket | `E_Comment | `E_Paren | `Ident of string | `Paren of mlltok list | `Stringliteral of string | `Sep of string (* "" or white space string *) ] let rec recurse_until stop_tok f lexbuf = let tok = f lexbuf in if tok = stop_tok then [] else if tok = `EOF then failwith "Unexpected end of file" else tok :: (recurse_until stop_tok f lexbuf) # 31 "mll_lexer.ml" let __ocaml_lex_tables = { Lexing.lex_base = "\000\000\241\255\242\255\085\000\002\000\246\255\247\255\248\255\ \249\255\251\255\252\255\002\000\002\000\005\000\254\255\253\255\ \174\000\006\000\245\255\247\000\000\000\007\000\244\255\184\000\ \014\001\004\000\250\255\084\001\175\000\255\255\157\001\194\000\ \015\000\026\000\225\000\180\001"; Lexing.lex_backtrk = "\255\255\255\255\255\255\012\000\013\000\255\255\255\255\255\255\ \255\255\255\255\255\255\013\000\005\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\001\000\255\255\004\000\004\000\ \002\000\002\000\255\255\255\255"; Lexing.lex_default = "\002\000\000\000\000\000\255\255\017\000\000\000\000\000\000\000\ \000\000\000\000\000\000\255\255\255\255\255\255\000\000\000\000\ \255\255\255\255\000\000\255\255\255\255\255\255\000\000\255\255\ \255\255\028\000\000\000\009\000\028\000\000\000\255\255\255\255\ \255\255\255\255\255\255\255\255"; Lexing.lex_trans = "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\013\000\013\000\000\000\013\000\013\000\013\000\013\000\ \000\000\013\000\013\000\000\000\000\000\000\000\000\000\000\000\ \033\000\033\000\000\000\000\000\000\000\000\000\000\000\000\000\ \013\000\000\000\005\000\033\000\000\000\013\000\029\000\004\000\ \012\000\008\000\011\000\015\000\014\000\018\000\022\000\033\000\ \023\000\023\000\023\000\023\000\023\000\023\000\023\000\023\000\ \023\000\023\000\033\000\000\000\000\000\000\000\000\000\000\000\ \000\000\003\000\003\000\003\000\003\000\003\000\003\000\003\000\ \003\000\003\000\003\000\003\000\003\000\003\000\003\000\003\000\ \003\000\003\000\003\000\003\000\003\000\003\000\003\000\003\000\ \003\000\003\000\003\000\007\000\000\000\006\000\016\000\003\000\ \027\000\003\000\003\000\003\000\003\000\003\000\003\000\003\000\ \003\000\003\000\003\000\003\000\003\000\003\000\003\000\003\000\ \003\000\003\000\003\000\003\000\003\000\003\000\003\000\003\000\ \003\000\003\000\003\000\010\000\003\000\009\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\003\000\003\000\003\000\ \003\000\003\000\003\000\003\000\003\000\003\000\003\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\003\000\003\000\ \003\000\003\000\003\000\003\000\003\000\003\000\003\000\003\000\ \003\000\003\000\003\000\003\000\003\000\003\000\003\000\003\000\ \003\000\003\000\003\000\003\000\003\000\003\000\003\000\003\000\ \000\000\000\000\000\000\000\000\003\000\000\000\003\000\003\000\ \003\000\003\000\003\000\003\000\003\000\003\000\003\000\003\000\ \003\000\003\000\003\000\003\000\003\000\003\000\003\000\003\000\ \003\000\003\000\003\000\003\000\003\000\003\000\003\000\003\000\ \021\000\255\255\000\000\000\000\000\000\021\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\020\000\020\000\ \020\000\020\000\020\000\020\000\020\000\020\000\020\000\020\000\ \021\000\021\000\021\000\021\000\021\000\021\000\021\000\021\000\ \021\000\021\000\034\000\034\000\034\000\034\000\034\000\034\000\ \034\000\034\000\034\000\034\000\000\000\000\000\000\000\000\000\ \001\000\000\000\255\255\000\000\026\000\000\000\000\000\000\000\ \000\000\000\000\021\000\255\255\000\000\000\000\000\000\000\000\ \021\000\010\000\010\000\010\000\010\000\010\000\010\000\010\000\ \010\000\010\000\010\000\000\000\021\000\000\000\000\000\000\000\ \021\000\000\000\021\000\000\000\000\000\000\000\019\000\024\000\ \024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\ \024\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \024\000\024\000\024\000\024\000\024\000\024\000\021\000\021\000\ \021\000\021\000\021\000\021\000\021\000\021\000\021\000\021\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\000\ \021\000\021\000\021\000\021\000\021\000\000\000\000\000\000\000\ \024\000\024\000\024\000\024\000\024\000\024\000\033\000\000\000\ \000\000\032\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\000\ \021\000\021\000\021\000\021\000\021\000\000\000\010\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\031\000\031\000\031\000\031\000\ \031\000\031\000\031\000\031\000\031\000\031\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\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\ \010\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\000\000\ \000\000\000\000\010\000\000\000\000\000\000\000\010\000\000\000\ \010\000\000\000\000\000\000\000\030\000\035\000\035\000\035\000\ \035\000\035\000\035\000\035\000\035\000\035\000\035\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\035\000\035\000\ \035\000\035\000\035\000\035\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\000\000\000\000\000\000\035\000\035\000\ \035\000\035\000\035\000\035\000\000\000\000\000\000\000\000\000\ \000\000\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\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \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\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\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\000\000\000\000\013\000\013\000\ \255\255\013\000\013\000\255\255\255\255\255\255\255\255\255\255\ \032\000\032\000\255\255\255\255\255\255\255\255\255\255\255\255\ \000\000\255\255\000\000\033\000\255\255\013\000\025\000\000\000\ \000\000\000\000\000\000\011\000\012\000\017\000\021\000\032\000\ \020\000\020\000\020\000\020\000\020\000\020\000\020\000\020\000\ \020\000\020\000\033\000\255\255\255\255\255\255\255\255\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\000\000\255\255\000\000\004\000\000\000\ \025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\003\000\000\000\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\003\000\003\000\003\000\ \003\000\003\000\003\000\003\000\003\000\003\000\003\000\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\003\000\003\000\ \003\000\003\000\003\000\003\000\003\000\003\000\003\000\003\000\ \003\000\003\000\003\000\003\000\003\000\003\000\003\000\003\000\ \003\000\003\000\003\000\003\000\003\000\003\000\003\000\003\000\ \255\255\255\255\255\255\255\255\003\000\255\255\003\000\003\000\ \003\000\003\000\003\000\003\000\003\000\003\000\003\000\003\000\ \003\000\003\000\003\000\003\000\003\000\003\000\003\000\003\000\ \003\000\003\000\003\000\003\000\003\000\003\000\003\000\003\000\ \016\000\028\000\255\255\255\255\255\255\016\000\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\016\000\016\000\ \016\000\016\000\016\000\016\000\016\000\016\000\016\000\016\000\ \023\000\023\000\023\000\023\000\023\000\023\000\023\000\023\000\ \023\000\023\000\031\000\031\000\031\000\031\000\031\000\031\000\ \031\000\031\000\031\000\031\000\255\255\255\255\255\255\255\255\ \000\000\255\255\004\000\255\255\025\000\255\255\255\255\255\255\ \255\255\255\255\016\000\028\000\255\255\255\255\255\255\255\255\ \016\000\034\000\034\000\034\000\034\000\034\000\034\000\034\000\ \034\000\034\000\034\000\255\255\016\000\255\255\255\255\255\255\ \016\000\255\255\016\000\255\255\255\255\255\255\016\000\019\000\ \019\000\019\000\019\000\019\000\019\000\019\000\019\000\019\000\ \019\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \019\000\019\000\019\000\019\000\019\000\019\000\024\000\024\000\ \024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\024\000\ \024\000\024\000\024\000\024\000\024\000\255\255\255\255\255\255\ \019\000\019\000\019\000\019\000\019\000\019\000\027\000\255\255\ \255\255\027\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\024\000\ \024\000\024\000\024\000\024\000\024\000\255\255\027\000\255\255\ \255\255\255\255\255\255\027\000\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\027\000\027\000\027\000\027\000\ \027\000\027\000\027\000\027\000\027\000\027\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\028\000\ \027\000\255\255\255\255\255\255\255\255\255\255\027\000\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\027\000\255\255\255\255\255\255\027\000\255\255\ \027\000\255\255\255\255\255\255\027\000\030\000\030\000\030\000\ \030\000\030\000\030\000\030\000\030\000\030\000\030\000\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\030\000\030\000\ \030\000\030\000\030\000\030\000\035\000\035\000\035\000\035\000\ \035\000\035\000\035\000\035\000\035\000\035\000\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\035\000\035\000\035\000\ \035\000\035\000\035\000\255\255\255\255\255\255\030\000\030\000\ \030\000\030\000\030\000\030\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\035\000\035\000\035\000\ \035\000\035\000\035\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\027\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"; 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 definition lexbuf = __ocaml_lex_definition_rec lexbuf 0 and __ocaml_lex_definition_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 37 "mll_lexer.mll" ( let s = Lexing.lexeme lexbuf in `Sep s ) # 250 "mll_lexer.ml" | 1 -> # 41 "mll_lexer.mll" ( let r = `Comment (recurse_until `E_Comment definition lexbuf) in r ) # 258 "mll_lexer.ml" | 2 -> # 46 "mll_lexer.mll" ( `E_Comment ) # 263 "mll_lexer.ml" | 3 -> # 48 "mll_lexer.mll" ( let p = Lexing.lexeme_start_p lexbuf in `Brace (p, recurse_until `E_Brace definition lexbuf) ) # 269 "mll_lexer.ml" | 4 -> # 51 "mll_lexer.mll" ( `E_Brace ) # 274 "mll_lexer.ml" | 5 -> # 53 "mll_lexer.mll" ( `Paren (recurse_until `E_Paren definition lexbuf) ) # 279 "mll_lexer.ml" | 6 -> # 55 "mll_lexer.mll" ( `E_Paren ) # 284 "mll_lexer.ml" | 7 -> # 57 "mll_lexer.mll" ( `Bracket (recurse_until `E_Bracket definition lexbuf) ) # 289 "mll_lexer.ml" | 8 -> # 59 "mll_lexer.mll" ( `E_Bracket ) # 294 "mll_lexer.ml" | 9 -> # 61 "mll_lexer.mll" ( let buf = Buffer.create 256 in while stringliteral buf lexbuf do () done; `Stringliteral (Buffer.contents buf) ) # 302 "mll_lexer.ml" | 10 -> # 66 "mll_lexer.mll" ( let s = Lexing.lexeme lexbuf in `Charliteral (String.sub s 1 1) ) # 309 "mll_lexer.ml" | 11 -> # 73 "mll_lexer.mll" ( let s = Lexing.lexeme lexbuf in `Charliteral (String.sub s 1 (String.length s - 2)) ) # 316 "mll_lexer.ml" | 12 -> # 77 "mll_lexer.mll" ( `Ident (Lexing.lexeme lexbuf) ) # 321 "mll_lexer.ml" | 13 -> # 79 "mll_lexer.mll" ( let s = Lexing.lexeme lexbuf in `Char s.[0] ) # 328 "mll_lexer.ml" | 14 -> # 83 "mll_lexer.mll" ( `EOF ) # 333 "mll_lexer.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_definition_rec lexbuf __ocaml_lex_state and stringliteral buf lexbuf = __ocaml_lex_stringliteral_rec buf lexbuf 25 and __ocaml_lex_stringliteral_rec buf lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 88 "mll_lexer.mll" ( false ) # 344 "mll_lexer.ml" | 1 -> # 90 "mll_lexer.mll" ( Buffer.add_string buf (Lexing.lexeme lexbuf); true ) # 351 "mll_lexer.ml" | 2 -> # 94 "mll_lexer.mll" ( true ) # 357 "mll_lexer.ml" | 3 -> # 99 "mll_lexer.mll" ( Buffer.add_string buf (Lexing.lexeme lexbuf); true ) # 364 "mll_lexer.ml" | 4 -> # 103 "mll_lexer.mll" ( failwith "illegal backslash escape" ) # 369 "mll_lexer.ml" | 5 -> # 105 "mll_lexer.mll" ( failwith "Unexpected end of file" ) # 374 "mll_lexer.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_stringliteral_rec buf lexbuf __ocaml_lex_state ;;