From 35a849233caaa976ff1b77c4fe409c652f396791 Mon Sep 17 00:00:00 2001 From: Jesse Brault Date: Mon, 2 Mar 2026 11:48:41 -0600 Subject: [PATCH] Add extern keyword. --- dmc-lib/src/lexer.rs | 7 +++++++ dmc-lib/src/token.rs | 1 + 2 files changed, 8 insertions(+) diff --git a/dmc-lib/src/lexer.rs b/dmc-lib/src/lexer.rs index 28df445..d8ba93f 100644 --- a/dmc-lib/src/lexer.rs +++ b/dmc-lib/src/lexer.rs @@ -89,6 +89,7 @@ impl<'a> Lexer<'a> { "fn" => TokenKind::Fn, "end" => TokenKind::End, "let" => TokenKind::Let, + "extern" => TokenKind::Extern, _ => TokenKind::Identifier, }; Token::new(self.position, self.position + prefix.len(), token_kind) @@ -163,4 +164,10 @@ mod tests { assert_next(&mut lexer, TokenKind::Fn, 2); assert_eq!(lexer.next(), None); } + + #[test] + fn extern_returned() { + let mut lexer = Lexer::new("extern"); + assert_next(&mut lexer, TokenKind::Extern, 6); + } } diff --git a/dmc-lib/src/token.rs b/dmc-lib/src/token.rs index b8bd672..a5cfcf2 100644 --- a/dmc-lib/src/token.rs +++ b/dmc-lib/src/token.rs @@ -35,4 +35,5 @@ pub enum TokenKind { IntegerLiteral, LongLiteral, String, + Extern }