print errors with line numbers in GNU style
This commit is contained in:
@@ -20,7 +20,7 @@ phrase(G, Ls0, Ls2) :-
|
||||
nonvar(G), G = (G1, G2), !,
|
||||
phrase(G1, Ls0, Ls1), phrase(G2, Ls1, Ls2).
|
||||
phrase(G, Ls0, Ls1) :-
|
||||
nonvar(G), G == !, !, Ls0 = [], Ls1 = [].
|
||||
nonvar(G), G == !, !, Ls0 = Ls1.
|
||||
phrase(G, Ls0, Ls1) :-
|
||||
call(G, Ls0, Ls1).
|
||||
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
:- module(terms, [numbervars/3]).
|
||||
|
||||
:- use_module(library(error)).
|
||||
|
||||
|
||||
numbervars(Term, N0, N) :-
|
||||
catch(internal_numbervars(Term, N0, N), error(E,Ctx),
|
||||
( ( var(Ctx) -> Ctx = numbervars/3 ; true ), throw(error(E,Ctx) ) ) ).
|
||||
catch(internal_numbervars(Term, N0, N),
|
||||
error(E,Ctx),
|
||||
( ( var(Ctx) -> Ctx = numbervars/3 ; true ), throw(error(E,Ctx) ) ) ).
|
||||
|
||||
internal_numbervars(Term, N0, N) :-
|
||||
must_be(integer, N0),
|
||||
@@ -12,7 +13,7 @@ internal_numbervars(Term, N0, N) :-
|
||||
term_variables(Term, Vars),
|
||||
numberlist(Vars, N0, N).
|
||||
|
||||
numberlist([], N,N).
|
||||
numberlist(['$VAR'(N0)|Vars], N0,N) :-
|
||||
numberlist([], N, N).
|
||||
numberlist(['$VAR'(N0)|Vars], N0, N) :-
|
||||
N1 is N0+1,
|
||||
numberlist(Vars, N1,N).
|
||||
numberlist(Vars, N1, N).
|
||||
|
||||
Reference in New Issue
Block a user