1
Fork 0

fix(parser): Fix parsing CRLF #11

Merged
lucas merged 1 commit from issue/10 into master 2023-03-15 21:31:06 +01:00
2 changed files with 22 additions and 1 deletions

View file

@ -10,6 +10,8 @@
=== Fixed
- fix parsing CRLF
== [v1.0.0] - 2023-03-10
=== Added

View file

@ -39,7 +39,9 @@ fn null(input: Span) -> IResult<Span, ()> {
}
fn separator(input: Span) -> IResult<Span, &str> {
map(alt((tag(","), tag("\n"))), |val: Span| *val.fragment())(input)
map(alt((tag(","), tag("\n"), tag("\r\n"))), |val: Span| {
*val.fragment()
})(input)
}
fn bool(input: Span) -> IResult<Span, bool> {
@ -436,4 +438,21 @@ packages = [
let sjson = format!(r#""{}""#, text);
check_parse_result(sjson, [Token::String(String::from(text))]);
}
// Regression test for #10
#[test]
fn parse_crlf_separator() {
let sjson = "foo = 1\r\nbar = 2";
check_parse_result(
sjson,
[
Token::String(String::from("foo")),
Token::Equals,
Token::Integer(1),
Token::String(String::from("bar")),
Token::Equals,
Token::Integer(2),
],
);
}
}