diff --git a/src/errors.rs b/src/errors.rs index edd1d01..a6d77de 100644 --- a/src/errors.rs +++ b/src/errors.rs @@ -14,7 +14,7 @@ mod span { } impl Span { - pub fn new(start: usize, len: usize) -> Self { + pub fn start_len(start: usize, len: usize) -> Self { Self { start, end: start + len, @@ -22,7 +22,7 @@ mod span { } pub fn start_end(start: usize, end: usize) -> Self { - Self::new(start, end) + Self { start, end } } pub fn single(start: usize) -> Self { diff --git a/src/lex.rs b/src/lex.rs index edafaee..6337057 100644 --- a/src/lex.rs +++ b/src/lex.rs @@ -127,7 +127,7 @@ impl<'code> Lexer<'code> { if self.expect(expect_char) { let _ = self.code.next(); // consume first one Token { - span: Span::new(start, start + 2), + span: Span::start_len(start, start + 2), kind: true_type, } } else { @@ -192,7 +192,7 @@ impl<'code> Iterator for Lexer<'code> { if self.expect('=') { let _ = self.code.next(); // consume =; break Token { - span: Span::new(start, start + 2), + span: Span::start_len(start, start + 2), kind: TokenType::BangEqual, }; } else { diff --git a/src/parse/mod.rs b/src/parse/mod.rs index a926d28..c1b498e 100644 --- a/src/parse/mod.rs +++ b/src/parse/mod.rs @@ -331,7 +331,10 @@ impl<'code> Parser<'code> { span: next.span, })) } - _ => Err(ParseErr::InvalidTokenPrimary(next)), + _ => { + println!("{:?}", next); + Err(ParseErr::InvalidTokenPrimary(next)) + } } } diff --git a/test.sl b/test.sl index 93194fc..a74e57b 100644 --- a/test.sl +++ b/test.sl @@ -1,3 +1,9 @@ fn test() { - "u" + "w" + "u"; + if true { + print; + } else if false { + dont_print; + } else { + "uwu"; + } } \ No newline at end of file