]> Repositorios git - scryer-prolog.git/commitdiff
do not accept [X|Xs] patterns as DCG non-terminals (#286)
authorMark Thom <[email protected]>
Sun, 12 Apr 2020 03:52:45 +0000 (21:52 -0600)
committerMark Thom <[email protected]>
Sun, 12 Apr 2020 03:52:45 +0000 (21:52 -0600)
src/prolog/lib/dcgs.pl

index e8e188449a07f0d9d81527e8c68fcd24b96ff142..bd35575dc5aad65c27becc6341e2b555dfa6a72e 100644 (file)
@@ -107,7 +107,8 @@ dcg_constr((_->_)). % 7.14.12 - if-then (existence implementation dep.)
 % The principal functor of the first argument indicates
 % the construct to be expanded.
 dcg_cbody([], S0, S, S0 = S).
-dcg_cbody([T|Ts], S0, S, lists:append([T|Ts], S, S0)).
+dcg_cbody([T|Ts], S0, S, Goal) :-
+    dcg_terminals([T|Ts], S0, S, Goal).
 dcg_cbody(( GRFirst, GRSecond ), S0, S, ( First, Second )) :-
     dcg_body(GRFirst, S0, S1, First),
     dcg_body(GRSecond, S1, S, Second).