diff options
| author | Laurenz <laurmaedje@gmail.com> | 2019-10-30 21:13:12 +0100 |
|---|---|---|
| committer | Laurenz <laurmaedje@gmail.com> | 2019-10-30 21:13:12 +0100 |
| commit | b5d8b8f4a5425ec7bcaa50d8394e76cffe4baadc (patch) | |
| tree | 23b26258ac200b9150b7485ef95b51d6cf9b7412 /src/syntax/mod.rs | |
| parent | ccc4639c7d4dfe039d469d16236ac5ad121f4a07 (diff) | |
Token spans 🔜🔙
Diffstat (limited to 'src/syntax/mod.rs')
| -rw-r--r-- | src/syntax/mod.rs | 26 |
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 } + } +} |
