diff --git a/saphyr/src/emitter.rs b/saphyr/src/emitter.rs index 4601ba2..8810c95 100644 --- a/saphyr/src/emitter.rs +++ b/saphyr/src/emitter.rs @@ -217,6 +217,8 @@ a4: - - a1 - a2 - 2 + - [] + - {} a5: 'single_quoted' a6: \"double_quoted\" a7: 你好 diff --git a/saphyr/src/parser.rs b/saphyr/src/parser.rs index 51001a8..f097a80 100644 --- a/saphyr/src/parser.rs +++ b/saphyr/src/parser.rs @@ -259,8 +259,10 @@ impl> Parser { State::FlowSequenceEntryMappingKey => self.flow_sequence_entry_mapping_key(), State::FlowSequenceEntryMappingValue => self.flow_sequence_entry_mapping_value(), State::FlowSequenceEntryMappingEnd => self.flow_sequence_entry_mapping_end(), + State::FlowMappingEmptyValue => self.flow_mapping_value(true), - _ => unimplemented!() + /* impossible */ + State::End => unreachable!(), } } @@ -329,7 +331,6 @@ impl> Parser { //} }, TokenType::TagDirectiveToken(..) => { - // unimplemented!(); // TODO add tag directive }, _ => break diff --git a/saphyr/src/scanner.rs b/saphyr/src/scanner.rs index 8d514cc..470a25d 100644 --- a/saphyr/src/scanner.rs +++ b/saphyr/src/scanner.rs @@ -1942,6 +1942,22 @@ key: end!(p); } + #[test] + fn test_scanner_cr() { + let s = "---\r\n- tok1\r\n- tok2"; + let mut p = Scanner::new(s.chars()); + next!(p, StreamStartToken(..)); + next!(p, DocumentStartToken); + next!(p, BlockSequenceStartToken); + next!(p, BlockEntryToken); + next_scalar!(p, TScalarStyle::Plain, "tok1"); + next!(p, BlockEntryToken); + next_scalar!(p, TScalarStyle::Plain, "tok2"); + next!(p, BlockEndToken); + next!(p, StreamEndToken); + end!(p); + } + #[test] fn test_uri() { // TODO