remove now unnecessary dependencies, correct ordering of ! in (;)/3
This commit is contained in:
@@ -13,7 +13,6 @@ extern crate prolog_parser;
|
|||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate ref_thread_local;
|
extern crate ref_thread_local;
|
||||||
|
|
||||||
use git_version::git_version;
|
|
||||||
use nix::sys::signal;
|
use nix::sys::signal;
|
||||||
|
|
||||||
mod prolog;
|
mod prolog;
|
||||||
@@ -22,7 +21,6 @@ use crate::prolog::machine::*;
|
|||||||
use crate::prolog::machine::streams::*;
|
use crate::prolog::machine::streams::*;
|
||||||
use crate::prolog::read::*;
|
use crate::prolog::read::*;
|
||||||
|
|
||||||
use std::env;
|
|
||||||
use std::sync::atomic::Ordering;
|
use std::sync::atomic::Ordering;
|
||||||
|
|
||||||
extern fn handle_sigint(signal: libc::c_int) {
|
extern fn handle_sigint(signal: libc::c_int) {
|
||||||
|
|||||||
@@ -217,8 +217,8 @@ comma_errors(G1, G2, B) :- '$call_with_default_policy'(','(G1, G2, B)).
|
|||||||
semicolon_compound_selector(->(G2, G3), G4, B) :-
|
semicolon_compound_selector(->(G2, G3), G4, B) :-
|
||||||
( call(G2) ->
|
( call(G2) ->
|
||||||
call(G3)
|
call(G3)
|
||||||
; '$set_cp'(B),
|
; '$set_cp'(B),
|
||||||
call(G4)
|
call(G4)
|
||||||
).
|
).
|
||||||
semicolon_compound_selector(','(G2, G3), G4, B) :-
|
semicolon_compound_selector(','(G2, G3), G4, B) :-
|
||||||
( ','(G2, G3, B)
|
( ','(G2, G3, B)
|
||||||
@@ -233,9 +233,13 @@ semicolon_compound_selector(';'(G2, G3), G4, B) :-
|
|||||||
|
|
||||||
:- non_counted_backtracking (;)/3.
|
:- non_counted_backtracking (;)/3.
|
||||||
;(G1, G4, B) :-
|
;(G1, G4, B) :-
|
||||||
compound(G1),
|
( ( G1 = (_ -> _)
|
||||||
semicolon_compound_selector(G1, G4, B),
|
; G1 = (_ , _)
|
||||||
!.
|
; G1 = (_ ; _)
|
||||||
|
) ->
|
||||||
|
!,
|
||||||
|
semicolon_compound_selector(G1, G4, B)
|
||||||
|
).
|
||||||
;(G1, G2, B) :-
|
;(G1, G2, B) :-
|
||||||
G1 == !, !, '$set_cp'(B), call(G2).
|
G1 == !, !, '$set_cp'(B), call(G2).
|
||||||
;(G1, G2, B) :-
|
;(G1, G2, B) :-
|
||||||
@@ -1144,4 +1148,3 @@ parse_stream_options_(eof_action(Action), eof_action-Action) :-
|
|||||||
).
|
).
|
||||||
parse_stream_options_(E, _) :-
|
parse_stream_options_(E, _) :-
|
||||||
throw(error(domain_error(stream_option, E), _)). % 8.11.5.3i)
|
throw(error(domain_error(stream_option, E), _)). % 8.11.5.3i)
|
||||||
|
|
||||||
|
|||||||
@@ -11,8 +11,8 @@
|
|||||||
'$repl'([_|Args0]) :-
|
'$repl'([_|Args0]) :-
|
||||||
\+ argv(_),
|
\+ argv(_),
|
||||||
( append(Args1, ["--"|Args2], Args0) ->
|
( append(Args1, ["--"|Args2], Args0) ->
|
||||||
asserta(argv(Args2)),
|
asserta(argv(Args2)),
|
||||||
Args = Args1
|
Args = Args1
|
||||||
; asserta(argv([])),
|
; asserta(argv([])),
|
||||||
Args = Args0
|
Args = Args0
|
||||||
),
|
),
|
||||||
@@ -152,10 +152,10 @@ submit_query_and_print_results(Term0, VarList) :-
|
|||||||
|
|
||||||
needs_bracketing(Value, Op) :-
|
needs_bracketing(Value, Op) :-
|
||||||
catch((functor(Value, F, _),
|
catch((functor(Value, F, _),
|
||||||
current_op(EqPrec, EqSpec, Op),
|
current_op(EqPrec, EqSpec, Op),
|
||||||
current_op(FPrec, _, F)),
|
current_op(FPrec, _, F)),
|
||||||
_,
|
_,
|
||||||
false),
|
false),
|
||||||
( EqPrec < FPrec -> true
|
( EqPrec < FPrec -> true
|
||||||
; '$quoted_token'(F) -> true
|
; '$quoted_token'(F) -> true
|
||||||
; atom_length(F, 1), graphic_token_char(F) -> true
|
; atom_length(F, 1), graphic_token_char(F) -> true
|
||||||
|
|||||||
Reference in New Issue
Block a user