aboutsummaryrefslogtreecommitdiffstats
path: root/src/tokenizer.rs
diff options
context:
space:
mode:
authorEdvard Thörnros <edvard.thornros@gmail.com>2021-01-09 16:03:41 +0100
committerEdvard Thörnros <edvard.thornros@gmail.com>2021-01-09 16:03:41 +0100
commit3b480795fd82b5fd66b2b6263a2cac3335717202 (patch)
treed161ef210b0d22962b3613876666df45b58ffaf1 /src/tokenizer.rs
parentfccbcffcc8b1707760445d9f18f1bbdebbb4b69c (diff)
downloadsylt-3b480795fd82b5fd66b2b6263a2cac3335717202.tar.gz
Super simple VM
Diffstat (limited to 'src/tokenizer.rs')
-rw-r--r--src/tokenizer.rs10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/tokenizer.rs b/src/tokenizer.rs
index f1f0658..efea700 100644
--- a/src/tokenizer.rs
+++ b/src/tokenizer.rs
@@ -1,5 +1,5 @@
use std::fs;
-use logos::Logos;
+use logos::{Logos, Span};
#[derive(Logos, Debug, PartialEq)]
pub enum Token {
@@ -26,6 +26,10 @@ pub enum Token {
#[token("loop")]
Loop,
+ // TODO(ed): Remove
+ #[token("print")]
+ Print,
+
#[token("+")]
Plus,
#[token("++")]
@@ -94,8 +98,8 @@ pub enum Token {
Error,
}
-pub fn file_to_tokens(filename: &str) -> Vec<Token> {
+pub fn file_to_tokens(filename: &str) -> Vec<(Token, Span)> {
let content = fs::read_to_string(filename).unwrap();
let lexer = Token::lexer(&content);
- lexer.collect()
+ lexer.spanned().collect()
}