summaryrefslogtreecommitdiff
path: root/src/syntax/tokens.rs
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2020-01-24 12:44:04 +0100
committerLaurenz <laurmaedje@gmail.com>2020-01-24 12:44:04 +0100
commit03fddaf3aea778057aedd74dbcb27bae971ec22f (patch)
tree37e3136e29e0e5d69ec8f56e43d156739d2931ab /src/syntax/tokens.rs
parent78da2bdd5d77d1b8572e5e9da119bfa68127a3fa (diff)
Non-fatal argument parsing 🌋
Diffstat (limited to 'src/syntax/tokens.rs')
-rw-r--r--src/syntax/tokens.rs9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/syntax/tokens.rs b/src/syntax/tokens.rs
index 6c8e736c..d0adbf60 100644
--- a/src/syntax/tokens.rs
+++ b/src/syntax/tokens.rs
@@ -23,7 +23,7 @@ pub enum Token<'s> {
/// A function invocation `[<header>][<body>]`.
Function {
header: &'s str,
- body: Option<(Position, &'s str)>,
+ body: Option<Spanned<&'s str>>,
terminated: bool,
},
@@ -222,13 +222,16 @@ impl<'s> Tokens<'s> {
return Function { header, body: None, terminated };
}
+ let body_start = self.pos() - start;
self.eat();
- let offset = self.pos() - start;
let (body, terminated) = self.read_function_part();
self.eat();
- Function { header, body: Some((offset, body)), terminated }
+ let body_end = self.pos();
+ let span = Span::new(body_start, body_end);
+
+ Function { header, body: Some(Spanned { v: body, span }), terminated }
}
fn read_function_part(&mut self) -> (&'s str, bool) {