fix(parser): Fix parsing CRLF #11
2 changed files with 22 additions and 1 deletions
|
@ -10,6 +10,8 @@
|
|||
|
||||
=== Fixed
|
||||
|
||||
- fix parsing CRLF
|
||||
|
||||
== [v1.0.0] - 2023-03-10
|
||||
|
||||
=== Added
|
||||
|
|
|
@ -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),
|
||||
],
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue