fixes + win64
This commit is contained in:
@@ -248,6 +248,49 @@ split_within(SplitCodes, DoubleQs, C-SingleQs, Strings, C) -->
|
||||
split_within(SplitCodes, DoubleQs, SingleQs, [[C|String]|Strings], C) -->
|
||||
split_within(SplitCodes, DoubleQs, SingleQs, [String|Strings]).
|
||||
|
||||
/** @pred split_unquoted(+ _Line_,+ _Separators_,- _Split_)
|
||||
|
||||
|
||||
|
||||
Unify _Words_ with a set of strings obtained from _Line_ by
|
||||
using the character codes in _Separators_ as separators, but treat text wi
|
||||
thin double quotes as a single unit. As an
|
||||
example, consider:
|
||||
|
||||
~~~~~{.prolog}
|
||||
?- split("Hello * I \"am free\""," *",S).
|
||||
|
||||
S = ["Hello","I","am free"] ?
|
||||
|
||||
no
|
||||
~~~~~
|
||||
|
||||
*/
|
||||
split_unquoted(String, SplitCodes, Strings) :-
|
||||
split_unquoted_at_blank(SplitCodes, Strings, String, []).
|
||||
|
||||
split_unquoted_at_blank(SplitCodes, [[0'"|New]|More]) --> %0'"
|
||||
"\"",
|
||||
split_quoted(New, More),
|
||||
split_unquoted_at_blank(SplitCodes, More).
|
||||
split_unquoted_at_blank(SplitCodes, More) -->
|
||||
[C],
|
||||
{ member(C, SplitCodes) }, !,
|
||||
split_unquoted_at_blank(SplitCodes, More).
|
||||
split_unquoted_at_blank(SplitCodes, [[C|New]| More]) -->
|
||||
[C], !,
|
||||
split_unquoted(SplitCodes, New, More).
|
||||
split_unquoted_at_blank(_, []) --> [].
|
||||
|
||||
split_unquoted(SplitCodes, [], More) -->
|
||||
[C],
|
||||
{ member(C, SplitCodes) }, !,
|
||||
split_unquoted_at_blank(SplitCodes, More).
|
||||
split_unquoted(SplitCodes, [C|New], Set) -->
|
||||
[C], !,
|
||||
split_unquoted(SplitCodes, New, Set).
|
||||
split_unquoted(_, [], []) --> [].
|
||||
|
||||
|
||||
/** @pred split_quoted(+ _Line_,+ _Separators_, GroupQuotes, SingleQuotes, - _Split_)
|
||||
|
||||
|
Reference in New Issue
Block a user