From e6c4ecfc10b60d802400d8450fb73a37a605b70f Mon Sep 17 00:00:00 2001 From: Mark Thom Date: Sat, 22 Jan 2022 12:22:50 -0700 Subject: [PATCH] lazily throw exceptions of dcg_body from goal-expanded phrase/{2,3} (#1244) --- src/lib/dcgs.pl | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/lib/dcgs.pl b/src/lib/dcgs.pl index 7d6dd905..488c7a92 100644 --- a/src/lib/dcgs.pl +++ b/src/lib/dcgs.pl @@ -156,6 +156,9 @@ seqq([Es|Ess]) --> seq(Es), seqq(Ess). user:goal_expansion(phrase(GRBody, S, S0), GRBody1) :- load_context(GRBody, M, GRBody0), nonvar(GRBody0), - dcg_body(GRBody0, S, S0, GRBody1, M). + catch(dcgs:dcg_body(GRBody0, S, S0, GRBody1, M), + error(E, must_be/2), + ( GRBody1 = throw(error(E, must_be/2)) ) + ). user:goal_expansion(phrase(GRBody, S), phrase(GRBody, S, [])). -- 2.54.0