see #11368
@@ -121,7 +121,7 @@ let check_redundant_var p1 = parser
let parsing_macro_cond = ref false
-let rec parse_file s =
+let rec parse_file s =
last_doc := None;
match s with parser
| [< '(Kwd Package,_); pack = parse_package; s >] ->
@@ -355,6 +355,14 @@ let parse entry ctx code file =
) in
try
let l = entry s in
+ begin match Stream.peek s with
+ | None ->
+ () (* Eof could already have been consumed *)
+ | Some (Eof,_) ->
+ () (* This is what we want *)
+ | Some (tok,p) ->
+ error (Unexpected tok) p (* This isn't *)
+ end;
let was_display_file = !in_display_file in
restore();
Lexer.restore old;