delimited

Parse a sequence of item delimited by del

delimited
(
Item
Delimiter
)
(
Item item
,
Delimiter del
)
if (
isParser!Item &&
isParser!Delimiter
)

Examples

import pry.atoms, pry.stream, std.conv;
alias S = SimpleStream!string;
with(parsers!S){
	auto p = delimited(
		range!('0', '9').rep.skipWs.map!(x => to!int(x)),
		stk!','
	);
	auto s = " 2, 4,5".stream;
	int[] values;
	S.Error err;
	assert(p.parse(s, values, err));
	assert(values == [2, 4, 5]);
	s = "10".stream;
	assert(p.parse(s, values, err));
	assert(values == [10]);
	s = "".stream;
	assert(p.parse(s, values, err));
	assert(values == []);
}

Meta