feat: add support for if/else statements
This commit is contained in:
@@ -64,6 +64,8 @@ impl<'src> Lexer<'src> {
|
||||
|
||||
match &self.source[start..self.cursor] {
|
||||
"fn" => TokenKind::Fn,
|
||||
"if" => TokenKind::If,
|
||||
"else" => TokenKind::Else,
|
||||
"return" => TokenKind::Return,
|
||||
|
||||
"i8" => TokenKind::I8,
|
||||
@@ -203,12 +205,16 @@ mod test {
|
||||
#[test]
|
||||
fn identifiers() {
|
||||
assert_eq!(
|
||||
tokenize("HELLO _hello _0@"),
|
||||
tokenize("HELLO _hello _0@ fn if else return"),
|
||||
vec![
|
||||
Token::new(TokenKind::Identifier, "HELLO", Span::new(0, 5)),
|
||||
Token::new(TokenKind::Identifier, "_hello", Span::new(6, 12)),
|
||||
Token::new(TokenKind::Identifier, "_0", Span::new(13, 15)),
|
||||
Token::new(TokenKind::Invalid, "@", Span::new(15, 16)),
|
||||
Token::new(TokenKind::Fn, "fn", Span::new(17, 19)),
|
||||
Token::new(TokenKind::If, "if", Span::new(20, 22)),
|
||||
Token::new(TokenKind::Else, "else", Span::new(23, 27)),
|
||||
Token::new(TokenKind::Return, "return", Span::new(28, 34)),
|
||||
]
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user