From: Mark Thom Date: Tue, 16 Oct 2018 04:31:53 +0000 (-0600) Subject: fix semicontext notation X-Git-Tag: v0.8.110~329 X-Git-Url: https://git.sagredo.dev/?a=commitdiff_plain;h=1b7ffa00af9cd961768f487a33e5ec91e1f4997d;p=scryer-prolog.git fix semicontext notation --- diff --git a/src/prolog/lib/dcgs.pl b/src/prolog/lib/dcgs.pl index 0d8eb076..43cbaad1 100644 --- a/src/prolog/lib/dcgs.pl +++ b/src/prolog/lib/dcgs.pl @@ -25,12 +25,11 @@ term_expansion(Term0, (ModHead :- ModBody)) :- !, nonvar(Head), Head =.. [RuleName | Args], - append(Args, ['$VAR'(0), '$VAR'(N)], ModArgs), %% problematic line. + append([SC | SCs], '$VAR'(N), SemiContextArgs), + append(Args, ['$VAR'(0), SemiContextArgs], ModArgs), ModHead =.. [RuleName | ModArgs], nonvar(Body), - expand_body(Body, ModBody1, 0, N1), - expand_body_term([SC | SCs], ModBody2, N1, N), - ModBody = (ModBody1, ModBody2). + expand_body(Body, ModBody, 0, N). term_expansion(Term0, (ModHead :- ModBody)) :- nonvar(Term0), Term0 = (Head --> Body),