I’m trying to write a nom parser that takes all input (of unknown length) until the end of string.
It seems that in nom the end of input is a magical poison that kills every macro that even accidentally touches it. If I use a regular string, I get
Incomplete error. If I use
CompleteStr wrapper, I get
Complete error. How can I get a successful parse when reaching end of input?
take_while!() expects to find a character that is non-matchnig, but not end of input. How can I take as much as there is, and if there’s EOF, just keep what has been matched so far?
named!(take<&str, &str>, take_while1!(char::is_alphanumeric)); assert_eq!(Ok(("!", "aaa")), altest("aaa!")); // matches assert_eq!(Ok(("", "aaa")), altest("aaa")); // error - doesn't match!