Add extern keyword.

This commit is contained in:
Jesse Brault 2026-03-02 11:48:41 -06:00
parent f2f4b0537e
commit 35a849233c
2 changed files with 8 additions and 0 deletions

View File

@ -89,6 +89,7 @@ impl<'a> Lexer<'a> {
"fn" => TokenKind::Fn, "fn" => TokenKind::Fn,
"end" => TokenKind::End, "end" => TokenKind::End,
"let" => TokenKind::Let, "let" => TokenKind::Let,
"extern" => TokenKind::Extern,
_ => TokenKind::Identifier, _ => TokenKind::Identifier,
}; };
Token::new(self.position, self.position + prefix.len(), token_kind) Token::new(self.position, self.position + prefix.len(), token_kind)
@ -163,4 +164,10 @@ mod tests {
assert_next(&mut lexer, TokenKind::Fn, 2); assert_next(&mut lexer, TokenKind::Fn, 2);
assert_eq!(lexer.next(), None); assert_eq!(lexer.next(), None);
} }
#[test]
fn extern_returned() {
let mut lexer = Lexer::new("extern");
assert_next(&mut lexer, TokenKind::Extern, 6);
}
} }

View File

@ -35,4 +35,5 @@ pub enum TokenKind {
IntegerLiteral, IntegerLiteral,
LongLiteral, LongLiteral,
String, String,
Extern
} }