summaryrefslogtreecommitdiff
path: root/src/syntax/mod.rs
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2019-10-30 21:13:12 +0100
committerLaurenz <laurmaedje@gmail.com>2019-10-30 21:13:12 +0100
commitb5d8b8f4a5425ec7bcaa50d8394e76cffe4baadc (patch)
tree23b26258ac200b9150b7485ef95b51d6cf9b7412 /src/syntax/mod.rs
parentccc4639c7d4dfe039d469d16236ac5ad121f4a07 (diff)
Token spans 🔜🔙
Diffstat (limited to 'src/syntax/mod.rs')
-rw-r--r--src/syntax/mod.rs26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/syntax/mod.rs b/src/syntax/mod.rs
index da8cdc80..8a6329de 100644
--- a/src/syntax/mod.rs
+++ b/src/syntax/mod.rs
@@ -129,3 +129,29 @@ impl Display for Expression {
}
}
}
+
+pub struct Spanned<T> {
+ pub val: T,
+ pub span: Span,
+}
+
+impl<T> Spanned<T> {
+ pub fn new(val: T, span: Span) -> Spanned<T> {
+ Spanned { val, span }
+ }
+}
+
+pub struct Span {
+ pub start: usize,
+ pub end: usize,
+}
+
+impl Span {
+ pub fn new(start: usize, end: usize) -> Span {
+ Span { start, end }
+ }
+
+ pub fn at(index: usize) -> Span {
+ Span { start: index, end: index + 1 }
+ }
+}