diff options
Diffstat (limited to 'stdlib.pl')
-rw-r--r-- | stdlib.pl | 70 |
1 files changed, 69 insertions, 1 deletions
@@ -1,4 +1,47 @@ -:- module(system, []). +:-(module(system, [])). + +% Insert the standard operators + +:-(op(1200, fx, :-)). +:- op(1200, fx, ?-). +:- op(1200, xfx, :-). +:- op(1200, xfx, -->). +:- op(1100, xfy, ;). +:- op(1050, xfy, ->). +:- op(1000, xfy, ','). +:- op(900, fy, \+). +:- op(700, xfx, =). +:- op(700, xfx, \=). +:- op(700, xfx, ==). +:- op(700, xfx, \==). +:- op(700, xfx, @<). +:- op(700, xfx, @=<). +:- op(700, xfx, @>). +:- op(700, xfx, @>=). +:- op(700, xfx, =..). +:- op(700, xfx, is). +:- op(700, xfx, =:=). +:- op(700, xfx, =\=). +:- op(700, xfx, <). +:- op(700, xfx, =<). +:- op(700, xfx, >). +:- op(700, xfx, >=). +:- op(600, xfy, :). +:- op(500, yfx, +). +:- op(500, yfx, -). +:- op(500, yfx, /\). +:- op(500, yfx, \/). +:- op(400, yfx, *). +:- op(400, yfx, /). +:- op(400, yfx, //). +:- op(400, yfx, rem). +:- op(400, yfx, mod). +:- op(400, yfx, <<). +:- op(400, yfx, >>). +:- op(200, xfx, **). +:- op(200, xfy, ^). +:- op(200, fy, -). +:- op(200, fy, \). % Logic and control predicates \+ Goal :- call(Goal), !, fail. @@ -127,6 +170,28 @@ read(Term) :- read(S, Term) :- read_term(S, Term, []). +parse_write_option(quoted(true), option(quoted, 1)). +parse_write_option(quoted(false), option(quoted, 0)). +parse_write_option(ignore_ops(true), option(ignore_ops, 1)). +parse_write_option(ignore_ops(false), option(ignore_ops, 0)). +parse_write_option(numbervars(true), option(numbervars, 1)). +parse_write_option(numbervars(false), option(numbervars, 0)). + +parse_write_options([], []). +parse_write_options([Op|Rest], [OpParsed|RestParsed]) :- + is_nonvar(Op), + parse_write_options(Rest, RestParsed), + ( parse_write_option(Op, OpParsed) + -> true + ; domain_error(write_option, Op) + ). +write_term(S, Term, Options) :- + is_nonvar(Options), + is_list(Options), + parse_write_options(Options, ParsedOptions), + '$write_term'(S, Term, ParsedOptions). + + write_term(Term, Options) :- current_output(S), write_term(S, Term, Options). @@ -135,6 +200,9 @@ write(Term) :- current_output(S), write_term(S, Term, [numbervars(true)]). +write(S, Term) :- + write_term(S, Term, [numbervars(true)]). + writeq(Term) :- current_output(S), write_term(S, Term, [quoted(true), numbervars(true)]). |