Markus Triska
3faf36440c
naming: partial_list_ws//1 --> list_ws//1
...
A DCG describes a list, so "list" is an appropriate name.
2020-03-31 01:23:00 +02:00
Mark Thom
9f960c25a5
add bimetatrans_ruleml.pl to examples
2020-03-30 20:00:08 -06:00
Stephan Renatus
7e6be23287
examples/least_time.pl: fix typo
...
Signed-off-by: Stephan Renatus <srenatus@chef.io >
2020-03-27 18:29:17 +01:00
Mark Thom
f7629362d7
Merge branch 'master' of https://github.com/mthom/rusty-wam
2020-03-19 20:42:37 -06:00
Mark Thom
ea0c396114
add least_time example
2020-03-19 20:42:11 -06:00
Mark Thom
057e2d8056
provide contextual information in the return value of try_in_situ_result
2020-03-19 20:41:58 -06:00
Mark Thom
487fe21e25
#278
2020-03-19 17:49:17 -06:00
Mark Thom
54dce9b60e
Merge pull request #294 from triska/format
...
ENHANCED: format_//2 now supports ~a, ~d, ~Nd, ~D, ~ND, ~Nn, ~i and ~*
2020-03-19 20:00:40 -03:00
Markus Triska
f09a3142a6
ENHANCED: format_//2 now supports ~a, ~d, ~Nd, ~D, ~ND, ~Nn, ~i and ~*
2020-03-19 21:51:53 +01:00
Mark Thom
b1d8eff019
remove Addr::PStrTail ( #276 )
2020-03-17 02:03:29 -06:00
Mark Thom
f9c4a40d60
add set_input/1, set_output/1
2020-03-15 23:29:21 -06:00
Mark Thom
8e318f76a7
correct contextual quoting of chars
2020-03-15 21:15:42 -06:00
Markus Triska
17a448e045
support 'h' to print help message during toplevel interaction
2020-03-15 13:42:51 +01:00
Markus Triska
7ff11dce35
support 'p' to reprint answer with max depth, allowing w -> p -> w ...
2020-03-15 13:26:49 +01:00
Mark Thom
bef96e231d
use max_depth at toplevel, allowing full printing of terms with the 'w' keypress ( #287 ), put disjunctions on new lines ( #278 )
2020-03-15 00:35:59 -06:00
Mark Thom
325df8a6e3
add provisional max_depth option to write_term, speed printing of non-cyclic terms
2020-03-15 00:09:20 -06:00
Mark Thom
3620f72b6c
output strings more efficiently
2020-03-14 18:17:11 -06:00
Mark Thom
42a90b2d40
don't emit overwriting warnings for term_expansion/2 or goal_expansion/2
2020-03-14 14:18:01 -06:00
Mark Thom
97aab6950c
correct DCG descriptions of lists ( #286 )
2020-03-14 14:14:26 -06:00
Mark Thom
31258247b3
Give new answer variables readable names ( #279 )
2020-03-14 03:04:11 -06:00
Mark Thom
beed4e8aa8
print strings as strings only in the term expander
2020-03-13 21:05:25 -06:00
Mark Thom
c60a0bc062
print strings as strings ( #285 )
2020-03-13 18:24:13 -06:00
Mark Thom
733c2d4152
eliminate inner_numbervar_count
2020-03-13 17:12:35 -06:00
Mark Thom
79b5857f72
Merge pull request #284 from triska/master
...
ADDED: library(format), describing strings with format_//2
2020-03-13 17:06:27 -03:00
Mark Thom
7260eba26a
allow module export of nonterminals ( #281 )
2020-03-13 15:40:03 -06:00
Mark Thom
7e7a1b2caf
properly handle '\n' when quoted and not ( #283 , #280 )
2020-03-13 15:32:56 -06:00
Mark Thom
99181e3302
fix -names ( #275 )
2020-03-13 13:49:12 -06:00
Mark Thom
d57d2b96d6
Revert "fix $VAR-names ( #275 ) and properly print single control chars ( #280 )"
...
This reverts commit d3eb31e4c3 .
2020-03-13 13:47:58 -06:00
Markus Triska
24bed8c548
ADDED: library(format), describing strings with format_//2
...
This library provides the nonterminal format_//2 to describe
formatted strings. format/2 is provided for impure output.
Usage:
======
phrase(format_(FormatString, Arguments), Ls)
format_//2 describes a list of characters Ls that are formatted
according to FormatString. FormatString is a string (i.e.,
a list of characters) that specifies the layout of Ls.
The characters in FormatString are used literally, except
for the following tokens with special meaning:
~w use the next available argument from Arguments here,
which must be atomic (a current limitation)
~f use the next argument here, a floating point number
~Nf where N is an integer: format the float argument
using N digits after the decimal point
~s use the next argument here, which must be a string
~N| where N is an integer: place a tab stop at text column N
~N+ where N is an integer: place a tab stop N characters
after the previous tab stop (or start of line)
~t distribute spaces evenly between the two closest tabstops
~`Ct like ~t, use character C instead of spaces to fill the space
~n newline
~~ the literal ~
The predicate format/2 is like format_//2, except that it outputs
the text on the terminal instead of describing it declaratively.
If at all possible, format_//2 should be used, to stress pure parts
that enable easy testing etc. If necessary, you can emit the list Ls
with maplist(write, Ls).
The entire library only works if the Prolog flag double_quotes
is set to chars, the default value in Scryer Prolog. This should
also stay that way, to encourage a sensible environment.
Example:
?- phrase(format_("~s~n~`.t~w!~12|", ["hello",there]), Cs).
%@ Cs = [h,e,l,l,o,'\n','.','.','.','.','.','.',t,h,e,r,e,!] ;
%@ false.
2020-03-13 20:46:53 +01:00
Mark Thom
6c9e704aa8
sort variables in findall_with_existential before computing set difference ( #282 ), trawl back changes of ( #279 )
2020-03-13 13:18:47 -06:00
Mark Thom
d3eb31e4c3
fix $VAR-names ( #275 ) and properly print single control chars ( #280 )
2020-03-13 02:48:40 -06:00
Mark Thom
698b01f85a
give new answer variables readable names ( #279 )
2020-03-13 02:40:06 -06:00
Mark Thom
4c88e97330
add current_output, printing of stream terms
2020-03-11 00:38:01 -06:00
Mark Thom
25babff827
add streams.rs, consume them in place of the old PrologStream
2020-03-09 11:56:16 -06:00
Mark Thom
22bb3fe876
replace termion with crossterm
2020-03-08 18:01:54 -06:00
Mark Thom
eee10d3ee7
fix broken conformity tests, quote left paren
2020-03-08 16:49:47 -06:00
Mark Thom
c7591045af
represent the current_dir as an absolute path, not a relative one. ( #262 )
2020-03-07 16:00:10 -07:00
Mark Thom
6ddfef6383
count single character atoms as characters when generating first argument indices
2020-03-06 21:19:53 -07:00
Mark Thom
9852e30b39
compare characters directly in term comparison tests
2020-03-05 12:50:11 -07:00
Mark Thom
2d3ce32314
switch to representation error for partial strings ( #267 )
2020-03-01 23:21:35 -07:00
Mark Thom
d8e0bea110
correct handling of strings and partial strings as lists, print bar operator with surrounding spaces ( #274 )
2020-03-01 00:00:40 -07:00
Mark Thom
2ebcd673c8
add s pointers for strings and partial strings, put_unsafe_value calls store earlier to avoid unnecessary heap writes ( #273 )
2020-02-28 23:42:40 -07:00
Mark Thom
aa5f186a96
allow set_prolog_flag in declarations
2020-02-28 21:42:22 -07:00
Mark Thom
934f73f696
remove cyclic_term/1
2020-02-27 16:19:48 -07:00
Mark Thom
993c6f0e7b
actually do lco, and mark unsafe variables before the goals where they last occur, not just in the last goal
2020-02-27 16:17:20 -07:00
Mark Thom
8ba92d8b99
update prolog_parser version, allow ('|') operator in DCGs ( #274 )
2020-02-23 13:16:14 -07:00
Mark Thom
af23258152
remove setof/3, bagof/3 non-determinism ( #270 )
2020-02-22 15:13:01 -07:00
Mark Thom
b2e50b42a3
rename non_iso.pl to iso_ext.pl ( #265 )
2020-02-22 00:58:37 -07:00
Mark Thom
003b4d0218
add comparisons between partial strings and string constants ( #263 )
2020-02-22 00:51:27 -07:00
Mark Thom
545472f9c4
correct misreported error in toplevel loop ( #272 )
2020-02-21 21:09:59 -07:00