fix(parser): Fix parsing CRLF #11
2 changed files with 22 additions and 1 deletions
|
@ -10,6 +10,8 @@
|
||||||
|
|
||||||
=== Fixed
|
=== Fixed
|
||||||
|
|
||||||
|
- fix parsing CRLF
|
||||||
|
|
||||||
== [v1.0.0] - 2023-03-10
|
== [v1.0.0] - 2023-03-10
|
||||||
|
|
||||||
=== Added
|
=== Added
|
||||||
|
|
|
@ -39,7 +39,9 @@ fn null(input: Span) -> IResult<Span, ()> {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn separator(input: Span) -> IResult<Span, &str> {
|
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> {
|
fn bool(input: Span) -> IResult<Span, bool> {
|
||||||
|
@ -436,4 +438,21 @@ packages = [
|
||||||
let sjson = format!(r#""{}""#, text);
|
let sjson = format!(r#""{}""#, text);
|
||||||
check_parse_result(sjson, [Token::String(String::from(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),
|
||||||
|
],
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue