# 19 "yacc_lexer.mll" open Lex_syntax open Yacc_syntax open Yacc_parser (* Auxiliaries for the lexical analyzer *) let brace_depth = ref 0 and comment_depth = ref 0 and mark_count = ref 0 exception Lexical_error of string * int * int let handle_lexical_error fn lexbuf = let line = !current_line_num and column = Lexing.lexeme_start lexbuf - !current_line_start_pos in try fn lexbuf with Lexical_error(msg, _, _) -> raise(Lexical_error(msg, line, column)) (*s yacc keywords *) let keyword_table = Hashtbl.create 17 let _ = List.iter (fun (kwd, tok) -> Hashtbl.add keyword_table kwd tok) [ "token", Ttoken; "start", Tstart; "type", Ttype; "left", Tleft; "right", Tright; "nonassoc", Tnonassoc; "prec", Tprec ] let keyword_token lexbuf = try Hashtbl.find keyword_table (Lexing.lexeme lexbuf) with Not_found -> raise(Lexical_error ("unknown keyword " ^ String.escaped(Lexing.lexeme lexbuf), !current_line_num, Lexing.lexeme_start lexbuf - !current_line_start_pos)) let cur_loc lexbuf = { start_pos = Lexing.lexeme_start lexbuf; end_pos = Lexing.lexeme_end lexbuf; start_line = !current_line_num; start_col = Lexing.lexeme_start lexbuf - !current_line_start_pos } let reset_lexer f lexbuf = current_file_name := f; mark_count := 0; current_line_num := 1; current_line_start_pos := 0; current_lexbuf := lexbuf # 63 "yacc_lexer.ml" let __ocaml_lex_tables = { Lexing.lex_base = "\000\000\243\255\244\255\245\255\246\255\247\255\248\255\249\255\ \250\255\086\000\000\000\253\255\254\255\002\000\252\255\112\000\ \160\000\255\255\017\001\001\000\034\000\002\000\245\000\000\000\ \251\255\000\000\001\000\188\000\002\000\083\000\000\000\019\001\ \066\001\198\000\013\000\023\001\010\001\062\001\052\000\005\000\ \019\000\095\001\024\000\076\001\025\000\117\001\053\000\136\000\ \047\000"; Lexing.lex_backtrk = "\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\004\000\012\000\255\255\255\255\000\000\255\255\255\255\ \002\000\255\255\255\255\010\000\010\000\010\000\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\004\000\255\255\ \006\000\255\255\001\000\255\255\255\255\255\255\009\000\009\000\ \009\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \003\000"; Lexing.lex_default = "\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\255\255\255\255\000\000\000\000\255\255\000\000\014\000\ \255\255\000\000\003\000\255\255\023\000\255\255\255\255\255\255\ \000\000\255\255\255\255\255\255\255\255\024\000\255\255\007\000\ \255\255\255\255\255\255\255\255\255\255\004\000\042\000\255\255\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\014\000\ \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\011\000\013\000\013\000\013\000\013\000\013\000\ \000\000\000\000\000\000\000\000\000\000\000\000\034\000\000\000\ \000\000\034\000\034\000\000\000\000\000\000\000\000\000\000\000\ \013\000\000\000\013\000\000\000\000\000\004\000\000\000\024\000\ \008\000\007\000\014\000\006\000\012\000\034\000\012\000\010\000\ \027\000\027\000\027\000\027\000\027\000\027\000\027\000\027\000\ \027\000\027\000\005\000\006\000\003\000\017\000\014\000\024\000\ \008\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\ \009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\ \009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\ \009\000\009\000\009\000\014\000\007\000\011\000\017\000\000\000\ \000\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\ \009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\ \009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\ \009\000\009\000\009\000\008\000\007\000\009\000\022\000\011\000\ \030\000\000\000\000\000\000\000\000\000\000\000\009\000\009\000\ \009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\ \041\000\017\000\011\000\000\000\000\000\017\000\000\000\009\000\ \009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\ \009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\ \009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\ \009\000\000\000\048\000\000\000\000\000\009\000\000\000\009\000\ \009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\ \009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\ \009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\ \009\000\016\000\016\000\016\000\016\000\016\000\016\000\016\000\ \016\000\016\000\016\000\016\000\016\000\016\000\016\000\016\000\ \016\000\016\000\016\000\016\000\016\000\016\000\016\000\016\000\ \016\000\016\000\016\000\012\000\028\000\028\000\028\000\028\000\ \028\000\028\000\028\000\028\000\028\000\028\000\036\000\036\000\ \036\000\036\000\036\000\036\000\036\000\036\000\036\000\036\000\ \002\000\016\000\016\000\016\000\016\000\016\000\016\000\016\000\ \016\000\016\000\016\000\016\000\016\000\016\000\016\000\016\000\ \016\000\016\000\016\000\016\000\016\000\016\000\016\000\016\000\ \016\000\016\000\016\000\004\000\026\000\008\000\000\000\000\000\ \035\000\034\000\255\255\035\000\035\000\025\000\025\000\025\000\ \025\000\025\000\025\000\025\000\025\000\025\000\025\000\000\000\ \000\000\000\000\000\000\014\000\255\255\017\000\021\000\035\000\ \020\000\019\000\014\000\014\000\014\000\014\000\014\000\014\000\ \014\000\014\000\014\000\014\000\000\000\000\000\000\000\000\000\ \005\000\000\000\000\000\035\000\034\000\000\000\035\000\035\000\ \000\000\026\000\000\000\012\000\000\000\000\000\000\000\026\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \011\000\000\000\035\000\026\000\011\000\038\000\040\000\026\000\ \039\000\026\000\000\000\000\000\000\000\000\000\000\000\032\000\ \255\255\000\000\033\000\033\000\033\000\033\000\033\000\033\000\ \033\000\033\000\033\000\033\000\045\000\045\000\045\000\045\000\ \045\000\045\000\045\000\045\000\045\000\045\000\044\000\000\000\ \012\000\000\000\000\000\000\000\017\000\000\000\012\000\043\000\ \043\000\043\000\043\000\043\000\043\000\043\000\043\000\043\000\ \043\000\000\000\000\000\000\000\000\000\000\000\011\000\000\000\ \000\000\000\000\000\000\000\000\011\000\046\000\046\000\046\000\ \046\000\046\000\046\000\046\000\046\000\046\000\046\000\000\000\ \011\000\000\000\000\000\000\000\011\000\000\000\011\000\000\000\ \000\000\000\000\000\000\044\000\000\000\000\000\000\000\000\000\ \000\000\044\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\044\000\000\000\000\000\ \000\000\044\000\000\000\044\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\005\000\000\000\024\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\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\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\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\013\000\000\000\000\000\013\000\013\000\ \255\255\255\255\255\255\255\255\255\255\255\255\034\000\255\255\ \255\255\034\000\034\000\255\255\255\255\255\255\255\255\255\255\ \000\000\255\255\013\000\255\255\255\255\000\000\255\255\023\000\ \026\000\028\000\010\000\019\000\000\000\034\000\039\000\000\000\ \025\000\025\000\025\000\025\000\025\000\025\000\025\000\025\000\ \025\000\025\000\000\000\000\000\000\000\040\000\030\000\042\000\ \044\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ \000\000\000\000\000\000\038\000\046\000\029\000\048\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\000\000\000\000\009\000\020\000\021\000\ \029\000\255\255\255\255\255\255\255\255\255\255\009\000\009\000\ \009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\ \038\000\029\000\047\000\255\255\255\255\015\000\255\255\009\000\ \009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\ \009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\ \009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\ \009\000\255\255\047\000\255\255\255\255\009\000\255\255\009\000\ \009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\ \009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\ \009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\ \009\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\015\000\027\000\027\000\027\000\027\000\ \027\000\027\000\027\000\027\000\027\000\027\000\033\000\033\000\ \033\000\033\000\033\000\033\000\033\000\033\000\033\000\033\000\ \000\000\016\000\016\000\016\000\016\000\016\000\016\000\016\000\ \016\000\016\000\016\000\016\000\016\000\016\000\016\000\016\000\ \016\000\016\000\016\000\016\000\016\000\016\000\016\000\016\000\ \016\000\016\000\016\000\018\000\022\000\031\000\255\255\255\255\ \035\000\035\000\020\000\035\000\035\000\022\000\022\000\022\000\ \022\000\022\000\022\000\022\000\022\000\022\000\022\000\255\255\ \255\255\255\255\255\255\018\000\038\000\031\000\018\000\035\000\ \018\000\018\000\036\000\036\000\036\000\036\000\036\000\036\000\ \036\000\036\000\036\000\036\000\255\255\255\255\255\255\255\255\ \037\000\255\255\255\255\032\000\032\000\255\255\032\000\032\000\ \255\255\022\000\255\255\029\000\255\255\255\255\255\255\022\000\ \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ \037\000\255\255\032\000\022\000\032\000\037\000\037\000\022\000\ \037\000\022\000\255\255\255\255\255\255\255\255\255\255\031\000\ \015\000\255\255\032\000\032\000\032\000\032\000\032\000\032\000\ \032\000\032\000\032\000\032\000\043\000\043\000\043\000\043\000\ \043\000\043\000\043\000\043\000\043\000\043\000\041\000\255\255\ \047\000\255\255\255\255\255\255\018\000\255\255\018\000\041\000\ \041\000\041\000\041\000\041\000\041\000\041\000\041\000\041\000\ \041\000\255\255\255\255\255\255\255\255\255\255\032\000\255\255\ \255\255\255\255\255\255\255\255\032\000\045\000\045\000\045\000\ \045\000\045\000\045\000\045\000\045\000\045\000\045\000\255\255\ \032\000\255\255\255\255\255\255\032\000\255\255\032\000\255\255\ \255\255\255\255\255\255\041\000\255\255\255\255\255\255\255\255\ \255\255\041\000\255\255\255\255\255\255\255\255\255\255\255\255\ \255\255\255\255\255\255\255\255\255\255\041\000\255\255\255\255\ \255\255\041\000\255\255\041\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\018\000\255\255\031\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\037\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"; 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 main lexbuf = __ocaml_lex_main_rec lexbuf 0 and __ocaml_lex_main_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 85 "yacc_lexer.mll" ( main lexbuf ) # 270 "yacc_lexer.ml" | 1 -> # 98 "yacc_lexer.mll" ( issue_warning "use of commas in mly files is allowed but not conform to ocamlyacc documentation"; main lexbuf ) # 277 "yacc_lexer.ml" | 2 -> # 103 "yacc_lexer.mll" ( current_line_start_pos := Lexing.lexeme_end lexbuf; incr current_line_num; main lexbuf ) # 284 "yacc_lexer.ml" | 3 -> # 107 "yacc_lexer.mll" ( handle_lexical_error yacc_comment lexbuf; main lexbuf ) # 290 "yacc_lexer.ml" | 4 -> # 110 "yacc_lexer.mll" ( match Lexing.lexeme lexbuf with "error" -> Terror | s -> let l = cur_loc lexbuf in (*i Printf.eprintf "ident '%s' occurs at (%d,%d)\n" s l.start_pos l.end_pos; i*) Tident (s,l) ) # 302 "yacc_lexer.ml" | 5 -> # 119 "yacc_lexer.mll" ( let n1 = Lexing.lexeme_end lexbuf and l1 = !current_line_num and s1 = !current_line_start_pos in brace_depth := 1; let n2 = handle_lexical_error action lexbuf in Taction({start_pos = n1; end_pos = n2; start_line = l1; start_col = n1 - s1}) ) # 313 "yacc_lexer.ml" | 6 -> # 127 "yacc_lexer.mll" ( Tor ) # 318 "yacc_lexer.ml" | 7 -> # 129 "yacc_lexer.mll" ( Tsemicolon ) # 323 "yacc_lexer.ml" | 8 -> # 131 "yacc_lexer.mll" ( Tcolon ) # 328 "yacc_lexer.ml" | 9 -> # 133 "yacc_lexer.mll" ( yacc_keyword lexbuf ) # 333 "yacc_lexer.ml" | 10 -> # 135 "yacc_lexer.mll" ( let n1 = Lexing.lexeme_end lexbuf and l1 = !current_line_num and s1 = !current_line_start_pos in let n2 = handle_lexical_error typedecl lexbuf in Ttypedecl({start_pos = n1; end_pos = n2; start_line = l1; start_col = n1 - s1}) ) # 343 "yacc_lexer.ml" | 11 -> # 142 "yacc_lexer.mll" ( EOF ) # 348 "yacc_lexer.ml" | 12 -> # 144 "yacc_lexer.mll" ( raise(Lexical_error ("illegal character " ^ String.escaped(Lexing.lexeme lexbuf), !current_line_num, Lexing.lexeme_start lexbuf - !current_line_start_pos)) ) # 355 "yacc_lexer.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_main_rec lexbuf __ocaml_lex_state and yacc_keyword lexbuf = __ocaml_lex_yacc_keyword_rec lexbuf 15 and __ocaml_lex_yacc_keyword_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 150 "yacc_lexer.mll" ( incr mark_count; if !mark_count = 1 then Tmark else let n1 = Lexing.lexeme_end lexbuf and l1 = !current_line_num and s1 = !current_line_start_pos in brace_depth := 0; let n2 = handle_lexical_error action lexbuf in Taction({start_pos = n1; end_pos = n2; start_line = l1; start_col = n1 - s1}) ) # 374 "yacc_lexer.ml" | 1 -> # 160 "yacc_lexer.mll" ( let n1 = Lexing.lexeme_end lexbuf and l1 = !current_line_num and s1 = !current_line_start_pos in brace_depth := 1; let n2 = handle_lexical_error action lexbuf in Taction({start_pos = n1; end_pos = n2; start_line = l1; start_col = n1 - s1}) ) # 385 "yacc_lexer.ml" | 2 -> # 168 "yacc_lexer.mll" ( keyword_token lexbuf ) # 390 "yacc_lexer.ml" | 3 -> # 170 "yacc_lexer.mll" ( raise(Lexical_error ("illegal character " ^ String.escaped(Lexing.lexeme lexbuf), !current_line_num, Lexing.lexeme_start lexbuf - !current_line_start_pos)) ) # 397 "yacc_lexer.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_yacc_keyword_rec lexbuf __ocaml_lex_state and action lexbuf = __ocaml_lex_action_rec lexbuf 18 and __ocaml_lex_action_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 179 "yacc_lexer.mll" ( incr brace_depth; action lexbuf ) # 409 "yacc_lexer.ml" | 1 -> # 182 "yacc_lexer.mll" ( decr brace_depth; if !brace_depth = 0 then Lexing.lexeme_start lexbuf else action lexbuf ) # 415 "yacc_lexer.ml" | 2 -> # 185 "yacc_lexer.mll" ( decr brace_depth; if !brace_depth = 0 then Lexing.lexeme_start lexbuf else raise(Lexical_error ("ill-balanced brace ", !current_line_num, Lexing.lexeme_start lexbuf - !current_line_start_pos)) ) # 424 "yacc_lexer.ml" | 3 -> # 191 "yacc_lexer.mll" ( string lexbuf; action lexbuf ) # 430 "yacc_lexer.ml" | 4 -> # 194 "yacc_lexer.mll" ( action lexbuf ) # 435 "yacc_lexer.ml" | 5 -> # 196 "yacc_lexer.mll" ( action lexbuf ) # 440 "yacc_lexer.ml" | 6 -> # 198 "yacc_lexer.mll" ( action lexbuf ) # 445 "yacc_lexer.ml" | 7 -> # 200 "yacc_lexer.mll" ( comment_depth := 1; comment lexbuf; action lexbuf ) # 452 "yacc_lexer.ml" | 8 -> # 204 "yacc_lexer.mll" ( if !brace_depth = 0 then Lexing.lexeme_start lexbuf else raise (Lexical_error("unterminated action", 0, 0)) ) # 458 "yacc_lexer.ml" | 9 -> # 207 "yacc_lexer.mll" ( current_line_start_pos := Lexing.lexeme_end lexbuf; incr current_line_num; action lexbuf ) # 465 "yacc_lexer.ml" | 10 -> # 211 "yacc_lexer.mll" ( action lexbuf ) # 470 "yacc_lexer.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_action_rec lexbuf __ocaml_lex_state and typedecl lexbuf = __ocaml_lex_typedecl_rec lexbuf 29 and __ocaml_lex_typedecl_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 217 "yacc_lexer.mll" ( Lexing.lexeme_start lexbuf ) # 481 "yacc_lexer.ml" | 1 -> # 219 "yacc_lexer.mll" ( raise (Lexical_error("unterminated type declaration", 0, 0)) ) # 486 "yacc_lexer.ml" | 2 -> # 221 "yacc_lexer.mll" ( current_line_start_pos := Lexing.lexeme_end lexbuf; incr current_line_num; typedecl lexbuf ) # 493 "yacc_lexer.ml" | 3 -> # 225 "yacc_lexer.mll" ( typedecl lexbuf ) # 498 "yacc_lexer.ml" | 4 -> # 227 "yacc_lexer.mll" ( typedecl lexbuf ) # 503 "yacc_lexer.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_typedecl_rec lexbuf __ocaml_lex_state and string lexbuf = __ocaml_lex_string_rec lexbuf 31 and __ocaml_lex_string_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 231 "yacc_lexer.mll" ( () ) # 514 "yacc_lexer.ml" | 1 -> # 233 "yacc_lexer.mll" ( current_line_start_pos := Lexing.lexeme_end lexbuf; incr current_line_num; string lexbuf ) # 521 "yacc_lexer.ml" | 2 -> # 237 "yacc_lexer.mll" ( string lexbuf ) # 526 "yacc_lexer.ml" | 3 -> # 239 "yacc_lexer.mll" ( string lexbuf ) # 531 "yacc_lexer.ml" | 4 -> # 241 "yacc_lexer.mll" ( raise(Lexical_error("unterminated string", 0, 0)) ) # 536 "yacc_lexer.ml" | 5 -> # 243 "yacc_lexer.mll" ( current_line_start_pos := Lexing.lexeme_end lexbuf; incr current_line_num; string lexbuf ) # 543 "yacc_lexer.ml" | 6 -> # 247 "yacc_lexer.mll" ( string lexbuf ) # 548 "yacc_lexer.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_string_rec lexbuf __ocaml_lex_state and comment lexbuf = __ocaml_lex_comment_rec lexbuf 37 and __ocaml_lex_comment_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 251 "yacc_lexer.mll" ( incr comment_depth; comment lexbuf ) # 559 "yacc_lexer.ml" | 1 -> # 253 "yacc_lexer.mll" ( decr comment_depth; if !comment_depth = 0 then () else comment lexbuf ) # 565 "yacc_lexer.ml" | 2 -> # 256 "yacc_lexer.mll" ( string lexbuf; comment lexbuf ) # 571 "yacc_lexer.ml" | 3 -> # 259 "yacc_lexer.mll" ( comment lexbuf ) # 576 "yacc_lexer.ml" | 4 -> # 261 "yacc_lexer.mll" ( comment lexbuf ) # 581 "yacc_lexer.ml" | 5 -> # 263 "yacc_lexer.mll" ( comment lexbuf ) # 586 "yacc_lexer.ml" | 6 -> # 265 "yacc_lexer.mll" ( comment lexbuf ) # 591 "yacc_lexer.ml" | 7 -> # 267 "yacc_lexer.mll" ( raise(Lexical_error("unterminated comment", 0, 0)) ) # 596 "yacc_lexer.ml" | 8 -> # 269 "yacc_lexer.mll" ( current_line_start_pos := Lexing.lexeme_end lexbuf; incr current_line_num; comment lexbuf ) # 603 "yacc_lexer.ml" | 9 -> # 273 "yacc_lexer.mll" ( comment lexbuf ) # 608 "yacc_lexer.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_comment_rec lexbuf __ocaml_lex_state and yacc_comment lexbuf = __ocaml_lex_yacc_comment_rec lexbuf 47 and __ocaml_lex_yacc_comment_rec lexbuf __ocaml_lex_state = match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with | 0 -> # 277 "yacc_lexer.mll" ( () ) # 619 "yacc_lexer.ml" | 1 -> # 279 "yacc_lexer.mll" ( raise(Lexical_error("unterminated yacc comment", 0, 0)) ) # 624 "yacc_lexer.ml" | 2 -> # 281 "yacc_lexer.mll" ( current_line_start_pos := Lexing.lexeme_end lexbuf; incr current_line_num; yacc_comment lexbuf ) # 631 "yacc_lexer.ml" | 3 -> # 285 "yacc_lexer.mll" ( yacc_comment lexbuf ) # 636 "yacc_lexer.ml" | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_yacc_comment_rec lexbuf __ocaml_lex_state ;;