diff options
author | Alex Crichton <alex@alexcrichton.com> | 2016-05-12 11:26:18 -0700 |
---|---|---|
committer | Alex Crichton <alex@alexcrichton.com> | 2016-05-12 11:26:18 -0700 |
commit | 50dfc8ac79bf8a18a03a8b9f53a520335c1fd2d0 (patch) | |
tree | ef364868ff5502e6636dd627a0b668f733d442e3 /src | |
parent | ef60313a5db3adc5cd5cc5d15fa6008aea34ca4e (diff) | |
parent | 848227c6053019918b726fa7356f5dfb87861420 (diff) | |
download | milf-rs-50dfc8ac79bf8a18a03a8b9f53a520335c1fd2d0.tar.gz milf-rs-50dfc8ac79bf8a18a03a8b9f53a520335c1fd2d0.zip |
Merge pull request #94 from zofrex/require-newline-after-table
Require newline after table
Diffstat (limited to 'src')
-rw-r--r-- | src/lib.rs | 2 | ||||
-rw-r--r-- | src/parser.rs | 10 |
2 files changed, 11 insertions, 1 deletions
@@ -447,7 +447,7 @@ mod tests { #[test] fn lookup_advanced_table() { - let value: Value = r#"[table."name.other"] value = "my value""#.parse().unwrap(); + let value: Value = "[table.\"name.other\"]\nvalue = \"my value\"".parse().unwrap(); let looked = value.lookup(r#"table."name.other".value"#).unwrap(); assert_eq!(*looked, Value::String(String::from("my value"))); } diff --git a/src/parser.rs b/src/parser.rs index 2a156e3..8c689f8 100644 --- a/src/parser.rs +++ b/src/parser.rs @@ -271,6 +271,16 @@ impl<'a> Parser<'a> { values: BTreeMap::new(), defined: true, }; + self.ws(); + self.comment(); + if !self.newline() { + self.errors.push(ParserError { + lo: start, + hi: start, + desc: format!("expected a newline after table definition"), + }); + return None + } if !self.values(&mut table) { return None } if array { self.insert_array(&mut ret, &keys, Value::Table(table), |