diff --git a/CHANGES.md b/CHANGES.md index 17473390..758cfac8 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,6 +1,10 @@ unreleased ------------------- +- Add an optional `embed_errors` argument to `Context_free.map_top_down` that + controls how to deal with exceptions thrown by context-free rules. + (#, @NathanReb) + - Fix `Longident.parse` so it properly handles unparenthesized dotted operators such as `+.` or `*.`. (#111, @rgrinberg, @NathanReb) diff --git a/src/context_free.ml b/src/context_free.ml index b99b48e6..e7622933 100644 --- a/src/context_free.ml +++ b/src/context_free.ml @@ -401,7 +401,8 @@ module Expect_mismatch_handler = struct end class map_top_down ?(expect_mismatch_handler = Expect_mismatch_handler.nop) - ?(generated_code_hook = Generated_code_hook.nop) rules ~embed_errors = + ?(generated_code_hook = Generated_code_hook.nop) ?(embed_errors = false) rules + = let hook = generated_code_hook in let special_functions = diff --git a/src/context_free.mli b/src/context_free.mli index d6872761..38265c6f 100644 --- a/src/context_free.mli +++ b/src/context_free.mli @@ -149,8 +149,8 @@ class map_top_down : Expect_mismatch_handler.t (* default: Expect_mismatch_handler.nop *) -> ?generated_code_hook: Generated_code_hook.t (* default: Generated_code_hook.nop *) -> + ?embed_errors:bool -> Rule.t list -> - embed_errors:bool -> object inherit Ast_traverse.map_with_expansion_context_and_errors end