From: Mark Thom Date: Sun, 14 Aug 2022 02:46:52 +0000 (-0600) Subject: strip modules from GRBody in phrase/3 (#1565) X-Git-Tag: v0.9.1^2~41 X-Git-Url: https://git.sagredo.dev/?a=commitdiff_plain;h=78278c804f9d9e10a1e96e4792eba357352eb704;p=scryer-prolog.git strip modules from GRBody in phrase/3 (#1565) --- diff --git a/src/lib/dcgs.pl b/src/lib/dcgs.pl index 7435a520..13be7ace 100644 --- a/src/lib/dcgs.pl +++ b/src/lib/dcgs.pl @@ -20,12 +20,14 @@ phrase(GRBody, S0) :- phrase(GRBody, S0, []). phrase(GRBody, S0, S) :- + strip_module(GRBody, M, GRBody1), ( var(GRBody) -> instantiation_error(phrase/3) - ; dcg_constr(GRBody), - dcg_body(GRBody, S0, S, GRBody1) -> - call(GRBody1) - ; call(GRBody, S0, S) + ; nonvar(GRBody1), + dcg_constr(GRBody1), + dcg_body(GRBody1, S0, S, GRBody2) -> + call(GRBody2) + ; call(M:GRBody1, S0, S) ).