This commit is contained in:
@@ -246,6 +246,9 @@ seqq([Es|Ess]) --> seq(Es), seqq(Ess).
|
|||||||
Cs0 = Cs.
|
Cs0 = Cs.
|
||||||
... --> [] | [_], ... .
|
... --> [] | [_], ... .
|
||||||
|
|
||||||
|
% defer instantiation errors until runtime. instantiations may be made
|
||||||
|
% then.
|
||||||
|
error_goal(error(instantiation_error, _Context), _).
|
||||||
error_goal(error(E, must_be/2), error(E, must_be/2)).
|
error_goal(error(E, must_be/2), error(E, must_be/2)).
|
||||||
error_goal(error(E, (=..)/2), error(E, (=..)/2)).
|
error_goal(error(E, (=..)/2), error(E, (=..)/2)).
|
||||||
error_goal(error(representation_error(dcg_body), Context),
|
error_goal(error(representation_error(dcg_body), Context),
|
||||||
@@ -259,7 +262,11 @@ user:goal_expansion(phrase(GRBody, S, S0), GRBody2) :-
|
|||||||
E,
|
E,
|
||||||
dcgs:error_goal(E, GRBody1)
|
dcgs:error_goal(E, GRBody1)
|
||||||
),
|
),
|
||||||
( GRBody = (_:_) ->
|
( E = error(instantiation_error, _),
|
||||||
|
GRBody0 = [T|Ts] ->
|
||||||
|
GRBody2 = (error:must_be(list, [T|Ts]),
|
||||||
|
lists:append([T|Ts], S0, S))
|
||||||
|
; GRBody = (_:_) ->
|
||||||
GRBody2 = M:GRBody1
|
GRBody2 = M:GRBody1
|
||||||
; GRBody2 = GRBody1
|
; GRBody2 = GRBody1
|
||||||
).
|
).
|
||||||
|
|||||||
Reference in New Issue
Block a user