optional

Try to apply parser, produce null on failure.

optional
(
P
)
()

Examples

import pry.atoms, pry.stream;
alias S = SimpleStream!string;
with(parsers!S){
	auto p = range!('a', 'z').optional;
	auto s = "a".stream;
	Nullable!dchar c;
	S.Error err;
	assert(p.parse(s, c, err));
	assert(c == 'a');
	assert(s.empty);
	assert(p.parse(s, c, err));
	assert(c.isNull);
}

Meta