let parse_sharp_position_directive lexbuf = 
  let str = Lexing.lexeme lexbuf in
  let str = if str.[0] = '#' then "\n" ^ str else str in
  let lno, fname = 
    Scanf.sscanf str "\n# %d \"%s@\"" (fun a b -> a, b) in
  filename := fname;
  lineno := lno;
  parse_newline lexbuf