ENHANCED: support quads in included files
Suggested by @dcnorris, many thanks!
https://github.com/mthom/scryer-prolog/issues/634#issuecomment-4003451420
This commit is contained in:
@@ -251,11 +251,40 @@ gather_clauses_(Stream, File, Clauses) :-
|
|||||||
( Error = error(syntax_error(incomplete_reduction),_),
|
( Error = error(syntax_error(incomplete_reduction),_),
|
||||||
at_end_of_stream(Stream) ->
|
at_end_of_stream(Stream) ->
|
||||||
true
|
true
|
||||||
; format("~s: ~q", [File,Error])
|
; format("~s: ~q~n", [File,Error])
|
||||||
)),
|
)),
|
||||||
( Continue == true ->
|
( Continue == true ->
|
||||||
Clauses = [Clause|Rest],
|
( var(Clause) ->
|
||||||
|
format("~s: variable clause is ignored.~n", [File]),
|
||||||
|
gather_clauses_(Stream, File, Clauses)
|
||||||
|
; Clause = (?- _Query) ->
|
||||||
|
devour_answer_descriptions(Stream, File, Clauses)
|
||||||
|
; Clauses = [Clause|Rest],
|
||||||
gather_clauses_(Stream, File, Rest)
|
gather_clauses_(Stream, File, Rest)
|
||||||
|
)
|
||||||
|
; Clauses = []
|
||||||
|
).
|
||||||
|
|
||||||
|
|
||||||
|
devour_answer_descriptions(Stream, File, Clauses) :-
|
||||||
|
catch((read(Stream, Clause),
|
||||||
|
Continue = true),
|
||||||
|
Error,
|
||||||
|
( Error = error(syntax_error(incomplete_reduction),_),
|
||||||
|
at_end_of_stream(Stream) ->
|
||||||
|
true
|
||||||
|
; format("~s: ~q~n", [File,Error])
|
||||||
|
)),
|
||||||
|
( Continue == true ->
|
||||||
|
( var(Clause) ->
|
||||||
|
format("~s: variable clause is ignored.~n", [File])
|
||||||
|
; Clause = (?- _Query) ->
|
||||||
|
devour_answer_descriptions(Stream, File, Clauses)
|
||||||
|
; loader:answer_description(Clause) ->
|
||||||
|
devour_answer_descriptions(Stream, File, Clauses)
|
||||||
|
; Clauses = [Clause|Rest],
|
||||||
|
gather_clauses_(Stream, File, Rest)
|
||||||
|
)
|
||||||
; Clauses = []
|
; Clauses = []
|
||||||
).
|
).
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user