diff options
author | NanoTech | 2016-12-06 03:43:13 -0600 |
---|---|---|
committer | NanoTech | 2017-03-10 23:48:27 -0600 |
commit | 90d81dae221318072ddb5c7d85f63b1a55844923 (patch) | |
tree | 7e96c9d020500e0019a855ae327f4b480d285e15 | |
parent | 84c7ec41455e9f7b9bdd7a7336a877fb04e4bd3a (diff) |
Report the offset of errors
Diffstat (limited to '')
-rw-r--r-- | src/lexer.rs | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/lexer.rs b/src/lexer.rs index f141f81..e8ef2ac 100644 --- a/src/lexer.rs +++ b/src/lexer.rs @@ -55,7 +55,7 @@ pub enum Tok { #[derive(Debug)] pub enum LexicalError { - Error(nom::simple_errors::Err<u32>), + Error(usize, nom::simple_errors::Err<u32>), Incomplete(nom::Needed), } @@ -210,8 +210,9 @@ impl<'input> Iterator for Lexer<'input> { Some(Ok((start, t, self.offset))) } Error(e) => { + let offset = self.offset; self.offset = self.input.len(); - Some(Err(LexicalError::Error(e))) + Some(Err(LexicalError::Error(offset, e))) } Incomplete(needed) => { Some(Err(LexicalError::Incomplete(needed))) |