# 17 "menhir-20181113/src/lexdep.mll"
 

  open Lexing

  exception Error of string

  let fail lexbuf =
    raise (Error
      (Printf.sprintf
         "failed to make sense of ocamldep's output (character %d).\n"
         lexbuf.lex_curr_p.pos_cnum)
    )


# 17 "menhir-20181113/src/lexdep.ml"
let __ocaml_lex_tables = {
  Lexing.lex_base =
   "\000\000\253\255\002\000\255\255\007\000\009\000\015\000\017\000\
    \059\000\254\255\023\000\012\000\042\000\070\000\253\255\004\000\
    \254\255\025\000\080\000\101\000\027\000\110\000\116\000\122\000\
    \131\000\151\000\169\000\160\000";
  Lexing.lex_backtrk =
   "\255\255\255\255\002\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\001\000\
    \255\255\002\000\002\000\255\255\255\255\255\255\255\255\001\000\
    \255\255\255\255\255\255\000\000";
  Lexing.lex_default =
   "\002\000\000\000\004\000\000\000\004\000\004\000\004\000\004\000\
    \004\000\000\000\255\255\255\255\255\255\014\000\000\000\255\255\
    \000\000\255\255\019\000\019\000\255\255\019\000\019\000\019\000\
    \019\000\019\000\019\000\019\000";
  Lexing.lex_trans =
   "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
    \000\000\001\000\001\000\255\255\255\255\001\000\016\000\255\255\
    \255\255\255\255\255\255\255\255\255\255\011\000\255\255\000\000\
    \255\255\255\255\255\255\255\255\255\255\000\000\255\255\000\000\
    \001\000\011\000\255\255\021\000\012\000\021\000\022\000\255\255\
    \022\000\255\255\000\000\000\000\011\000\000\000\000\000\255\255\
    \005\000\255\255\000\000\011\000\011\000\005\000\000\000\005\000\
    \000\000\000\000\001\000\000\000\255\255\005\000\000\000\005\000\
    \000\000\255\255\000\000\255\255\011\000\255\255\009\000\000\000\
    \255\255\255\255\011\000\255\255\000\000\000\000\000\000\018\000\
    \016\000\000\000\000\000\015\000\000\000\000\000\000\000\000\000\
    \000\000\021\000\016\000\011\000\001\000\015\000\255\255\000\000\
    \000\000\000\000\000\000\255\255\009\000\255\255\018\000\000\000\
    \010\000\005\000\000\000\255\255\006\000\255\255\255\255\255\255\
    \021\000\000\000\255\255\000\000\000\000\009\000\000\000\021\000\
    \016\000\000\000\008\000\015\000\007\000\021\000\023\000\000\000\
    \008\000\015\000\000\000\021\000\016\000\255\255\010\000\015\000\
    \000\000\008\000\255\255\000\000\255\255\255\255\021\000\000\000\
    \255\255\000\000\000\000\024\000\021\000\000\000\000\000\010\000\
    \000\000\000\000\021\000\000\000\000\000\000\000\000\000\255\255\
    \255\255\255\255\017\000\255\255\255\255\000\000\000\000\000\000\
    \255\255\255\255\255\255\000\000\020\000\255\255\255\255\000\000\
    \000\000\024\000\255\255\255\255\255\255\000\000\255\255\255\255\
    \000\000\000\000\000\000\000\000\000\000\255\255\000\000\000\000\
    \255\255\255\255\000\000\000\000\000\000\024\000\000\000\000\000\
    \000\000\255\255\020\000\000\000\000\000\000\000\024\000\000\000\
    \020\000\255\255\000\000\000\000\000\000\000\000\020\000\024\000\
    \000\000\000\000\255\255\000\000\000\000\000\000\000\000\255\255\
    \000\000\000\000\000\000\255\255\000\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\255\255\000\000\000\000\000\000\000\000\
    \000\000\000\000\000\000\000\000\255\255\000\000\000\000\000\000\
    \003\000\000\000\255\255\000\000\026\000\255\255\000\000\255\255\
    \000\000\255\255\000\000\000\000\000\000\000\000\000\000\255\255\
    \000\000\255\255\027\000\000\000\000\000\000\000\000\000\000\000\
    \027\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
    \000\000\027\000\000\000\000\000\000\000\000\000\000\000\000\000\
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\
    \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\255\255\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\255\255\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\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\255\255\
    \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\255\255";
  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\002\000\002\000\000\000\015\000\002\000\
    \004\000\004\000\005\000\005\000\004\000\011\000\005\000\255\255\
    \006\000\006\000\007\000\007\000\006\000\255\255\007\000\255\255\
    \000\000\010\000\002\000\017\000\010\000\020\000\017\000\004\000\
    \020\000\005\000\255\255\255\255\011\000\255\255\255\255\006\000\
    \002\000\007\000\255\255\012\000\012\000\004\000\255\255\005\000\
    \255\255\255\255\000\000\255\255\002\000\006\000\255\255\007\000\
    \255\255\004\000\255\255\005\000\008\000\008\000\011\000\255\255\
    \008\000\006\000\012\000\007\000\255\255\255\255\255\255\013\000\
    \013\000\255\255\255\255\013\000\255\255\255\255\255\255\255\255\
    \255\255\018\000\018\000\008\000\000\000\018\000\002\000\255\255\
    \255\255\255\255\255\255\004\000\012\000\005\000\013\000\255\255\
    \011\000\008\000\255\255\006\000\005\000\007\000\019\000\019\000\
    \018\000\255\255\019\000\255\255\255\255\008\000\255\255\021\000\
    \021\000\255\255\007\000\021\000\006\000\022\000\022\000\255\255\
    \007\000\022\000\255\255\023\000\023\000\019\000\012\000\023\000\
    \255\255\007\000\018\000\255\255\024\000\024\000\021\000\255\255\
    \024\000\255\255\255\255\019\000\022\000\255\255\255\255\008\000\
    \255\255\255\255\023\000\255\255\255\255\255\255\255\255\019\000\
    \025\000\025\000\013\000\024\000\025\000\255\255\255\255\255\255\
    \021\000\027\000\027\000\255\255\018\000\027\000\022\000\255\255\
    \255\255\024\000\026\000\026\000\023\000\255\255\026\000\025\000\
    \255\255\255\255\255\255\255\255\255\255\024\000\255\255\255\255\
    \027\000\019\000\255\255\255\255\255\255\025\000\255\255\255\255\
    \255\255\026\000\021\000\255\255\255\255\255\255\027\000\255\255\
    \022\000\025\000\255\255\255\255\255\255\255\255\023\000\026\000\
    \255\255\255\255\027\000\255\255\255\255\255\255\255\255\024\000\
    \255\255\255\255\255\255\026\000\255\255\255\255\024\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\025\000\255\255\255\255\255\255\255\255\
    \255\255\255\255\255\255\255\255\027\000\255\255\255\255\255\255\
    \000\000\255\255\002\000\255\255\025\000\026\000\255\255\004\000\
    \255\255\005\000\255\255\255\255\255\255\255\255\255\255\006\000\
    \255\255\007\000\026\000\255\255\255\255\255\255\255\255\255\255\
    \026\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
    \255\255\026\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\008\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\
    \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\019\000\255\255\255\255\
    \255\255\255\255\255\255\255\255\255\255\255\255\021\000\255\255\
    \255\255\255\255\255\255\255\255\022\000\255\255\255\255\255\255\
    \255\255\255\255\023\000\255\255\255\255\255\255\255\255\255\255\
    \255\255\255\255\255\255\024\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\025\000\
    \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\026\000";
  Lexing.lex_base_code =
   "\000\000\000\000\002\000\000\000\007\000\009\000\015\000\017\000\
    \059\000\012\000\000\000\000\000\000\000\005\000\000\000\000\000\
    \000\000\023\000\012\000\000\000\025\000\014\000\042\000\022\000\
    \000\000\000\000\000\000\000\000";
  Lexing.lex_backtrk_code =
   "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\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";
  Lexing.lex_default_code =
   "\001\000\000\000\001\000\000\000\001\000\001\000\001\000\001\000\
    \001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
    \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_trans_code =
   "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
    \000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\
    \000\000\000\000\000\000\000\000\000\000\001\000\000\000\001\000\
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\
    \000\000\001\000\000\000\001\000\001\000\001\000\001\000\000\000\
    \000\000\000\000\000\000\000\000\001\000\000\000\001\000\000\000\
    \004\000\000\000\000\000\001\000\001\000\004\000\001\000\007\000\
    \000\000\000\000\000\000\000\000\000\000\007\000\000\000\007\000\
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
    \000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
    \000\000\007\000\000\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\004\000\000\000\004\000\000\000\000\000\000\000\
    \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\000\
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
    \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_code =
   "\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
    \255\255\000\000\000\000\002\000\002\000\000\000\013\000\002\000\
    \004\000\004\000\005\000\005\000\004\000\018\000\005\000\021\000\
    \006\000\006\000\007\000\007\000\006\000\255\255\007\000\023\000\
    \000\000\017\000\002\000\020\000\017\000\013\000\020\000\004\000\
    \255\255\005\000\255\255\255\255\018\000\255\255\021\000\006\000\
    \002\000\007\000\255\255\022\000\022\000\004\000\023\000\005\000\
    \255\255\255\255\000\000\255\255\002\000\006\000\255\255\007\000\
    \255\255\004\000\255\255\005\000\008\000\008\000\255\255\255\255\
    \008\000\006\000\022\000\007\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\008\000\000\000\255\255\002\000\255\255\
    \255\255\255\255\255\255\004\000\255\255\005\000\255\255\255\255\
    \255\255\008\000\255\255\006\000\005\000\007\000\255\255\255\255\
    \255\255\255\255\255\255\255\255\255\255\008\000\255\255\255\255\
    \255\255\255\255\007\000\255\255\006\000\255\255\255\255\255\255\
    \007\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
    \255\255\007\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\008\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\
    \000\000\255\255\002\000\255\255\255\255\255\255\255\255\004\000\
    \255\255\005\000\255\255\255\255\255\255\255\255\255\255\006\000\
    \255\255\007\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\008\000";
  Lexing.lex_code =
   "\255\001\255\255\002\255\255\001\002\002\255\255\000\001\255";
}

let rec main lexbuf =
  lexbuf.Lexing.lex_mem <- Array.make 3 (-1); __ocaml_lex_main_rec lexbuf 0
and __ocaml_lex_main_rec lexbuf __ocaml_lex_state =
  match Lexing.new_engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
      | 0 ->
# 45 "menhir-20181113/src/lexdep.mll"
    ( [] )
# 252 "menhir-20181113/src/lexdep.ml"

  | 1 ->
let
# 38 "menhir-20181113/src/lexdep.mll"
                            basename
# 258 "menhir-20181113/src/lexdep.ml"
= Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_start_pos lexbuf.Lexing.lex_mem.(0)
and
# 38 "menhir-20181113/src/lexdep.mll"
                                                                 filename
# 263 "menhir-20181113/src/lexdep.ml"
= Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_start_pos (lexbuf.Lexing.lex_mem.(0) + 4) in
# 47 "menhir-20181113/src/lexdep.mll"
    ( let bfs = collect [] lexbuf in
      ((basename, filename), bfs) :: main lexbuf )
# 268 "menhir-20181113/src/lexdep.ml"

  | 2 ->
# 50 "menhir-20181113/src/lexdep.mll"
    ( fail lexbuf )
# 273 "menhir-20181113/src/lexdep.ml"

  | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf;
      __ocaml_lex_main_rec lexbuf __ocaml_lex_state

and collect bfs lexbuf =
  lexbuf.Lexing.lex_mem <- Array.make 2 (-1); __ocaml_lex_collect_rec bfs lexbuf 13
and __ocaml_lex_collect_rec bfs lexbuf __ocaml_lex_state =
  match Lexing.new_engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
      | 0 ->
let
# 38 "menhir-20181113/src/lexdep.mll"
                            basename
# 286 "menhir-20181113/src/lexdep.ml"
= Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_mem.(0) (lexbuf.Lexing.lex_curr_pos + -4)
and
# 38 "menhir-20181113/src/lexdep.mll"
                                                                 filename
# 291 "menhir-20181113/src/lexdep.ml"
= Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_mem.(0) lexbuf.Lexing.lex_curr_pos in
# 57 "menhir-20181113/src/lexdep.mll"
    ( collect ((basename, filename) :: bfs) lexbuf )
# 295 "menhir-20181113/src/lexdep.ml"

  | 1 ->
# 59 "menhir-20181113/src/lexdep.mll"
    ( bfs )
# 300 "menhir-20181113/src/lexdep.ml"

  | 2 ->
# 62 "menhir-20181113/src/lexdep.mll"
    ( fail lexbuf )
# 305 "menhir-20181113/src/lexdep.ml"

  | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf;
      __ocaml_lex_collect_rec bfs lexbuf __ocaml_lex_state

;;

