fix several issues with goal expansion, crashing after attribute_goals is called
This commit is contained in:
@@ -18,7 +18,8 @@
|
||||
|
||||
'$default_attr_list'([PG | PGs], Module, AttrVar) -->
|
||||
( { '$module_of'(Module, PG) } -> [Module:put_atts(AttrVar, PG)]
|
||||
; { true } ),
|
||||
; true
|
||||
),
|
||||
'$default_attr_list'(PGs, Module, AttrVar).
|
||||
'$default_attr_list'([], _, _) --> [].
|
||||
|
||||
|
||||
@@ -160,6 +160,7 @@ comma_errors(G1, G2, B) :- '$call_with_default_policy'(','(G1, G2, B)).
|
||||
:- non_counted_backtracking (;)/3.
|
||||
;(G1, G4, B) :- compound(G1),
|
||||
'$call_with_default_policy'(G1 = ->(G2, G3)),
|
||||
!,
|
||||
(G2 -> G3 ; '$set_cp'(B), G4).
|
||||
;(G1, G2, B) :- G1 == !, '$set_cp'(B), G2.
|
||||
;(G1, G2, B) :- G2 == !, G1, '$set_cp'(B).
|
||||
|
||||
@@ -7,16 +7,7 @@
|
||||
|
||||
user:term_expansion(Term0, (Head :- Body)) :-
|
||||
dcg_rule(Term0, Term),
|
||||
Term = (Head :- Body0),
|
||||
unravel_commas(Body0, Body).
|
||||
|
||||
unravel_commas(((A, B), C), Body) :-
|
||||
!,
|
||||
unravel_commas((B, C), Body0),
|
||||
unravel_commas((A, Body0), Body).
|
||||
unravel_commas((A, B), (A, Body0)) :-
|
||||
!, unravel_commas(B, Body0).
|
||||
unravel_commas(Body, Body).
|
||||
Term = (Head :- Body).
|
||||
|
||||
phrase(GRBody, S0) :-
|
||||
phrase(GRBody, S0, []).
|
||||
|
||||
Reference in New Issue
Block a user